///////////////////////////////////////////////////////////////////////////
|
// Copyright © 2019 zhongsong. All Rights Reserved.
|
// 模块描述: 图层管理
|
///////////////////////////////////////////////////////////////////////////
|
define([
|
'dojo/_base/declare',
|
'dojo/_base/lang',
|
'dojo/_base/array',
|
'dojo/_base/html',
|
'dojo/topic',
|
'jimu/BaseWidget',
|
'jimu/utils',
|
'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css',
|
'libs/zTree_v3/js/jquery.ztree.all',
|
'libs/layer/layer.js'
|
],
|
function (declare,
|
lang,
|
array,
|
html,
|
topic,
|
BaseWidget,
|
aspect,
|
string,
|
utils,
|
layer
|
) {
|
return declare([BaseWidget], {
|
baseClass: 'jimu-widget-Layermanagement',
|
name: 'Layermanagement',
|
dataArr: [],
|
startup: function () {
|
var that = this;
|
// 暴露在外的接口
|
topic.subscribe("appendItem", lang.hitch(this, this.appendItem));
|
topic.subscribe("removeItem", lang.hitch(this, this.removeItem));
|
|
topic.subscribe("appendTilt", lang.hitch(this, this.appendTilt));
|
topic.subscribe("removeTilt", lang.hitch(this, this.removeTilt));
|
|
$(".jimu-widget-Layermanagement .layer-tab button").click(function () {
|
$(".jimu-widget-Layermanagement .layer-list").stop().toggle();
|
|
if ($(".jimu-widget-Layermanagement .layer-list").is(":hidden")) {
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().hide();
|
}
|
})
|
|
$(".jimu-widget-Layermanagement .sign-head-th-xx").click(function () {
|
$(".jimu-widget-Layermanagement .layer-list").stop().hide();
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().hide();
|
})
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item").on("click", "li .layer-opacity", function () {
|
|
var layerId = $(this).parents('li').attr('itemid');
|
var layerTitle = $(this).parents('li').attr('itemtitle');
|
|
var liC = `<li>
|
<div title="${layerTitle}">
|
${layerTitle}
|
</div>
|
<div id="${layerId + 'Layer'}">
|
|
</div>
|
</li>`;
|
|
$(".jimu-widget-Layermanagement .tree-layer-opcity ul").empty();
|
|
$(".jimu-widget-Layermanagement .tree-layer-opcity ul").append(liC)
|
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().show();
|
|
layui.use("slider", function () {
|
|
layui.slider.render({
|
elem: '#' + layerId + 'Layer',
|
min: 0,
|
max: 10,
|
value: that[layerId].alpha * 10,
|
step: 1,
|
theme: '#1E9FFF',
|
setTips: function (value) { //自定义提示文本
|
return value / 10;
|
},
|
change: function (value) {
|
that[layerId].alpha = value / 10
|
}
|
});
|
|
})
|
|
})
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item").on("click", "li .setup", function () {
|
|
var layerId = $(this).parents('li').attr('itemid');
|
|
that.map.scene.imageryLayers.raise(that[layerId]);
|
|
if ($(this).parents('li').prev().length > 0) {
|
$(this).parents('li').prev().before($(this).parents('li'));
|
}
|
|
})
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item").on("click", "li .setdown", function () {
|
|
var layerId = $(this).parents('li').attr('itemid');
|
|
that.map.scene.imageryLayers.lower(that[layerId]);
|
|
if ($(this).parents('li').next().length > 0) {
|
$(this).parents('li').next().after($(this).parents('li'));
|
}
|
|
})
|
|
$(".jimu-widget-Layermanagement .tree-layer-opcity .close").click(function () {
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().hide();
|
})
|
|
},
|
|
appendItem: function (item, obj, layer) {
|
var that = this;
|
if (item == this.name) {
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item .no-data").stop().hide();
|
var flag = true;
|
var liList = $(".jimu-widget-Layermanagement .layer-list .layers-item li");
|
for (var i = 0; i < liList.length; i++) {
|
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id) {
|
flag = false
|
}
|
}
|
|
if (flag == true) {
|
var liItem = $("<li itemid='" + obj.id + "' itemtitle='" + obj.title + "'> <div>" +
|
"<span title='" + obj.title + "'>" +
|
obj.title +
|
"</span>" +
|
"<button type='button' class='layui-btn layui-btn-normal layui-btn-sm control-btn layer-opacity' title='透明度控制'>" +
|
"<img src='./images/工具(用以切换图层的透明度).png' alt=''>" +
|
"</button>" +
|
"<button type='button' class='layui-btn layui-btn-normal layui-btn-sm control-btn setup' title='向上移动图层'>" +
|
"<img src='./images/向上移动.png' alt=''>" +
|
"</button>" +
|
"<button type='button' class='layui-btn layui-btn-normal layui-btn-sm control-btn setdown' title='向下移动图层'>" +
|
"<img src='./images/向下移动.png' alt=''>" +
|
"</button>" +
|
"</div> </li>");
|
|
that[obj.id] = layer;
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item").prepend(liItem);
|
}
|
}
|
},
|
|
appendTilt: function (item, obj, layer) {
|
var that = this;
|
if (item == this.name) {
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-item .no-data").stop().hide();
|
|
var flag = true;
|
|
var liList = $(".jimu-widget-Layermanagement .layer-list .layers-title li");
|
|
for (var i = 0; i < liList.length; i++) {
|
|
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id) {
|
|
flag = false
|
|
}
|
|
}
|
|
if (flag == true) {
|
var liItem = $("<li itemid='" + obj.id + "' itemtitle='" + obj.title + "'> <div>" +
|
"<span title='" + obj.title + "'>" +
|
obj.title +
|
"</span>" +
|
"</div> </li>");
|
|
$(".jimu-widget-Layermanagement .layer-list .layers-title").prepend(liItem);
|
}
|
}
|
},
|
|
removeItem: function (item, obj) {
|
if (item == this.name) {
|
var liList = $(".jimu-widget-Layermanagement .layer-list .layers-item li");
|
for (var i = 0; i < liList.length; i++) {
|
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id) {
|
$(liList[i]).remove();
|
}
|
}
|
|
if ($(".jimu-widget-Layermanagement .layer-list .layers-item li").length == 1 && $(".jimu-widget-Layermanagement .layer-list .layers-title li").length == 0) {
|
$(".jimu-widget-Layermanagement .layer-list .layers-item .no-data").stop().show();
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().hide();
|
}
|
|
}
|
},
|
|
removeTilt: function (item, obj) {
|
if (item == this.name) {
|
var liList = $(".jimu-widget-Layermanagement .layer-list .layers-title li");
|
for (var i = 0; i < liList.length; i++) {
|
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id) {
|
$(liList[i]).remove();
|
}
|
}
|
|
if ($(".jimu-widget-Layermanagement .layer-list .layers-item li").length == 1 && $(".jimu-widget-Layermanagement .layer-list .layers-title li").length == 0) {
|
$(".jimu-widget-Layermanagement .layer-list .layers-item .no-data").stop().show();
|
$(".jimu-widget-Layermanagement .tree-layer-opcity").stop().hide();
|
}
|
|
}
|
},
|
|
onOpen: function () {
|
|
},
|
|
onClose: function () {
|
//面板关闭的时候触发 (when this panel is closed trigger)
|
},
|
|
onMinimize: function () {
|
this.resize();
|
},
|
|
onMaximize: function () {
|
this.resize();
|
},
|
|
resize: function () {
|
|
},
|
|
destroy: function () {
|
//销毁的时候触发
|
//todo
|
//do something before this func
|
this.inherited(arguments);
|
}
|
});
|
});
|