Commit cce25f11 authored by 张泽丹's avatar 张泽丹 💻

调整图层顺序

parent cb504fb3
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<a-select-option value="leaflet"> <a-select-option value="leaflet">
leaflet.js leaflet.js
</a-select-option> </a-select-option>
<a-select-option value="mapbox" disabled> <a-select-option value="mapbox">
mapbox.js mapbox.js
</a-select-option> </a-select-option>
</a-select> </a-select>
......
...@@ -19,52 +19,18 @@ export const code = { ...@@ -19,52 +19,18 @@ export const code = {
<div id='map'></div> <div id='map'></div>
<script> <script>
"use strict"; "use strict";
var tdtVec = {
"type": "raster",
'tiles': [
"http://10.1.64.154/DataServer?T=vec_w&X={x}&Y={y}&L={z}"
],
'tileSize': 256
};
var tdtCva = {
"type": "raster",
'tiles': [
'http://10.1.64.154/DataServer?T=cva_w&X={x}&Y={y}&L={z}'
],
'tileSize': 256
};
var map = new mapboxgl.Map({ var map = new mapboxgl.Map({
container: 'map', container: 'map',
style: { style: {
"version": 8, "version": 8,
"sources": { "sources": {},
"tdtVec": tdtVec, "layers": [],
"tdtCva": tdtCva
},
"layers": [
{
"id": "tdtVec",
"type": "raster",
"source": "tdtVec",
"minzoom": 0,
"maxzoom": 17
},
{
"id": "tdtCva",
"type": "raster",
"source": "tdtCva",
"minzoom": 0,
"maxzoom": 17
}
],
}, },
center: [104,34], center: [30,34],
zoom: 2, zoom: 1,
attributionControl: true attributionControl: true
}); });
var nav = new mapboxgl.NavigationControl({showCompass: false}) map.on('load', function () { // 底图加载成功 添加服务
map.addControl(nav, 'top-left')
map.on('load', function () { // 底图加载成功 添加OGC服务
map.addSource('raster-layer', { map.addSource('raster-layer', {
type: 'raster', type: 'raster',
tiles: ['你的URL'], tiles: ['你的URL'],
......
<template> <template>
<div class="page"> <div class="page">
<div class="left"> <div class="left" :style="{width: leftWidth}">
<add-controls v-show="curShow === 'style'"></add-controls> <add-controls v-show="curShow === 'style'"></add-controls>
<code-mirror v-show="curShow === 'code'" class="code-mirror" ref='codeMirror' :url="getStyleUrl"></code-mirror> <code-mirror v-show="curShow === 'code'" class="code-mirror" ref='codeMirror' :url="getStyleUrl"></code-mirror>
</div> </div>
<div class="width-slider"
@mousedown="startMove"
@mousemove="move"
@mouseup="stopMove"
:style="{left: leftWidth}"
>
<a-icon type="align-center" /></div>
<div class="right"> <div class="right">
<!-- 编辑器代码实现 --> <!-- 编辑器代码实现 -->
<section id="preview"> <section id="preview">
...@@ -21,11 +28,14 @@ ...@@ -21,11 +28,14 @@
import AddControls from './addcontrols' import AddControls from './addcontrols'
import codeMirror from '@/components/codeMirror/CodeMirror.vue' import codeMirror from '@/components/codeMirror/CodeMirror.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
let start = 0
let end = 0
export default { export default {
data () { data () {
return { return {
baseInfo: {}, baseInfo: {},
curShow: 'style' curShow: 'style',
leftWidth: '25%'
} }
}, },
computed: { computed: {
...@@ -34,6 +44,21 @@ export default { ...@@ -34,6 +44,21 @@ export default {
components:{ components:{
AddControls, AddControls,
codeMirror codeMirror
},
methods: {
startMove (e) {
start = e.pageX
console.log(start)
},
move (e) {
if (start) {
end = e.pageX
this.leftWidth = `${end - 20}px`
}
},
stopMove (e) {
start = 0
}
} }
} }
</script> </script>
...@@ -54,14 +79,36 @@ export default { ...@@ -54,14 +79,36 @@ export default {
} }
.top-absolute{ .top-absolute{
position: absolute; position: absolute;
top: 2vh; top: 1vh;
left: 29%; left: 13%;
}
.width-slider{
position: absolute;
left: 25%;
width: 13px;
height: 100%;
background-color: #333;
box-shadow: 0 0 5px 0 #ddd inset;
cursor: pointer;
transition: .3s;
display: flex;
align-items: center;
justify-content: center;
i{
transform: rotate(90deg);
color: #eee;
font-weight: bold;
}
&:hover{
width: 40px;
}
} }
} }
.code-mirror{ .code-mirror{
height: 100%; height: 100%;
width: 100%; width: 100%;
margin-top: 0.6vh;
overflow: hidden; overflow: hidden;
.ant-tabs{ .ant-tabs{
height: 100%; height: 100%;
......
...@@ -8,14 +8,30 @@ ...@@ -8,14 +8,30 @@
<label for="">全部图层</label> <label for="">全部图层</label>
</div> </div>
</div> </div>
<div class="layer-item" v-for="item in layerProp" :key="item.id"> <!-- <div class="layer-item" v-for="item in layerProp" :key="item.id"> -->
<layer-setting :ref="item.id" :layer="item" @change="onChange"></layer-setting>
<draggable
class="list-group"
v-model="layerProp"
v-bind="dragOptions"
@start="isDragging = true"
@end="isDragging = false"
@change="handleLayerMoved"
handle=".handle">
<transition-group>
<div class="layer-item" v-for="layer in layerProp" :key="layer.id">
<layer-setting :ref="layer.id" :layer="layer" @change="onChange"></layer-setting>
</div> </div>
</transition-group>
</draggable>
<!-- <layer-setting :ref="item.id" :layer="item" @change="onChange"></layer-setting> -->
</div> </div>
<!-- </div> -->
</div> </div>
</template> </template>
<script> <script>
import draggable from 'vuedraggable'
import layerSetting from '@/components/layerSetting/LayerSetting' import layerSetting from '@/components/layerSetting/LayerSetting'
import axios from 'axios'; import axios from 'axios';
import { mapActions } from 'vuex'; import { mapActions } from 'vuex';
...@@ -38,7 +54,8 @@ export default { ...@@ -38,7 +54,8 @@ export default {
} }
}, },
components:{ components:{
layerSetting layerSetting,
draggable
}, },
mounted() { mounted() {
this.getData() this.getData()
...@@ -59,6 +76,15 @@ export default { ...@@ -59,6 +76,15 @@ export default {
} }
}) })
return styleCfg return styleCfg
},
// 拖拽选项
dragOptions () {
return {
animation: 0,
group: 'description',
disabled: false,
ghostClass: 'ghost'
}
} }
}, },
watch:{ watch:{
...@@ -131,6 +157,13 @@ export default { ...@@ -131,6 +157,13 @@ export default {
onCheckAllChange(checked) { onCheckAllChange(checked) {
this.checkAll = checked this.checkAll = checked
this.layerProp.forEach(item => item.isShow = checked) this.layerProp.forEach(item => item.isShow = checked)
},
handleLayerMoved (e) {
this.$nextTick(() => {
setTimeout(() => {
this.onChange()
}, 100);
})
} }
}, },
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment