123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <template>
- <div class="tag-layer" @click.stop>
- <div class="tag-header">
- <span> </span>
- <ui-icon class="close" @click.stop="close" type="player_close"></ui-icon>
- </div>
- <div class="txtcon">
- <div class="txtbody" v-html="metadata.description">
- </div>
- </div>
- </div>
- </template>
- <script setup>
- import { reactive, defineEmits, onBeforeMount, onMounted, ref, watchEffect, computed, watch, nextTick } from "vue";
- import { useStore } from "vuex";
- const store = useStore();
- const metadata = computed(() => store.getters["scene/metadata"]);
- const close = () => {
- store.commit("functions/setShowIntroduce", false);
- };
- </script>
- <style lang="scss" scoped>
- .tag-layer {
- width: 100vw;
- height: 100vh;
- z-index: 10000;
- top: 0;
- position: fixed;
- left: 0;
- background: rgba(27, 27, 28, 0.8);
- box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.3);
- backdrop-filter: blur(4px);
- .tag-header {
- display: flex;
- width: 100%;
- padding: 0 20px;
- justify-content: space-between;
- align-items: center;
- height: 50px;
- border-bottom: solid 1px rgba(255, 255, 255, 0.16);
- font-size: 18px;
- .close {
- color: rgba(255, 255, 255, 0.6);
- z-index: 999;
- }
- }
- .txtcon {
- display: flex;
- align-items: flex-start;
- justify-content: center;
- height: 100%;
- width: 100%;
- :deep(p) {
- line-height: 24px;
- }
- .txtbody {
- width: 100%;
- border-radius: 10px;
- font-size: 14px;
- color: #fff;
- padding: 20px;
- max-height: calc(100vh - 60px);
- overflow-y: auto;
- }
- }
- }
- </style>
|