9 changed files with 127 additions and 13 deletions
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 27 KiB |
@ -1,10 +1,112 @@
@@ -1,10 +1,112 @@
|
||||
<template> |
||||
<div class="project-media-wrapper"> |
||||
<div class="folder-herder"> |
||||
<a-radio-group @change="changeType" v-model:value="typeValue" button-style="solid"> |
||||
<a-radio-button class="radio-button" :value="true" |
||||
>机场文件</a-radio-button |
||||
> |
||||
<a-radio-button class="radio-button" :value="false" |
||||
>普通文件</a-radio-button |
||||
> |
||||
</a-radio-group> |
||||
</div> |
||||
<div class="height-100 project-media-wrapper"> |
||||
<div |
||||
class="folder-container" |
||||
v-for="(item, key) in folderData.data" |
||||
:key="key" |
||||
@click="selectFolder(key)" |
||||
> |
||||
<a-tag color="blue" v-if="folderData.id === item.id">now</a-tag> |
||||
<div> |
||||
<div class="title">{{ item.name }}</div> |
||||
<div style="font-size: 13px; margin-left: 12px"> |
||||
时间-{{ item.time }} |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script lang="ts" setup> |
||||
import { onMounted, reactive, ref } from 'vue' |
||||
import { ELocalStorageKey } from '/@/types/enums' |
||||
import { getFolder } from '/@/api/media' |
||||
import EventBus from '/@/event-bus' |
||||
|
||||
const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId)! |
||||
const typeValue = ref<boolean>(false) |
||||
|
||||
const folderData = reactive<any>({ |
||||
data: [], |
||||
id: null, |
||||
}) |
||||
|
||||
onMounted(() => { |
||||
getFolderArr() |
||||
}) |
||||
|
||||
async function getFolderArr () { |
||||
folderData.data = [] |
||||
const result = await getFolder(workspaceId, typeValue.value) |
||||
folderData.id = result.data[0].id |
||||
folderData.data = result.data |
||||
loadFiles() |
||||
} |
||||
|
||||
function changeType (val: any) { |
||||
typeValue.value = val.target.value |
||||
getFolderArr() |
||||
} |
||||
|
||||
function selectFolder (index: number) { |
||||
if (folderData.id !== folderData.data[index].id) { |
||||
folderData.id = folderData.data[index].id |
||||
loadFiles() |
||||
} |
||||
} |
||||
|
||||
// 发布到 getFolderFiles 事件,数据为: id |
||||
function loadFiles () { |
||||
EventBus.emit('getFolderFiles', folderData.id) |
||||
} |
||||
|
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.folder-herder { |
||||
position: relative; |
||||
display: flex; |
||||
justify-content: center; |
||||
padding: 20px; |
||||
border-bottom: 0.2px solid rgb(183, 183, 183); |
||||
|
||||
.radio-button { |
||||
width: 120px; |
||||
text-align: center; |
||||
} |
||||
} |
||||
|
||||
.project-media-wrapper { |
||||
overflow-y: scroll; |
||||
margin-bottom: 20px; |
||||
|
||||
.folder-container { |
||||
display: flex; |
||||
padding: 8px 15px; |
||||
justify-content: start; |
||||
align-items: center; |
||||
border-bottom: 0.2px solid rgb(183, 183, 183); |
||||
.title { |
||||
font-size: 15px; |
||||
margin-left: 10px; |
||||
width: 200px; |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
display: -webkit-box; |
||||
-webkit-line-clamp: 3; |
||||
overflow: hidden; |
||||
-webkit-box-orient: vertical; |
||||
} |
||||
} |
||||
} |
||||
</style> |
||||
|
Loading…
Reference in new issue