ow
This commit is contained in:
1 parent
75dc6fc980
commit
808042cf72
20 files changed
+484
-510
No files matched your search
@@ -1,89 +1,111 @@
|
||||
<template>
|
||||
<div class="operator-station">
|
||||
<div class="operator-group main-actions">
|
||||
<a-tooltip title="新增文件夹">
|
||||
<a-button type="primary" v-if="canCreate" :icon="h(FolderAddOutlined)"
|
||||
@click="$emit('create-folder')">新增</a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip title="上传文件">
|
||||
<a-button type="primary" v-if="canCreate" :icon="h(UploadOutlined)" @click="triggerUpload">上传</a-button>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
|
||||
<a-divider type="vertical" v-if="hasSelection" />
|
||||
|
||||
<div class="operator-group selection-actions" v-if="hasSelection">
|
||||
<template v-if="!isDirectorySelected && isSingleItem">
|
||||
<a-tooltip title="下载">
|
||||
<a-button type="text" :icon="h(DownloadOutlined)" :disabled="!canAmend" @click="onDownload" >下载</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip title="共享">
|
||||
<a-button type="text" :icon="h(ShareAltOutlined)" @click="onShare">共享</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip :title="publishTooltip">
|
||||
<a-button type="text" :icon="h(NotificationOutlined)" @click="onPublish" >{{ publishTooltip }}</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<a-tooltip :title="previewTooltip">
|
||||
<a-button type="text" :icon="h(UnorderedListOutlined)" @click="onViewPreview" >{{ previewTooltip }}</a-button>
|
||||
</a-tooltip>
|
||||
|
||||
<template v-if="isSingleVideo">
|
||||
<a-tooltip title="播放">
|
||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onPlayVideo" >播放</a-button>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
<template v-if="isSingleAudio">
|
||||
<a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放">
|
||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onPlayAudio" >播放</a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停">
|
||||
<a-button type="text" :icon="h(PauseCircleOutlined)" @click="onPauseAudio" >暂停</a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else title="继续">
|
||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onContinueAudio" >继续</a-button>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<a-divider type="vertical" v-if="hasSelection" />
|
||||
|
||||
<div class="operator-group more-actions" v-if="hasSelection">
|
||||
<a-dropdown>
|
||||
<a-button>
|
||||
<a-row :wrap="false">
|
||||
<a-col flex="auto">
|
||||
<a-row>
|
||||
<a-col flex="400px">
|
||||
<a-row justify="start">
|
||||
<a-col :span="3" style="margin-left: 8px">
|
||||
<a-tooltip title="新建文件夹">
|
||||
<a-button v-if="canCreate" class="nav-btn" :icon="h(FolderAddOutlined)"
|
||||
@click="$emit('create-folder')"></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3">
|
||||
<a-tooltip title="上传文件">
|
||||
<a-button v-if="canCreate" :icon="h(UploadOutlined)" type="primary" class="nav-btn"
|
||||
@click="triggerUpload">
|
||||
</a-button> </a-tooltip></a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||
<a-tooltip title="下载">
|
||||
<a-button class="nav-btn" :icon="h(DownloadOutlined)" :disabled="!canAmend"
|
||||
@click="onDownload"></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||
<a-tooltip title="共享">
|
||||
<a-button class="nav-btn" :icon="h(ShareAltOutlined)" @click="onShare"></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||
<a-tooltip :title="publishTooltip">
|
||||
<a-button class="nav-btn" :icon="h(NotificationOutlined)" @click="onPublish"></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||
<a-tooltip :title="previewTooltip">
|
||||
<a-button class="nav-btn" @click="onViewPreview"><cust-icon-font size="16"
|
||||
type="icon-qingbaojiankong" /></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo">
|
||||
<a-tooltip title="播放">
|
||||
<a-button class="nav-btn" @click="onPlayVideo"><cust-icon-font size="16"
|
||||
type="icon-foldervideo" /></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleAudio" style="margin-left: 4px">
|
||||
<a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放">
|
||||
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
|
||||
@click="onPlayAudio"></a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停">
|
||||
<a-button class="nav-btn" :icon="h(PauseCircleOutlined)" @click="onPauseAudio"></a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else title="继续">
|
||||
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
|
||||
@click="onContinueAudio"></a-button>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="8" flex="none">
|
||||
<a-dropdown >
|
||||
<a-button style="margin-right: 8px; width:100px;" class="nav-btn">
|
||||
更多
|
||||
<DownOutlined />
|
||||
</a-button>
|
||||
<template #overlay>
|
||||
<a-menu>
|
||||
<a-menu-item key="preview" v-if="isImage(selectedOrderKey) && isSingleItem" :disabled="!canAmend" @click="$emit('preview', selectedItems)">
|
||||
<a-menu v-if="isSingleItem">
|
||||
<a-menu-item key="preview" v-if="isImage(selectedOrderKey) && isSingleItem" :disabled="!canAmend"
|
||||
@click="$emit('preview', selectedItems)">
|
||||
<EyeOutlined /> 预览
|
||||
</a-menu-item>
|
||||
<a-menu-item key="rename" v-if="isSingleItem" :disabled="!canAmend" @click="$emit('rename', selectedItems)">
|
||||
<EditOutlined /> 重命名
|
||||
</a-menu-item>
|
||||
<a-menu-divider />
|
||||
<a-menu-item key="move" v-if="isSingleItem" :disabled="!canView" @click="$emit('move', selectedItems)">
|
||||
<ScissorOutlined /> 移动
|
||||
</a-menu-item>
|
||||
<a-menu-divider />
|
||||
<a-menu-item key="delete":disabled="!canDelete" @click="$emit('delete', selectedItems)">
|
||||
<a-menu-item key="delete" :disabled="!canDelete" @click="$emit('delete', selectedItems)">
|
||||
<DeleteOutlined /> 删除
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
<a-menu v-else-if="hasSelection">
|
||||
<a-menu-item key="delete" :disabled="!canDelete" @click="$emit('delete', selectedItems)">
|
||||
<DeleteOutlined /> 删除
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<a-upload v-if="canCreate" v-model:file-list="fileList" name="file" :before-upload="onBeforeUpload"
|
||||
:headers="headers" :show-upload-list="false" :action="uploadUrl" ref="uploadRef">
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div style="display: none">
|
||||
<a-upload
|
||||
v-if="canCreate"
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
:before-upload="onBeforeUpload"
|
||||
:headers="headers"
|
||||
:show-upload-list="false"
|
||||
:action="uploadUrl"
|
||||
ref="uploadRef"
|
||||
>
|
||||
</a-upload>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -230,28 +252,21 @@ const onContinueAudio = () => {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.operator-station {
|
||||
.nav-btn {
|
||||
width: 28px;
|
||||
height: 26px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 6px 12px;
|
||||
background: #fafafa;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.operator-group {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
.nav-btn:hover:not(:disabled) {
|
||||
background: #e6f4ff;
|
||||
color: #1677ff;
|
||||
}
|
||||
|
||||
.main-actions :deep(.ant-btn) {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.selection-actions :deep(.ant-btn) {
|
||||
padding: 4px 8px;
|
||||
font-size: 16px;
|
||||
.nav-btn:disabled {
|
||||
color: #bfbfbf;
|
||||
}
|
||||
</style>
|
||||
Reference in new issue
Block a user