1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <template>
- <div id="left-pano" v-if="custom.moundLeftPano || show">
- <span
- class="ctrl-pano-c fun-ctrl strengthen-right strengthen-top strengthen-bottom"
- v-if="custom.viewMode !== 'full' && custom.showLeftCtrlPano"
- @click="custom.showLeftPano = !custom.showLeftPano"
- :class="{ active: custom.showLeftPano }"
- >
- <ui-icon type="extend" class="icon"></ui-icon>
- </span>
- <div class="left-pano strengthen-right">
- <slot></slot>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- import { custom } from "@/env";
- withDefaults(defineProps<{ show?: boolean }>(), { show: false });
- </script>
- <style lang="scss" scoped>
- .left-pano {
- position: absolute;
- width: var(--left-pano-width);
- background: rgba(27, 27, 28, 0.8);
- top: calc(var(--editor-head-height) + var(--header-top));
- left: var(--left-pano-left);
- bottom: var(--editor-menu-bottom);
- z-index: 100;
- backdrop-filter: blur(4px);
- overflow-y: auto;
- transition: all 0.3s ease;
- }
- .ctrl-pano-c {
- position: absolute;
- left: calc(var(--left-pano-left) + var(--left-pano-width));
- width: 20px;
- height: 80px;
- background: rgba(26, 26, 26, 0.8);
- border-radius: 0 6px 6px 0;
- top: 50%;
- transform: translateY(-50%);
- z-index: 100;
- display: flex;
- align-items: center;
- justify-content: center;
- color: rgba(255, 255, 255, 0.6);
- font-size: 14px;
- cursor: pointer;
- transition: inset 0.3s ease, color 0.3s ease;
- &:hover {
- color: rgba(255, 255, 255, 1);
- }
- &:active {
- color: var(--colors-primary-base);
- }
- .icon {
- display: inline-block;
- transition: transform 0.3s ease;
- transform: rotate(0);
- }
- &.active {
- .icon {
- transform: rotate(180deg);
- }
- }
- }
- </style>
|