|
@@ -1,21 +1,96 @@
|
|
|
<template>
|
|
|
- <div id="viewDiv" v-loading="loading" :element-loading-text="loadText" element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)">
|
|
|
- <tf-dialog :show.sync="panels.tfDialog.Show" :hide.sync="panels.tfDialog.Hide" :set-size.sync="panels.tfDialog.setSize" />
|
|
|
+ <div
|
|
|
+ id="viewDiv"
|
|
|
+ v-loading="loading"
|
|
|
+ :element-loading-text="loadText"
|
|
|
+ element-loading-spinner="el-icon-loading"
|
|
|
+ element-loading-background="rgba(255, 255, 255, 0.8)"
|
|
|
+ >
|
|
|
+ <tf-dialog
|
|
|
+ :show.sync="panels.tfDialog.Show"
|
|
|
+ :hide.sync="panels.tfDialog.Hide"
|
|
|
+ :set-size.sync="panels.tfDialog.setSize"
|
|
|
+ />
|
|
|
<el-container style="height: 100%; width: 100%">
|
|
|
- <el-container :style="{ height: 'calc(100% - ' + footer_height + ')', width: '100%' }">
|
|
|
+ <el-container
|
|
|
+ :style="{ height: 'calc(100% - ' + footer_height + ')', width: '100%' }"
|
|
|
+ >
|
|
|
<el-main>
|
|
|
<!-- <float-panels :data='FloatPanels' @handelClose='handelClose'></float-panels> -->
|
|
|
- <div id="antherPanel" ref="antP" style="display: none; width: calc(50% - 2px); height: 100%; float: left;">
|
|
|
+ <div
|
|
|
+ id="antherPanel"
|
|
|
+ ref="antP"
|
|
|
+ style="
|
|
|
+ display: none;
|
|
|
+ width: calc(50% - 2px);
|
|
|
+ height: 100%;
|
|
|
+ float: left;
|
|
|
+ "
|
|
|
+ >
|
|
|
<!-- <div class="qufen" style="left:calc(50% - 175px)"><span>副视图</span><span>主视图</span></div> -->
|
|
|
</div>
|
|
|
- <div style="display: none; width: 3px; height: 100%; background:#ccc; z-index:2; float: left; position: relative;" />
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: none;
|
|
|
+ width: 3px;
|
|
|
+ height: 100%;
|
|
|
+ background: #ccc;
|
|
|
+ z-index: 2;
|
|
|
+ float: left;
|
|
|
+ position: relative;
|
|
|
+ "
|
|
|
+ />
|
|
|
<div id="mapView" class="mapView">
|
|
|
- <div id="any" ref="any" style="position: absolute; left: calc(50% - 250px); top: calc(50% - 150px);display:none;width:600px;border">
|
|
|
- <div id="any_title" class="label" style="width:100%;height:40px;background:rgb(45,116,231); border-radius: 5px 5px 0px 0px;">
|
|
|
- <div class="label" style="float:left; color:#fff; font-size: 18px; padding-left: 20px; padding-top: 10px;">分析结果</div>
|
|
|
- <span class="label" style="float:right; cursor: pointer;color:#fff; margin-right: 10px; margin-top: 10px;" @click="closeAny"><i class="el-icon-close" /></span>
|
|
|
+ <div
|
|
|
+ id="any"
|
|
|
+ ref="any"
|
|
|
+ style="position: absolute; left: calc(50% - 250px); top: calc(50% - 150px);display:none;width:600px;border"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ id="any_title"
|
|
|
+ class="label"
|
|
|
+ style="
|
|
|
+ width: 100%;
|
|
|
+ height: 40px;
|
|
|
+ background: rgb(45, 116, 231);
|
|
|
+ border-radius: 5px 5px 0px 0px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="label"
|
|
|
+ style="
|
|
|
+ float: left;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 18px;
|
|
|
+ padding-left: 20px;
|
|
|
+ padding-top: 10px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 分析结果
|
|
|
+ </div>
|
|
|
+ <span
|
|
|
+ class="label"
|
|
|
+ style="
|
|
|
+ float: right;
|
|
|
+ cursor: pointer;
|
|
|
+ color: #fff;
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-top: 10px;
|
|
|
+ "
|
|
|
+ @click="closeAny"
|
|
|
+ ><i class="el-icon-close"
|
|
|
+ /></span>
|
|
|
</div>
|
|
|
- <div id="any_contant" style="width:100%;height:400px;background:#fff;border:1px solid rgb(218,218,218); border-radius: 0px 0px 5px 5px;" />
|
|
|
+ <div
|
|
|
+ id="any_contant"
|
|
|
+ style="
|
|
|
+ width: 100%;
|
|
|
+ height: 400px;
|
|
|
+ background: #fff;
|
|
|
+ border: 1px solid rgb(218, 218, 218);
|
|
|
+ border-radius: 0px 0px 5px 5px;
|
|
|
+ "
|
|
|
+ />
|
|
|
</div>
|
|
|
<!-- 视图工具 -->
|
|
|
<WidgetGroup :map-view="view" :that="this" />
|
|
@@ -28,7 +103,13 @@
|
|
|
</div>
|
|
|
<div v-show="labelShow" id="mapLabel">
|
|
|
<span id="mapView_title">地图图例</span>
|
|
|
- <span id="mapView_close" ref="legend_close" title="收缩" @click="legendClick">▼</span>
|
|
|
+ <span
|
|
|
+ id="mapView_close"
|
|
|
+ ref="legend_close"
|
|
|
+ title="收缩"
|
|
|
+ @click="legendClick"
|
|
|
+ >▼</span
|
|
|
+ >
|
|
|
<div id="mapView_legend" ref="legend" style="height: 350px" />
|
|
|
</div>
|
|
|
<!-- 鼠标位置 -->
|
|
@@ -39,10 +120,18 @@
|
|
|
<div id="map-index-floatPanels" ref="floatPanels" />
|
|
|
</el-main>
|
|
|
<el-aside :style="{ width: side_width, height: '100%' }">
|
|
|
- <side-panels :panels="Panels" :data="panels" :side-width.sync="side_width" :panel-visible.sync="sidepanel_visible" @handelClose="handelClose" />
|
|
|
+ <side-panels
|
|
|
+ :panels="Panels"
|
|
|
+ :data="panels"
|
|
|
+ :side-width.sync="side_width"
|
|
|
+ :panel-visible.sync="sidepanel_visible"
|
|
|
+ @handelClose="handelClose"
|
|
|
+ />
|
|
|
</el-aside>
|
|
|
</el-container>
|
|
|
- <el-footer :style="{ height: footer_height, width: '100%', padding: '0px' }">
|
|
|
+ <el-footer
|
|
|
+ :style="{ height: footer_height, width: '100%', padding: '0px' }"
|
|
|
+ >
|
|
|
<half-panels
|
|
|
:panels="HalfPanels"
|
|
|
:data="panels"
|
|
@@ -67,24 +156,39 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import Comps from '@/layout/components/loadComps'
|
|
|
-import { HalfPanels, FullPanels, FloatPanels, SidePanels } from '@/layout/components/index'
|
|
|
-import { esriConfig, appconfig } from 'staticPub/config'
|
|
|
-import { loadModules } from 'esri-loader'
|
|
|
-import { loadCss } from '@/utils/loadResources'
|
|
|
-import request from '@/utils/request'
|
|
|
-import tfDialog from './common/Dialog'
|
|
|
-import OverviewMap from './tongyonggongju/overviewMap/widget.vue'
|
|
|
-import Scalebar from './tongyonggongju/scaleBar/widget.vue'
|
|
|
-import MouseLocation from './tongyonggongju/mouseLocation/widget.vue'
|
|
|
-import WidgetGroup from './tongyonggongju/widgetGroup/widget.vue'
|
|
|
-import MeasureTool from './tongyonggongju/measureTool/widget.vue'
|
|
|
-import QueryTool from './tongyonggongju/queryTool/widget.vue'
|
|
|
-import SimpleQueryTool from './tongyonggongju/simpleQueryTool/widget.vue'
|
|
|
+import Comps from "@/layout/components/loadComps";
|
|
|
+import {
|
|
|
+ HalfPanels,
|
|
|
+ FullPanels,
|
|
|
+ FloatPanels,
|
|
|
+ SidePanels,
|
|
|
+} from "@/layout/components/index";
|
|
|
+import { esriConfig, appconfig } from "staticPub/config";
|
|
|
+import { loadModules } from "esri-loader";
|
|
|
+import { loadCss } from "@/utils/loadResources";
|
|
|
+import request from "@/utils/request";
|
|
|
+import tfDialog from "./common/Dialog";
|
|
|
+import OverviewMap from "./tongyonggongju/overviewMap/widget.vue";
|
|
|
+import Scalebar from "./tongyonggongju/scaleBar/widget.vue";
|
|
|
+import MouseLocation from "./tongyonggongju/mouseLocation/widget.vue";
|
|
|
+import WidgetGroup from "./tongyonggongju/widgetGroup/widget.vue";
|
|
|
+import MeasureTool from "./tongyonggongju/measureTool/widget.vue";
|
|
|
+import QueryTool from "./tongyonggongju/queryTool/widget.vue";
|
|
|
+import SimpleQueryTool from "./tongyonggongju/simpleQueryTool/widget.vue";
|
|
|
export default {
|
|
|
components: {
|
|
|
- HalfPanels, FullPanels, FloatPanels, SidePanels, tfDialog, Scalebar, OverviewMap,
|
|
|
- MouseLocation, WidgetGroup, MeasureTool, QueryTool, SimpleQueryTool
|
|
|
+ HalfPanels,
|
|
|
+ FullPanels,
|
|
|
+ FloatPanels,
|
|
|
+ SidePanels,
|
|
|
+ tfDialog,
|
|
|
+ Scalebar,
|
|
|
+ OverviewMap,
|
|
|
+ MouseLocation,
|
|
|
+ WidgetGroup,
|
|
|
+ MeasureTool,
|
|
|
+ QueryTool,
|
|
|
+ SimpleQueryTool,
|
|
|
},
|
|
|
props: { params: Object },
|
|
|
data() {
|
|
@@ -92,117 +196,226 @@ export default {
|
|
|
view: null,
|
|
|
Comps,
|
|
|
show: true,
|
|
|
- themSrc: '',
|
|
|
+ themSrc: "",
|
|
|
labelShow: false,
|
|
|
- side_width: '0%',
|
|
|
- footer_height: '0%',
|
|
|
+ side_width: "0%",
|
|
|
+ footer_height: "0%",
|
|
|
sidepanel_visible: false,
|
|
|
floatpanel_visible: false,
|
|
|
halfpanel_visible: false,
|
|
|
fullpanel_visible: false,
|
|
|
- halfpanel_defaultHeight: '400px',
|
|
|
+ halfpanel_defaultHeight: "400px",
|
|
|
legendHide: true,
|
|
|
loading: true,
|
|
|
- loadText: '',
|
|
|
+ loadText: "",
|
|
|
panels: {
|
|
|
mapView: this.view,
|
|
|
that: this,
|
|
|
// 当前激活的模块
|
|
|
activeModel: null,
|
|
|
- tfDialog: { Show: null, Hide: null, setSize: null }
|
|
|
- }
|
|
|
- }
|
|
|
+ tfDialog: { Show: null, Hide: null, setSize: null },
|
|
|
+ },
|
|
|
+ };
|
|
|
},
|
|
|
computed: {
|
|
|
- Panels: function() { return this.$store.state.map.panels },
|
|
|
- FullPanels: function() { return this.$store.state.map.fullPanels },
|
|
|
- HalfPanels: function() { return this.$store.state.map.halfPanels },
|
|
|
- FloatPanels: function() { return this.$store.state.map.floatPanels },
|
|
|
- jumpText: function() { return this.$store.state.jumpText }
|
|
|
+ Panels: function () {
|
|
|
+ return this.$store.state.map.panels;
|
|
|
+ },
|
|
|
+ FullPanels: function () {
|
|
|
+ return this.$store.state.map.fullPanels;
|
|
|
+ },
|
|
|
+ HalfPanels: function () {
|
|
|
+ return this.$store.state.map.halfPanels;
|
|
|
+ },
|
|
|
+ FloatPanels: function () {
|
|
|
+ return this.$store.state.map.floatPanels;
|
|
|
+ },
|
|
|
+ jumpText: function () {
|
|
|
+ return this.$store.state.jumpText;
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
- FullPanels: function() { this.show = true },
|
|
|
+ FullPanels: function () {
|
|
|
+ this.show = true;
|
|
|
+ },
|
|
|
loading(value) {
|
|
|
if (value == false) {
|
|
|
- var str = this.$store.state.jumpText
|
|
|
- if (!str) return
|
|
|
- str = str.split(',')
|
|
|
- this.$store.dispatch('map/changeMethod', { pathId: str[0], widgetid: str[1], label: str[2] })
|
|
|
+ var str = this.$store.state.jumpText;
|
|
|
+ if (!str) return;
|
|
|
+ str = str.split(",");
|
|
|
+ this.$store.dispatch("map/changeMethod", {
|
|
|
+ pathId: str[0],
|
|
|
+ widgetid: str[1],
|
|
|
+ label: str[2],
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
jumpText(n, o) {
|
|
|
- if (!n) return
|
|
|
- n = n.split(',')
|
|
|
- this.$store.dispatch('map/changeMethod', { pathId: n[0], widgetid: n[1], label: n[2] })
|
|
|
- }
|
|
|
+ if (!n) return;
|
|
|
+ n = n.split(",");
|
|
|
+ this.$store.dispatch("map/changeMethod", {
|
|
|
+ pathId: n[0],
|
|
|
+ widgetid: n[1],
|
|
|
+ label: n[2],
|
|
|
+ });
|
|
|
+ },
|
|
|
},
|
|
|
- created: function() {
|
|
|
- console.log('=====', this.Comps)
|
|
|
+ created: function () {
|
|
|
+ console.log("=====", this.Comps);
|
|
|
},
|
|
|
- mounted: function() {
|
|
|
- loadCss(esriConfig.baseCssUrl) // 本地css资源
|
|
|
- this.initConfig() // 加载配置 ==> 加载地图
|
|
|
+ mounted: function () {
|
|
|
+ loadCss(esriConfig.baseCssUrl); // 本地css资源
|
|
|
+ this.initConfig(); // 加载配置 ==> 加载地图
|
|
|
},
|
|
|
methods: {
|
|
|
handelClose() {
|
|
|
- this.show = false
|
|
|
+ this.show = false;
|
|
|
},
|
|
|
initMap() {
|
|
|
- var config = esriConfig
|
|
|
- var aconfig = appconfig
|
|
|
+ var config = esriConfig;
|
|
|
+ var aconfig = appconfig;
|
|
|
loadModules(
|
|
|
[
|
|
|
- 'esri/Map', 'esri/views/MapView',
|
|
|
- 'esri/layers/WebTileLayer', 'esri/Basemap',
|
|
|
- 'esri/layers/TileLayer', 'esri/layers/MapImageLayer',
|
|
|
- 'esri/layers/support/LOD', 'esri/config', 'esri/identity/IdentityManager'
|
|
|
+ "esri/Map",
|
|
|
+ "esri/views/MapView",
|
|
|
+ "esri/layers/WebTileLayer",
|
|
|
+ "esri/Basemap",
|
|
|
+ "esri/layers/TileLayer",
|
|
|
+ "esri/layers/MapImageLayer",
|
|
|
+ "esri/layers/support/LOD",
|
|
|
+ "esri/config",
|
|
|
+ "esri/identity/IdentityManager",
|
|
|
],
|
|
|
{ url: esriConfig.baseUrl }
|
|
|
).then(
|
|
|
([
|
|
|
- Map, MapView, WebTileLayer,
|
|
|
- Basemap, TileLayer, MapImageLayer, Lod, mapConfig, IdentityManager
|
|
|
+ Map,
|
|
|
+ MapView,
|
|
|
+ WebTileLayer,
|
|
|
+ Basemap,
|
|
|
+ TileLayer,
|
|
|
+ MapImageLayer,
|
|
|
+ Lod,
|
|
|
+ mapConfig,
|
|
|
+ IdentityManager,
|
|
|
]) => {
|
|
|
- mapConfig.fontsUrl = esriConfig.font_url
|
|
|
+ mapConfig.fontsUrl = esriConfig.font_url;
|
|
|
|
|
|
- var layerType = { 'webTiled': WebTileLayer, 'dynamic': MapImageLayer, 'tiled': TileLayer }
|
|
|
- var layersConfig
|
|
|
- var key = aconfig.isonline ? appconfig.tianMapKey : ''
|
|
|
- var baselayers
|
|
|
+ var layerType = {
|
|
|
+ webTiled: WebTileLayer,
|
|
|
+ dynamic: MapImageLayer,
|
|
|
+ tiled: TileLayer,
|
|
|
+ };
|
|
|
+ var layersConfig;
|
|
|
+ var key = aconfig.isonline ? appconfig.tianMapKey : "";
|
|
|
+ var baselayers;
|
|
|
// 判断在线/离线 设置天地图底图
|
|
|
- var tileInfo = aconfig.isonline ? (visible) => {
|
|
|
- return {
|
|
|
- visible: visible,
|
|
|
- subDomains: '01234567'.split('').map(e => 't' + e),
|
|
|
- tileInfo: {
|
|
|
- rows: 256, cols: 256, origin: { x: -180, y: 90 }, spatialReference: { wkid: 4490 },
|
|
|
- lods: Array.from({ length: 19 }, (e, i) => i).map((e, i) => {
|
|
|
- return { level: i + 2, levelValue: i + 2, resolution: 0.3515625 / Math.pow(2, i), scale: 147748796.52937502 / Math.pow(2, i) }
|
|
|
- })
|
|
|
- }, spatialReference: 4490, fullExtent: { xmin: -180, ymin: -90, xmax: 180, ymax: 90, spatialReference: 4490 }
|
|
|
- }
|
|
|
- } : (visible) => { return { visible: visible } }
|
|
|
- layersConfig = aconfig.isonline ? [
|
|
|
- [aconfig.gisResource.tian_online_vector.config[0].url, aconfig.gisResource.tian_online_vector.type],
|
|
|
- [aconfig.gisResource.tian_online_vector_label.config[0].url, aconfig.gisResource.tian_online_vector_label.type],
|
|
|
- [aconfig.gisResource.tian_online_raster.config[0].url, aconfig.gisResource.tian_online_raster.type],
|
|
|
- [aconfig.gisResource.tian_online_raster_label.config[0].url, aconfig.gisResource.tian_online_raster_label.type],
|
|
|
- [aconfig.gisResource.business_map.config[0].url + '?token=' + this.$store.state.user.arcgistoken, aconfig.gisResource.business_map.type]
|
|
|
- ] : [
|
|
|
- [aconfig.gisResource.tian_offline_vector.config[0].url, aconfig.gisResource.tian_offline_vector.type],
|
|
|
- [aconfig.gisResource.tian_offline_vector_label.config[0].url, aconfig.gisResource.tian_offline_vector_label.type],
|
|
|
- [aconfig.gisResource.tian_offline_raster.config[0].url, aconfig.gisResource.tian_offline_raster.type],
|
|
|
- [aconfig.gisResource.tian_offline_raster_label.config[0].url, aconfig.gisResource.tian_offline_raster_label.type],
|
|
|
- [aconfig.gisResource.business_map.config[0].url + '?token=' + this.$store.state.user.arcgistoken, aconfig.gisResource.business_map.type]
|
|
|
- ]
|
|
|
+ var tileInfo = aconfig.isonline
|
|
|
+ ? (visible) => {
|
|
|
+ return {
|
|
|
+ visible: visible,
|
|
|
+ subDomains: "01234567".split("").map((e) => "t" + e),
|
|
|
+ tileInfo: {
|
|
|
+ rows: 256,
|
|
|
+ cols: 256,
|
|
|
+ origin: { x: -180, y: 90 },
|
|
|
+ spatialReference: { wkid: 4490 },
|
|
|
+ lods: Array.from({ length: 19 }, (e, i) => i).map(
|
|
|
+ (e, i) => {
|
|
|
+ return {
|
|
|
+ level: i + 2,
|
|
|
+ levelValue: i + 2,
|
|
|
+ resolution: 0.3515625 / Math.pow(2, i),
|
|
|
+ scale: 147748796.52937502 / Math.pow(2, i),
|
|
|
+ };
|
|
|
+ }
|
|
|
+ ),
|
|
|
+ },
|
|
|
+ spatialReference: 4490,
|
|
|
+ fullExtent: {
|
|
|
+ xmin: -180,
|
|
|
+ ymin: -90,
|
|
|
+ xmax: 180,
|
|
|
+ ymax: 90,
|
|
|
+ spatialReference: 4490,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ }
|
|
|
+ : (visible) => {
|
|
|
+ return { visible: visible };
|
|
|
+ };
|
|
|
+ layersConfig = aconfig.isonline
|
|
|
+ ? [
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_online_vector.config[0].url,
|
|
|
+ aconfig.gisResource.tian_online_vector.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_online_vector_label.config[0].url,
|
|
|
+ aconfig.gisResource.tian_online_vector_label.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_online_raster.config[0].url,
|
|
|
+ aconfig.gisResource.tian_online_raster.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_online_raster_label.config[0].url,
|
|
|
+ aconfig.gisResource.tian_online_raster_label.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.business_map.config[0].url +
|
|
|
+ "?token=" +
|
|
|
+ this.$store.state.user.arcgistoken,
|
|
|
+ aconfig.gisResource.business_map.type,
|
|
|
+ ],
|
|
|
+ ]
|
|
|
+ : [
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_offline_vector.config[0].url,
|
|
|
+ aconfig.gisResource.tian_offline_vector.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_offline_vector_label.config[0].url,
|
|
|
+ aconfig.gisResource.tian_offline_vector_label.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_offline_raster.config[0].url,
|
|
|
+ aconfig.gisResource.tian_offline_raster.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.tian_offline_raster_label.config[0].url,
|
|
|
+ aconfig.gisResource.tian_offline_raster_label.type,
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ aconfig.gisResource.business_map.config[0].url +
|
|
|
+ "?token=" +
|
|
|
+ this.$store.state.user.arcgistoken,
|
|
|
+ aconfig.gisResource.business_map.type,
|
|
|
+ ],
|
|
|
+ ];
|
|
|
|
|
|
baselayers = [
|
|
|
- new layerType[layersConfig[0][1]](layersConfig[0][0] + key, tileInfo(true)),
|
|
|
- new layerType[layersConfig[1][1]](layersConfig[1][0] + key, tileInfo(true)),
|
|
|
- new layerType[layersConfig[2][1]](layersConfig[2][0] + key, tileInfo(false)),
|
|
|
- new layerType[layersConfig[3][1]](layersConfig[3][0] + key, tileInfo(false)),
|
|
|
- new layerType[layersConfig[4][1]]({ url: layersConfig[4][0], token: this.$store.state.user.arcgistoken })
|
|
|
- ]
|
|
|
+ new layerType[layersConfig[0][1]](
|
|
|
+ layersConfig[0][0] + key,
|
|
|
+ tileInfo(true)
|
|
|
+ ),
|
|
|
+ new layerType[layersConfig[1][1]](
|
|
|
+ layersConfig[1][0] + key,
|
|
|
+ tileInfo(true)
|
|
|
+ ),
|
|
|
+ new layerType[layersConfig[2][1]](
|
|
|
+ layersConfig[2][0] + key,
|
|
|
+ tileInfo(false)
|
|
|
+ ),
|
|
|
+ new layerType[layersConfig[3][1]](
|
|
|
+ layersConfig[3][0] + key,
|
|
|
+ tileInfo(false)
|
|
|
+ ),
|
|
|
+ new layerType[layersConfig[4][1]]({
|
|
|
+ url: layersConfig[4][0],
|
|
|
+ token: this.$store.state.user.arcgistoken,
|
|
|
+ }),
|
|
|
+ ];
|
|
|
|
|
|
// baselayers.forEach(item => {
|
|
|
// console.log(item)
|
|
@@ -220,14 +433,15 @@ export default {
|
|
|
// 底图
|
|
|
var basemap = new Basemap({
|
|
|
baseLayers: baselayers,
|
|
|
- title: 'basemap',
|
|
|
- id: 'basemap'
|
|
|
- })
|
|
|
+ title: "basemap",
|
|
|
+ id: "basemap",
|
|
|
+ });
|
|
|
|
|
|
IdentityManager.registerToken({
|
|
|
- server: 'http://36.138.232.112:6080/arcgis/rest/services/DCSW/PIPE_DCSW',
|
|
|
- token: this.$store.state.user.arcgistoken
|
|
|
- })
|
|
|
+ server:
|
|
|
+ "http://36.138.232.112:6080/arcgis/rest/services/PIPE_DCSW_CS",
|
|
|
+ token: this.$store.state.user.arcgistoken,
|
|
|
+ });
|
|
|
|
|
|
// mapConfig.request.interceptors.push({
|
|
|
// urls: basemap.baseLayers.items[4].url,
|
|
@@ -242,31 +456,39 @@ export default {
|
|
|
// })
|
|
|
// 地图视角设置缩放步进级别
|
|
|
basemap.baseLayers.items[4].load().then((e) => {
|
|
|
- mapview.constraints.lods = [125000, 64000, 32000, 16000, 8000, 4000, 2000, 1000, 500, 100].map((s, i) => { return new Lod({ level: i, scale: s }) })
|
|
|
- })
|
|
|
- const map = new Map({ basemap: basemap })
|
|
|
- const mapview = window.TF_mapView = new MapView({
|
|
|
- container: 'mapView',
|
|
|
+ mapview.constraints.lods = [
|
|
|
+ 125000, 64000, 32000, 16000, 8000, 4000, 2000, 1000, 500, 100,
|
|
|
+ ].map((s, i) => {
|
|
|
+ return new Lod({ level: i, scale: s });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ const map = new Map({ basemap: basemap });
|
|
|
+ const mapview = (window.TF_mapView = new MapView({
|
|
|
+ container: "mapView",
|
|
|
map: map,
|
|
|
spatialReference: { wkid: 4490 },
|
|
|
popup: {
|
|
|
- alignment: 'top-center',
|
|
|
+ alignment: "top-center",
|
|
|
actions: [],
|
|
|
dockEnabled: true,
|
|
|
- dockOptions: { buttonEnabled: false }
|
|
|
- }
|
|
|
+ dockOptions: { buttonEnabled: false },
|
|
|
+ },
|
|
|
// authentication: {
|
|
|
// token: this.$store.state.user.arcgistoken
|
|
|
// }
|
|
|
- })
|
|
|
+ }));
|
|
|
|
|
|
- mapview.TF_floatPanel = this.$refs.floatPanels
|
|
|
- mapview.TF_layerInfo = tileInfo
|
|
|
+ mapview.TF_floatPanel = this.$refs.floatPanels;
|
|
|
+ mapview.TF_layerInfo = tileInfo;
|
|
|
// 初始视角
|
|
|
this.$nextTick(() => {
|
|
|
- mapview.center = { x: aconfig.initCenter.x, y: aconfig.initCenter.y, spatialReference: mapview.spatialReference }
|
|
|
- mapview.zoom = aconfig.initZoom
|
|
|
- })
|
|
|
+ mapview.center = {
|
|
|
+ x: aconfig.initCenter.x,
|
|
|
+ y: aconfig.initCenter.y,
|
|
|
+ spatialReference: mapview.spatialReference,
|
|
|
+ };
|
|
|
+ mapview.zoom = aconfig.initZoom;
|
|
|
+ });
|
|
|
// 图层全部加载完成设置
|
|
|
// mapview.on('layerview-create', (event) => {
|
|
|
// mapview.center = { x: aconfig.initCenter.x, y: aconfig.initCenter.y, spatialReference: mapview.spatialReference }
|
|
@@ -274,84 +496,107 @@ export default {
|
|
|
// // mapview.map.basemap.baseLayers.items[5].sublayers.items[0].visible = false // 默认隐藏路网数据
|
|
|
// // mapview.map.basemap.baseLayers.items[5].sublayers.items[0].sublayers.items[0].visible = false
|
|
|
// })
|
|
|
- mapview.ui.components = []
|
|
|
- this.panels.mapView = this.view = mapview
|
|
|
+ mapview.ui.components = [];
|
|
|
+ this.panels.mapView = this.view = mapview;
|
|
|
if (this.params) {
|
|
|
// this.$store.dispatch('map/changeMethod',
|
|
|
// { pathId: 'queryResult3', widgetid: 'HalfPanel', label: '查询结果', param: {
|
|
|
// oids: row.featureIds,
|
|
|
// layer: id
|
|
|
// } })
|
|
|
- var str = 1
|
|
|
+ var str = 1;
|
|
|
}
|
|
|
|
|
|
// 请求图例
|
|
|
$.ajax({
|
|
|
- url: aconfig.gisResource.business_map.config[0].url + '/legend?f=pjson&token=' + this.$store.state.user.arcgistoken,
|
|
|
- type: 'GET',
|
|
|
+ url:
|
|
|
+ aconfig.gisResource.business_map.config[0].url +
|
|
|
+ "/legend?f=pjson&token=" +
|
|
|
+ this.$store.state.user.arcgistoken,
|
|
|
+ type: "GET",
|
|
|
success: (data) => {
|
|
|
- data = JSON.parse(data)
|
|
|
+ data = JSON.parse(data);
|
|
|
if (data.error) {
|
|
|
- return this.$message.error('图例加载失败:' + data.error.message)
|
|
|
+ return this.$message.error(
|
|
|
+ "图例加载失败:" + data.error.message
|
|
|
+ );
|
|
|
}
|
|
|
- data = data.layers
|
|
|
- var inStr = ''
|
|
|
+ data = data.layers;
|
|
|
+ var inStr = "";
|
|
|
for (let i = 0, ii = data.length; i < ii; i++) {
|
|
|
- var label = data[i].layerName
|
|
|
- for (let j = 0, jl = data[i].legend, jj = jl.length; j < jj; j++) {
|
|
|
- inStr += '<div><img src="data:image/png;base64,' + jl[j].imageData + '" alt /><span>' +
|
|
|
- (jl[j].label == '' ? label : jl[j].label) + '</span></div>'
|
|
|
+ var label = data[i].layerName;
|
|
|
+ for (
|
|
|
+ let j = 0, jl = data[i].legend, jj = jl.length;
|
|
|
+ j < jj;
|
|
|
+ j++
|
|
|
+ ) {
|
|
|
+ inStr +=
|
|
|
+ '<div><img src="data:image/png;base64,' +
|
|
|
+ jl[j].imageData +
|
|
|
+ '" alt /><span>' +
|
|
|
+ (jl[j].label == "" ? label : jl[j].label) +
|
|
|
+ "</span></div>";
|
|
|
}
|
|
|
}
|
|
|
- this.$refs.legend.innerHTML = inStr
|
|
|
+ this.$refs.legend.innerHTML = inStr;
|
|
|
},
|
|
|
- error: (error) => { console.log(error) }
|
|
|
- })
|
|
|
- }, (reason) => { console.log(reason) }
|
|
|
- )
|
|
|
+ error: (error) => {
|
|
|
+ console.log(error);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ (reason) => {
|
|
|
+ console.log(reason);
|
|
|
+ }
|
|
|
+ );
|
|
|
},
|
|
|
- legendClick: function() {
|
|
|
- this.legendHide = !this.legendHide
|
|
|
- var whichP = [['收缩', 350, '▼'], ['展开', 0, '▲']][this.legendHide ? 0 : 1]
|
|
|
- this.$refs.legend_close.title = whichP[0]
|
|
|
- this.$refs.legend.style.height = whichP[1] + 'px'
|
|
|
- this.$refs.legend_close.innerHTML = whichP[2]
|
|
|
+ legendClick: function () {
|
|
|
+ this.legendHide = !this.legendHide;
|
|
|
+ var whichP = [
|
|
|
+ ["收缩", 350, "▼"],
|
|
|
+ ["展开", 0, "▲"],
|
|
|
+ ][this.legendHide ? 0 : 1];
|
|
|
+ this.$refs.legend_close.title = whichP[0];
|
|
|
+ this.$refs.legend.style.height = whichP[1] + "px";
|
|
|
+ this.$refs.legend_close.innerHTML = whichP[2];
|
|
|
},
|
|
|
- closeAny: function() {
|
|
|
- this.$refs.any.style.display = 'none'
|
|
|
+ closeAny: function () {
|
|
|
+ this.$refs.any.style.display = "none";
|
|
|
},
|
|
|
initConfig() {
|
|
|
- var index = appconfig.gisResource
|
|
|
+ var index = appconfig.gisResource;
|
|
|
var nextDo = () => {
|
|
|
- this.loadText = '地图加载中'
|
|
|
- this.$nextTick(this.initMap)
|
|
|
- }
|
|
|
- console.log('是否获取后台配置服务:' + appconfig.isloadServer)
|
|
|
+ this.loadText = "地图加载中";
|
|
|
+ this.$nextTick(this.initMap);
|
|
|
+ };
|
|
|
+ console.log("是否获取后台配置服务:" + appconfig.isloadServer);
|
|
|
if (appconfig.isloadServer) {
|
|
|
- this.loadText = '服务加载中'
|
|
|
- request({ url: '/base/sourcedic/getTreeService', method: 'get' }).then(res => {
|
|
|
- if (res.code == 1) {
|
|
|
- res = res.result
|
|
|
- for (var i = 0, ii = res.length; i < ii; i++) {
|
|
|
- var dr = res[i]
|
|
|
- if (index.hasOwnProperty(dr.code)) {
|
|
|
- var odr = index[dr.code]
|
|
|
- odr.type = dr.type
|
|
|
- odr.groupname = dr.name
|
|
|
- if (dr.child) {
|
|
|
- odr.config = dr.child.map(e => {
|
|
|
- return { 'name': e.name, 'url': e.cval }
|
|
|
- })
|
|
|
+ this.loadText = "服务加载中";
|
|
|
+ request({ url: "/base/sourcedic/getTreeService", method: "get" }).then(
|
|
|
+ (res) => {
|
|
|
+ if (res.code == 1) {
|
|
|
+ res = res.result;
|
|
|
+ for (var i = 0, ii = res.length; i < ii; i++) {
|
|
|
+ var dr = res[i];
|
|
|
+ if (index.hasOwnProperty(dr.code)) {
|
|
|
+ var odr = index[dr.code];
|
|
|
+ odr.type = dr.type;
|
|
|
+ odr.groupname = dr.name;
|
|
|
+ if (dr.child) {
|
|
|
+ odr.config = dr.child.map((e) => {
|
|
|
+ return { name: e.name, url: e.cval };
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- nextDo()
|
|
|
- } else this.$message('服务加载失败 启用默认服务配置')
|
|
|
- })
|
|
|
- } else nextDo()
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ nextDo();
|
|
|
+ } else this.$message("服务加载失败 启用默认服务配置");
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else nextDo();
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
#viewDiv {
|
|
@@ -387,13 +632,15 @@ export default {
|
|
|
margin-top: 4px;
|
|
|
overflow: hidden hidden;
|
|
|
transition: 0.4s;
|
|
|
- >>> div{
|
|
|
- padding:2px;
|
|
|
- img{
|
|
|
- width:18px;height:18px
|
|
|
+ >>> div {
|
|
|
+ padding: 2px;
|
|
|
+ img {
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
}
|
|
|
- span{
|
|
|
- padding-left: 3px;font-size:12px
|
|
|
+ span {
|
|
|
+ padding-left: 3px;
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -412,13 +659,13 @@ export default {
|
|
|
user-select: none;
|
|
|
}
|
|
|
}
|
|
|
-.qufen{
|
|
|
+.qufen {
|
|
|
position: absolute;
|
|
|
top: 0px;
|
|
|
background: chartreuse;
|
|
|
padding: 5px;
|
|
|
}
|
|
|
-#antherPanel::after{
|
|
|
+#antherPanel::after {
|
|
|
content: "副视图 主视图";
|
|
|
border-radius: 0px 0px 5px 5px;
|
|
|
border: 1px solid #2d74e7;
|
|
@@ -486,11 +733,11 @@ export default {
|
|
|
color: #373737;
|
|
|
flex: 1;
|
|
|
&::after {
|
|
|
- content: ':';
|
|
|
+ content: ":";
|
|
|
}
|
|
|
}
|
|
|
.scadaLayer-float-value {
|
|
|
- color: #2D74E7;
|
|
|
+ color: #2d74e7;
|
|
|
font-weight: bold;
|
|
|
margin-left: 8px;
|
|
|
animation: mymove 0.8s;
|
|
@@ -499,24 +746,24 @@ export default {
|
|
|
.scadaLayer-float-unit {
|
|
|
}
|
|
|
.scadaLayer-float-arrow2::after {
|
|
|
- content: '↑';
|
|
|
- color: #F56C6C;
|
|
|
+ content: "↑";
|
|
|
+ color: #f56c6c;
|
|
|
animation: mymove 0.8s;
|
|
|
}
|
|
|
.scadaLayer-float-arrow0::after {
|
|
|
- content: '↓';
|
|
|
- color: #67C23A;
|
|
|
+ content: "↓";
|
|
|
+ color: #67c23a;
|
|
|
animation: mymove 0.8s;
|
|
|
}
|
|
|
.scadaLayer-float-arrow1::after {
|
|
|
- content: '-';
|
|
|
+ content: "-";
|
|
|
color: #909399;
|
|
|
animation: mymove 0.8s;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
&::after {
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
width: 0;
|
|
|
height: 0;
|
|
|
border-top: 9px solid #fff;
|
|
@@ -532,10 +779,15 @@ export default {
|
|
|
max-height: 500px;
|
|
|
}
|
|
|
}
|
|
|
- @keyframes mymove
|
|
|
- {
|
|
|
- from { background: rgb(158,54,153); color: #fff; }
|
|
|
- to { background: #fff0; color: #2D74E7; }
|
|
|
+ @keyframes mymove {
|
|
|
+ from {
|
|
|
+ background: rgb(158, 54, 153);
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ background: #fff0;
|
|
|
+ color: #2d74e7;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
#map-index-floatPanels >>> .eventPanel {
|
|
@@ -552,7 +804,7 @@ export default {
|
|
|
font-size: 14px;
|
|
|
|
|
|
&::after {
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
width: 0;
|
|
|
height: 0;
|
|
|
border-top: 9px solid #fff;
|