|
@@ -1,45 +1,46 @@
|
|
<template>
|
|
<template>
|
|
<div class="sm-panel layermanager" v-if="LayerManageShow">
|
|
<div class="sm-panel layermanager" v-if="LayerManageShow">
|
|
<Tabs value="">
|
|
<Tabs value="">
|
|
- <TabPane label="资源目录" name="zyml">
|
|
+ <TabPane :label="Resource.Resource" name="zyml">
|
|
<div class="zyml">
|
|
<div class="zyml">
|
|
- <Tree
|
|
+ <el-input
|
|
- :data="TreeDatas"
|
|
+ placeholder="请输入内容"
|
|
- show-checkbox
|
|
+ prefix-icon="el-icon-search"
|
|
- expand-node
|
|
+ v-model="treeSearchText"
|
|
- @on-contextmenu="handleContextMenu"
|
|
+ size="small"
|
|
- @on-select-change="handleSelectChange"
|
|
|
|
- @on-check-change="handleCheckChange"
|
|
|
|
- :title="Resource.RightClickSetLayerProperties"
|
|
|
|
>
|
|
>
|
|
- <template slot="contextMenu">
|
|
+ </el-input>
|
|
- <DropdownItem
|
|
+ <div class="treeDiv">
|
|
- @click.native="handleContextMenuEdit"
|
|
+ <el-tree
|
|
- v-show="hid"
|
|
+ @check-change="handleCheckChange"
|
|
- >{{ Resource.layerOptions }}</DropdownItem
|
|
+ class="filter-tree"
|
|
- >
|
|
+ :data="TreeDatas"
|
|
- <DropdownItem @click.native="raise" v-show="ImgHid">{{
|
|
+ show-checkbox
|
|
- Resource.MoveUpOneLevel
|
|
+ :props="defaultProps"
|
|
- }}</DropdownItem>
|
|
+ :filter-node-method="filterNode"
|
|
- <DropdownItem @click.native="lower" v-show="ImgHid">{{
|
|
+ ref="tree"
|
|
- Resource.MoveDownOneLevel
|
|
+ >
|
|
- }}</DropdownItem>
|
|
+ <span class="custom-tree-node" slot-scope="{ node, data }">
|
|
- <DropdownItem @click.native="raiseToTop" v-show="ImgHid">{{
|
|
+ <span>{{ node.label }}</span>
|
|
- Resource.MoveToTheTop
|
|
+ <span>
|
|
- }}</DropdownItem>
|
|
+ <Icon
|
|
- <DropdownItem @click.native="lowerToBottom" v-show="ImgHid">{{
|
|
+ :type="!data.favorite ? 'ios-star-outline' : 'ios-star'"
|
|
- Resource.MoveToTheBottom
|
|
+ color="green"
|
|
- }}</DropdownItem>
|
|
+ size="18"
|
|
- <DropdownItem
|
|
+ class="opBtn"
|
|
- @click.native="handleContextMenuDelete"
|
|
+ :title="
|
|
- style="color: #ed4014"
|
|
+ data.favorite ? Resource.DelCollect : Resource.AddCollect
|
|
- >{{ Resource.DelLayer }}</DropdownItem
|
|
+ "
|
|
- >
|
|
+ @click="favoriteHandle(data)"
|
|
- </template>
|
|
+ v-if="data.url != ''"
|
|
- </Tree>
|
|
+ />
|
|
|
|
+ </span>
|
|
|
|
+ </span>
|
|
|
|
+ </el-tree>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</TabPane>
|
|
</TabPane>
|
|
- <TabPane label="图层控制" name="tckz">
|
|
+ <TabPane :label="Resource.LayerOptions" name="tckz">
|
|
<div class="tckz">
|
|
<div class="tckz">
|
|
<List split size="large">
|
|
<List split size="large">
|
|
<ListItem v-for="(item, index) in addlayerdata" :key="index">
|
|
<ListItem v-for="(item, index) in addlayerdata" :key="index">
|
|
@@ -89,7 +90,7 @@
|
|
@click="location(item)"
|
|
@click="location(item)"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
- <div class="sliderBtn">
|
|
+ <div class="sliderBtn" v-if="item.type != 'Terrain'">
|
|
<Slider
|
|
<Slider
|
|
v-model="item.trans"
|
|
v-model="item.trans"
|
|
@on-change="transSliderChange(item, $event)"
|
|
@on-change="transSliderChange(item, $event)"
|
|
@@ -99,6 +100,31 @@
|
|
</List>
|
|
</List>
|
|
</div>
|
|
</div>
|
|
</TabPane>
|
|
</TabPane>
|
|
|
|
+ <TabPane :label="Resource.Favorite" name="collect">
|
|
|
|
+ <div class="collect">
|
|
|
|
+ <List split>
|
|
|
|
+ <ListItem
|
|
|
|
+ v-for="(item, index) in favoriteLayerList"
|
|
|
|
+ :key="index"
|
|
|
|
+ class="layerlist"
|
|
|
|
+ >
|
|
|
|
+ <Checkbox @on-change="checkboxChange(item, $event)">{{
|
|
|
|
+ item.title
|
|
|
|
+ }}</Checkbox>
|
|
|
|
+ <div class="listBtn">
|
|
|
|
+ <Icon
|
|
|
|
+ type="ios-star"
|
|
|
|
+ color="green"
|
|
|
|
+ size="18"
|
|
|
|
+ class="opBtn"
|
|
|
|
+ :title="Resource.DelCollect"
|
|
|
|
+ @click="favoriteHandle(item)"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </ListItem>
|
|
|
|
+ </List>
|
|
|
|
+ </div>
|
|
|
|
+ </TabPane>
|
|
</Tabs>
|
|
</Tabs>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -108,8 +134,15 @@ export default {
|
|
name: "LayerManage",
|
|
name: "LayerManage",
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ defaultProps: {
|
|
|
|
+ children: "children",
|
|
|
|
+ label: "label",
|
|
|
|
+ },
|
|
|
|
+ username: "admin",
|
|
|
|
+ treeSearchText: "",
|
|
addlayerdata: [],
|
|
addlayerdata: [],
|
|
sceneLayers: {},
|
|
sceneLayers: {},
|
|
|
|
+ favoriteLayerList: [],
|
|
sharedState: store.state,
|
|
sharedState: store.state,
|
|
// flag: false,
|
|
// flag: false,
|
|
// s3mLen: 0,
|
|
// s3mLen: 0,
|
|
@@ -170,6 +203,48 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
|
|
+ filterNode(value, data) {
|
|
|
|
+ if (!value) return true;
|
|
|
|
+ return data.label.indexOf(value) !== -1;
|
|
|
|
+ },
|
|
|
|
+ favoriteHandle(data) {
|
|
|
|
+ if (data.favorite) {
|
|
|
|
+ data.favorite = null;
|
|
|
|
+ for (let i = 0; i < this.favoriteLayerList.length; i++) {
|
|
|
|
+ if (this.favoriteLayerList[i].id == data.id) {
|
|
|
|
+ this.favoriteLayerList.splice(i, 1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ data.favorite = this.username;
|
|
|
|
+ this.favoriteLayerList.push(data);
|
|
|
|
+ }
|
|
|
|
+ window
|
|
|
|
+ .axios({
|
|
|
|
+ url: "http://" + window.hostconfig + ":8080/apply/yzt/zyml/Collect",
|
|
|
|
+ method: "post",
|
|
|
|
+ data: {
|
|
|
|
+ username: this.username,
|
|
|
|
+ bsm: data.id,
|
|
|
|
+ },
|
|
|
|
+ })
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: "操作成功",
|
|
|
|
+ type: "success",
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+ .catch((e) => {
|
|
|
|
+ this.$message.error(e);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ favorite(data) {
|
|
|
|
+ console.log(data);
|
|
|
|
+ },
|
|
|
|
+ checkboxChange(obj, checked, a) {
|
|
|
|
+ obj.checked = checked;
|
|
|
|
+ this.handleCheckChange(obj, checked);
|
|
|
|
+ },
|
|
visibleChange(obj, visible, a) {
|
|
visibleChange(obj, visible, a) {
|
|
console.log(obj, visible, a);
|
|
console.log(obj, visible, a);
|
|
switch (obj.type) {
|
|
switch (obj.type) {
|
|
@@ -190,6 +265,17 @@ export default {
|
|
this.layerparams[obj.id].show = visible;
|
|
this.layerparams[obj.id].show = visible;
|
|
break;
|
|
break;
|
|
case "Terrain": //地形
|
|
case "Terrain": //地形
|
|
|
|
+ if (visible) {
|
|
|
|
+ viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
|
|
|
|
+ url: obj.url,
|
|
|
|
+ isSct: true,
|
|
|
|
+ requestVertexNormals: true,
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ viewer.scene.terrainProvider = new Cesium.EllipsoidTerrainProvider(
|
|
|
|
+ {}
|
|
|
|
+ );
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
null;
|
|
null;
|
|
@@ -298,10 +384,11 @@ export default {
|
|
obj ? (obj.expand = !obj.expand) : null;
|
|
obj ? (obj.expand = !obj.expand) : null;
|
|
},
|
|
},
|
|
// 复选框改变
|
|
// 复选框改变
|
|
- handleCheckChange(node, obj) {
|
|
+ handleCheckChange(obj, checked) {
|
|
- if (obj.children.length > 0) {
|
|
+ obj.checked = checked;
|
|
|
|
+ if (obj.children && obj.children.length > 0) {
|
|
for (let i = 0; i < obj.children.length; i++) {
|
|
for (let i = 0; i < obj.children.length; i++) {
|
|
- this.handleCheckChange(null, obj.children[i]);
|
|
+ this.handleCheckChange(obj.children[i], checked);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
let imageryLayers = viewer.imageryLayers;
|
|
let imageryLayers = viewer.imageryLayers;
|
|
@@ -422,6 +509,22 @@ export default {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ //获取后台资源目录树结构
|
|
|
|
+ getFavoriteLayers() {
|
|
|
|
+ window
|
|
|
|
+ .axios({
|
|
|
|
+ url:
|
|
|
|
+ "http://" + window.hostconfig + ":8080/apply/yzt/zyml/GetMyCollect",
|
|
|
|
+ method: "get",
|
|
|
|
+ })
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.favoriteLayerList = res.data.data;
|
|
|
|
+ })
|
|
|
|
+ .catch((e) => {
|
|
|
|
+ console.log(e);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+
|
|
//图层定位
|
|
//图层定位
|
|
location(obj) {
|
|
location(obj) {
|
|
let imageryLayers = viewer.imageryLayers;
|
|
let imageryLayers = viewer.imageryLayers;
|
|
@@ -519,36 +622,13 @@ export default {
|
|
|
|
|
|
mounted() {
|
|
mounted() {
|
|
this.getResourceTree();
|
|
this.getResourceTree();
|
|
|
|
+ this.getFavoriteLayers();
|
|
},
|
|
},
|
|
|
|
|
|
watch: {
|
|
watch: {
|
|
- // LayerManageShow: function (val) {
|
|
+ treeSearchText(val) {
|
|
- // let l = viewer.scene.layers.layerQueue.length;
|
|
+ this.$refs.tree.filter(val);
|
|
- // if (
|
|
+ },
|
|
- // (val && this.TreeDatas[0].children.length === 0) ||
|
|
|
|
- // l !== this.S3MLayers
|
|
|
|
- // ) {
|
|
|
|
- // //只会第一次加载,避免重复更新
|
|
|
|
- // this.updataS3MLayer();
|
|
|
|
- // this.updataImgLayers();
|
|
|
|
- // this.updataTerrainLayers();
|
|
|
|
- // }
|
|
|
|
- // },
|
|
|
|
- // imgLayers: function (val) {
|
|
|
|
- // if (this.LayerManageShow) {
|
|
|
|
- // this.updataImgLayers();
|
|
|
|
- // }
|
|
|
|
- // },
|
|
|
|
- // terrainLayers: function (val) {
|
|
|
|
- // if (this.LayerManageShow) {
|
|
|
|
- // this.updataTerrainLayers();
|
|
|
|
- // }
|
|
|
|
- // },
|
|
|
|
- // S3MLayers: function (val) {
|
|
|
|
- // if (this.LayerManageShow) {
|
|
|
|
- // this.updataS3MLayer();
|
|
|
|
- // }
|
|
|
|
- // },
|
|
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|