|
@@ -7,60 +7,31 @@
|
|
|
<Tabs value="">
|
|
|
<TabPane :label="Resource.Resource" name="zyml">
|
|
|
<div class="zyml" :class="$props.splitId >= 0 ? `zymlsplit` : ''">
|
|
|
- <el-input
|
|
|
- :placeholder="Resource.InputPlaceholder"
|
|
|
- prefix-icon="el-icon-search"
|
|
|
- v-model="treeSearchText"
|
|
|
- size="small"
|
|
|
- >
|
|
|
+ <el-input :placeholder="Resource.InputPlaceholder" prefix-icon="el-icon-search" v-model="treeSearchText"
|
|
|
+ size="small">
|
|
|
</el-input>
|
|
|
<div class="treeDiv">
|
|
|
- <el-tree
|
|
|
- @check="handleCheckChange"
|
|
|
- class="filter-tree"
|
|
|
- :data="TreeDatas"
|
|
|
- show-checkbox
|
|
|
- :props="defaultProps"
|
|
|
- :filter-node-method="filterNode"
|
|
|
- :default-checked-keys="checkedKeys"
|
|
|
- node-key="id"
|
|
|
- ref="tree"
|
|
|
- >
|
|
|
+ <el-tree @check="handleCheckChange" class="filter-tree" :data="TreeDatas" show-checkbox :props="defaultProps"
|
|
|
+ :filter-node-method="filterNode" :default-checked-keys="checkedKeys" node-key="id" ref="tree">
|
|
|
<span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
<span>{{ node.label }}</span>
|
|
|
<span>
|
|
|
- <Icon
|
|
|
- :type="!data.favorite ? 'ios-star-outline' : 'ios-star'"
|
|
|
- color="green"
|
|
|
- size="18"
|
|
|
- class="opBtn"
|
|
|
- :title="
|
|
|
- data.favorite ? Resource.DelCollect : Resource.AddCollect
|
|
|
- "
|
|
|
- @click="favoriteHandle(data)"
|
|
|
- v-if="data.url != ''"
|
|
|
- />
|
|
|
+ <Icon :type="!data.favorite ? 'ios-star-outline' : 'ios-star'" color="green" size="18" class="opBtn"
|
|
|
+ :title="data.favorite ? Resource.DelCollect : Resource.AddCollect
|
|
|
+ " @click="favoriteHandle(data)" v-if="data.url != ''" />
|
|
|
</span>
|
|
|
</span>
|
|
|
</el-tree>
|
|
|
</div>
|
|
|
</div>
|
|
|
</TabPane>
|
|
|
- <TabPane
|
|
|
- :label="Resource.LayerOptions"
|
|
|
- name="tckz"
|
|
|
- v-if="$props.splitId == -1"
|
|
|
- >
|
|
|
+ <TabPane :label="Resource.LayerOptions" name="tckz" v-if="$props.splitId == -1">
|
|
|
<div class="tckz">
|
|
|
<List split size="large">
|
|
|
<ListItem v-for="(item, index) in addlayerdata" :key="index">
|
|
|
{{ item.title }}
|
|
|
<div class="listBtn">
|
|
|
- <i-switch
|
|
|
- v-model="item.visible"
|
|
|
- size="small"
|
|
|
- @on-change="visibleChange(item, $event)"
|
|
|
- >
|
|
|
+ <i-switch v-model="item.visible" size="small" @on-change="visibleChange(item, $event)">
|
|
|
<template #open>
|
|
|
<span></span>
|
|
|
</template>
|
|
@@ -68,43 +39,18 @@
|
|
|
<span></span>
|
|
|
</template>
|
|
|
</i-switch>
|
|
|
- <Icon
|
|
|
- type="md-arrow-round-up"
|
|
|
- color="green"
|
|
|
- size="18"
|
|
|
- class="opBtn"
|
|
|
- :title="Resource.MoveUpOneLevel"
|
|
|
- @click="raise(item)"
|
|
|
- v-if="
|
|
|
- index > 0 && (item.type == 'Vector' || item.type == 'IMG')
|
|
|
- "
|
|
|
- />
|
|
|
- <Icon
|
|
|
- type="md-arrow-round-down"
|
|
|
- color="green"
|
|
|
- size="18"
|
|
|
- class="opBtn"
|
|
|
- :title="Resource.MoveDownOneLevel"
|
|
|
- @click="lower(item)"
|
|
|
- v-if="
|
|
|
- index < addlayerdata.length - 1 &&
|
|
|
+ <Icon type="md-arrow-round-up" color="green" size="18" class="opBtn" :title="Resource.MoveUpOneLevel"
|
|
|
+ @click="raise(item)" v-if="index > 0 && (item.type == 'Vector' || item.type == 'IMG')
|
|
|
+ " />
|
|
|
+ <Icon type="md-arrow-round-down" color="green" size="18" class="opBtn" :title="Resource.MoveDownOneLevel"
|
|
|
+ @click="lower(item)" v-if="index < addlayerdata.length - 1 &&
|
|
|
(item.type == 'Vector' || item.type == 'IMG')
|
|
|
- "
|
|
|
- />
|
|
|
- <Icon
|
|
|
- type="md-locate"
|
|
|
- color="green"
|
|
|
- size="18"
|
|
|
- class="opBtn"
|
|
|
- :title="Resource.location"
|
|
|
- @click="location(item)"
|
|
|
- />
|
|
|
+ " />
|
|
|
+ <Icon type="md-locate" color="green" size="18" class="opBtn" :title="Resource.location"
|
|
|
+ @click="location(item)" />
|
|
|
</div>
|
|
|
<div class="sliderBtn" v-if="item.type != 'Terrain'">
|
|
|
- <Slider
|
|
|
- v-model="item.trans"
|
|
|
- @on-change="transSliderChange(item, $event)"
|
|
|
- ></Slider>
|
|
|
+ <Slider v-model="item.trans" @on-change="transSliderChange(item, $event)"></Slider>
|
|
|
</div>
|
|
|
</ListItem>
|
|
|
</List>
|
|
@@ -113,23 +59,13 @@
|
|
|
<TabPane :label="Resource.Favorite" name="collect">
|
|
|
<div class="collect" :class="$props.splitId >= 0 ? `collectsplit` : ''">
|
|
|
<List split>
|
|
|
- <ListItem
|
|
|
- v-for="(item, index) in favoriteLayerList"
|
|
|
- :key="index"
|
|
|
- class="layerlist"
|
|
|
- >
|
|
|
+ <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)"
|
|
|
- />
|
|
|
+ <Icon type="ios-star" color="green" size="18" class="opBtn" :title="Resource.DelCollect"
|
|
|
+ @click="favoriteHandle(item)" />
|
|
|
</div>
|
|
|
</ListItem>
|
|
|
</List>
|
|
@@ -265,12 +201,29 @@ export default {
|
|
|
}
|
|
|
this.$emit("handleCheckChange", obj, checked, this.$props.splitId);
|
|
|
},
|
|
|
+ setDisabledIfChildrenExist(node) {
|
|
|
+ if (node.children && node.children.length > 0) {
|
|
|
+ node.disabled = true;
|
|
|
+ }
|
|
|
|
|
|
+ // 递归遍历子节点
|
|
|
+ if (node.children) {
|
|
|
+ node.children.forEach(child => {
|
|
|
+ this.setDisabledIfChildrenExist(child);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
//获取后台资源目录树结构
|
|
|
getResourceTree() {
|
|
|
GetResourceTree().then((res) => {
|
|
|
if (res.statuscode == 200) {
|
|
|
+ // 从根节点开始递归
|
|
|
+ res.data.forEach(rootNode => {
|
|
|
+ this.setDisabledIfChildrenExist(rootNode);
|
|
|
+ });
|
|
|
this.TreeDatas = res.data;
|
|
|
+ console.log('this.TreeDatas: ', this.TreeDatas);
|
|
|
+
|
|
|
store.state.tempResourceTree = res.data;
|
|
|
} else {
|
|
|
console.log(e);
|
|
@@ -329,4 +282,8 @@ export default {
|
|
|
|
|
|
<style lang="scss">
|
|
|
@import "./LayerManage.scss";
|
|
|
+
|
|
|
+.is-disabled {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
</style>
|