|
@@ -3,20 +3,16 @@
|
|
|
<a-empty :image="noData" :image-style="{ height: '60px' }" />
|
|
<a-empty :image="noData" :image-style="{ height: '60px' }" />
|
|
|
</div>
|
|
</div>
|
|
|
<div v-else>
|
|
<div v-else>
|
|
|
- <a-tree class="device-map-layers" v-bind="$attrs" v-if="getTreeData.length">
|
|
|
|
|
- <a-tree-node :id="layer.id" v-for="layer in getTreeData" :key="layer.id" :disabled="true">
|
|
|
|
|
|
|
+ <a-directory-tree class="device-map-layers" v-bind="$attrs" :multiple="false" v-if="getTreeData.length">
|
|
|
|
|
+ <a-tree-node :id="layer.id" v-for="layer in getTreeData" :key="layer.id" :selectable="false">
|
|
|
<template #title>
|
|
<template #title>
|
|
|
- <div style="display: flex;align-items: center;">
|
|
|
|
|
- <FolderOutlined />
|
|
|
|
|
- <div style="margin-left: 10px;">
|
|
|
|
|
- {{ layer.name }}
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ {{ layer.name }}
|
|
|
</template>
|
|
</template>
|
|
|
<template v-if="layer.elements">
|
|
<template v-if="layer.elements">
|
|
|
- <a-tree-node v-for="resource in layer.elements" :type="resource.resource ? 'DEFAULT' : 'PHOTO'"
|
|
|
|
|
- :id="getLayerTreeKey('resource', resource.id)" :key="getLayerTreeKey('resource', resource.id)"
|
|
|
|
|
- :disabled="!resource.resource">
|
|
|
|
|
|
|
+ <a-tree-node v-for="resource in layer.elements" :id="getLayerTreeKey('resource', resource.id)"
|
|
|
|
|
+ :key="getLayerTreeKey('resource', resource.id)" :selectable="resource.resource ? true : false"
|
|
|
|
|
+ :label="resource.resource ? 'DEFAULT' : 'PHOTO'">
|
|
|
|
|
+ <template #icon></template>
|
|
|
<template #title>
|
|
<template #title>
|
|
|
<div style="display: flex;align-items: center;" v-if="resource.resource">
|
|
<div style="display: flex;align-items: center;" v-if="resource.resource">
|
|
|
<Icon v-if="resource.resource.type === 0">
|
|
<Icon v-if="resource.resource.type === 0">
|
|
@@ -42,8 +38,9 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<template v-if="layer.elements">
|
|
<template v-if="layer.elements">
|
|
|
- <a-tree-node v-for="item in resource.elements" :type="'PHOTO'" :id="getLayerTreeKey('resource', item.id)"
|
|
|
|
|
- :key="getLayerTreeKey('resource', item.id)">
|
|
|
|
|
|
|
+ <a-tree-node v-for="item in resource.elements" :id="getLayerTreeKey('resource', item.id)"
|
|
|
|
|
+ :key="getLayerTreeKey('resource', item.id)" :label="'PHOTO'">
|
|
|
|
|
+ <template #icon></template>
|
|
|
<template #title>
|
|
<template #title>
|
|
|
{{ item.name }}
|
|
{{ item.name }}
|
|
|
</template>
|
|
</template>
|
|
@@ -52,7 +49,7 @@
|
|
|
</a-tree-node>
|
|
</a-tree-node>
|
|
|
</template>
|
|
</template>
|
|
|
</a-tree-node>
|
|
</a-tree-node>
|
|
|
- </a-tree>
|
|
|
|
|
|
|
+ </a-directory-tree>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -74,122 +71,14 @@ const getTreeData = computed(() => {
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
|
-$antPrefix: 'ant';
|
|
|
|
|
-
|
|
|
|
|
-.device-map-layers.#{$antPrefix}-tree {
|
|
|
|
|
- color: #fff;
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-checkbox:not(.#{$antPrefix}-tree-checkbox-checked) .#{$antPrefix}-tree-checkbox-inner {
|
|
|
|
|
- background-color: unset;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .anticon {
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 第一个层级的 li,有左边距 16px
|
|
|
|
|
- >li {
|
|
|
|
|
- padding-left: 16px;
|
|
|
|
|
- padding-right: 16px;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- li {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- padding-top: 0;
|
|
|
|
|
- padding-bottom: 0;
|
|
|
|
|
-
|
|
|
|
|
- &:first-child {
|
|
|
|
|
- padding-top: 4px;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- &.#{$antPrefix}-tree-treenode-disabled>.#{$antPrefix}-tree-node-content-wrapper {
|
|
|
|
|
- height: 20px;
|
|
|
|
|
-
|
|
|
|
|
- span {
|
|
|
|
|
- color: #fff;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- >ul {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-switcher {
|
|
|
|
|
- z-index: 1;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-checkbox {
|
|
|
|
|
- z-index: 1;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-checkbox:hover::after,
|
|
|
|
|
- .#{$antPrefix}-tree-checkbox-wrapper:hover .#{$antPrefix}-tree-checkbox::after {
|
|
|
|
|
- visibility: collapse;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-title {
|
|
|
|
|
- display: block;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .#{$antPrefix}-tree-node-content-wrapper {
|
|
|
|
|
- color: #fff;
|
|
|
|
|
- width: calc(100% - 46px);
|
|
|
|
|
- flex: 1;
|
|
|
|
|
- box-sizing: content-box;
|
|
|
|
|
- height: 20px;
|
|
|
|
|
- min-width: 0; // 解决文字溢出不会省略的问题
|
|
|
|
|
- padding-right: 0;
|
|
|
|
|
-
|
|
|
|
|
- &:not([draggable='true']) {
|
|
|
|
|
- border-top: 2px transparent solid;
|
|
|
|
|
- border-bottom: 2px transparent solid;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- &:hover {
|
|
|
|
|
- background-color: transparent;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- >span {
|
|
|
|
|
- &::before {
|
|
|
|
|
- // position: absolute;
|
|
|
|
|
- // right: 0;
|
|
|
|
|
- // left: 0;
|
|
|
|
|
- height: 28px;
|
|
|
|
|
- transition: all 0.3s;
|
|
|
|
|
- content: '';
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 进度条组件需要相对最外层定位,进度条组件的position不能设置为relative
|
|
|
|
|
- >*:not(.progress-wrapper) {
|
|
|
|
|
- position: relative;
|
|
|
|
|
- z-index: 1;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- &.#{$antPrefix}-tree-node-selected {
|
|
|
|
|
- background-color: transparent;
|
|
|
|
|
- color: #2d8cf0;
|
|
|
|
|
-
|
|
|
|
|
- >span {
|
|
|
|
|
- &::before {
|
|
|
|
|
- background-color: #4f4f4f;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- span.#{$antPrefix}-tree-switcher.#{$antPrefix}-tree-switcher_open .#{$antPrefix}-tree-switcher-icon {
|
|
|
|
|
- transform: rotate(0deg) !important;
|
|
|
|
|
|
|
+.device-map-layers {
|
|
|
|
|
+ span {
|
|
|
|
|
+ color: #FFFFFF;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- span.#{$antPrefix}-tree-switcher.#{$antPrefix}-tree-switcher_close .#{$antPrefix}-tree-switcher-icon {
|
|
|
|
|
- transform: rotate(0deg) !important;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.ant-tree.ant-tree-directory>li span.ant-tree-node-content-wrapper:hover::before,
|
|
|
|
|
+.ant-tree.ant-tree-directory .ant-tree-child-tree>li span.ant-tree-node-content-wrapper:hover::before {
|
|
|
|
|
+ background: #1890ff;
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|