ow
This commit is contained in:
1 parent
75dc6fc980
commit
808042cf72
20 files changed
+482
-508
No files matched your search
@@ -803,6 +803,45 @@ namespace CloudBuilder.Master.Service
|
|||||||
CreateFamilyGroupFolderDetail(folder, familyGroupFolders);
|
CreateFamilyGroupFolderDetail(folder, familyGroupFolders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[PermissionOperate(name: MasterPermissionPolicy.DmsFile, operate: Operate.Insert)]
|
||||||
|
[UnitOfWork]
|
||||||
|
public void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
||||||
|
{
|
||||||
|
ISecurityGeneratorNumberService securityGeneratorNumberService = service.ServiceProvider.GetService<ISecurityGeneratorNumberService>()!;
|
||||||
|
IRepository<FamilyGroupFolderEntity> repositoryFamilyGroupFolder = repository.GetRepository<IRepository<FamilyGroupFolderEntity>>();
|
||||||
|
|
||||||
|
IRepository<DmsFolderEntity> repositoryFolder = repository.GetRepository<IRepository<DmsFolderEntity>>();
|
||||||
|
IRepository<DmsFolderMapEntity> repositoryFolderMap = repository.GetRepository<IRepository<DmsFolderMapEntity>>();
|
||||||
|
|
||||||
|
DmsFolderEntity folder;
|
||||||
|
DmsFolderMapEntity map;
|
||||||
|
DmsFileEntity entity;
|
||||||
|
|
||||||
|
FamilyGroupFolderEntity familyGroupFolder = repositoryFamilyGroupFolder.DetachedEntities.Where(x => x.FolderName == familyDmsFile.FolderName).FirstOrDefault()!;
|
||||||
|
|
||||||
|
repositoryFamilyGroupFolder.DeleteNow(familyGroupFolder);
|
||||||
|
|
||||||
|
//如果只是文件分享,则返回
|
||||||
|
if (familyDmsFile.IsDirectoryIndc == YesNoPolicy.NO) return;
|
||||||
|
|
||||||
|
folder = repositoryFolder.DetachedEntities.Where(x => x.FolderName == familyDmsFile.FolderName).FirstOrDefault()!;
|
||||||
|
|
||||||
|
repositoryFolder.DeleteNow(folder);
|
||||||
|
|
||||||
|
map = repositoryFolderMap.DetachedEntities.Where(x => x.FolderNameSon == folder.FolderName).FirstOrDefault()!;
|
||||||
|
|
||||||
|
repositoryFolderMap.DeleteNow(map);
|
||||||
|
|
||||||
|
entity = repository.DetachedEntities.Where(x => x.FileName == folder.FolderName).FirstOrDefault()!;
|
||||||
|
|
||||||
|
repository.DeleteNow(entity);
|
||||||
|
|
||||||
|
IRepository<FamilyFolderFavoriteEntity> repositoryFamilyFolderFavorite = repository.GetRepository<IRepository<FamilyFolderFavoriteEntity>>();
|
||||||
|
FamilyFolderFavoriteEntity[] folderFavorite = repositoryFamilyFolderFavorite.DetachedEntities.Where(x => x.FolderName == folder.FolderName).ToArray();
|
||||||
|
|
||||||
|
repositoryFamilyFolderFavorite.DeleteNow(folderFavorite);
|
||||||
|
}
|
||||||
|
|
||||||
[PermissionOperate(name: MasterPermissionPolicy.DmsFile, operate: Operate.Insert)]
|
[PermissionOperate(name: MasterPermissionPolicy.DmsFile, operate: Operate.Insert)]
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
||||||
@@ -1201,14 +1240,9 @@ namespace CloudBuilder.Master.Service
|
|||||||
{
|
{
|
||||||
if (File.Exists(fileName)) File.Delete(fileName);
|
if (File.Exists(fileName)) File.Delete(fileName);
|
||||||
}
|
}
|
||||||
string m3u8FilePath = Path.Combine(webRootPath, service.UserId, "m3u8", Path.GetFileNameWithoutExtension(dmsFile.OrderKey));
|
string m3u8FilePath = fullName.Replace(fileExtension, ".png");
|
||||||
if (!Directory.Exists(m3u8FilePath))
|
//生成m3u8(暂不生成,只生成截图)
|
||||||
{
|
TsToM3u8(dmsFile.OrderKey, fullName, m3u8FilePath);
|
||||||
Directory.CreateDirectory(m3u8FilePath);
|
|
||||||
}
|
|
||||||
string m3u8FullFile = Path.Combine(m3u8FilePath, "main.m3u8");
|
|
||||||
//生成m3u8
|
|
||||||
TsToM3u8(dmsFile.OrderKey, fullName, m3u8FullFile);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1254,7 +1288,7 @@ namespace CloudBuilder.Master.Service
|
|||||||
public void TsToM3u8(string orderKey, string mp4Url, string m3u8Url, int videoLength = 6)
|
public void TsToM3u8(string orderKey, string mp4Url, string m3u8Url, int videoLength = 6)
|
||||||
{
|
{
|
||||||
string para = string.Format(service.Configuration[ServiceSettingsPolicy.FfmpegPictrue], mp4Url, m3u8Url);
|
string para = string.Format(service.Configuration[ServiceSettingsPolicy.FfmpegPictrue], mp4Url, m3u8Url);
|
||||||
RunMyProcess(service.Configuration[ServiceSettingsPolicy.FfmpegPath], para.Replace(".m3u8", ".png"));
|
RunMyProcess(service.Configuration[ServiceSettingsPolicy.FfmpegPath], para);
|
||||||
return;
|
return;
|
||||||
para = string.Format(service.Configuration["Ffmpeg:Arguments"], mp4Url, videoLength, m3u8Url);
|
para = string.Format(service.Configuration["Ffmpeg:Arguments"], mp4Url, videoLength, m3u8Url);
|
||||||
//不直接转码视频文件,影响服务器性能,改为在闭时自动生成
|
//不直接转码视频文件,影响服务器性能,改为在闭时自动生成
|
||||||
@@ -1510,7 +1544,7 @@ namespace CloudBuilder.Master.Service
|
|||||||
{
|
{
|
||||||
IRepository<FamilyGroupManagerUserViewEntity> repositoryFamilyGroupManager = repository.GetRepository<IRepository<FamilyGroupManagerUserViewEntity>>();
|
IRepository<FamilyGroupManagerUserViewEntity> repositoryFamilyGroupManager = repository.GetRepository<IRepository<FamilyGroupManagerUserViewEntity>>();
|
||||||
|
|
||||||
FamilyGroupManagerUserViewEntity[] ents = repositoryFamilyGroupManager.DetachedEntities.Where(x => x.UserName == service.UserId && x.ValidIndc=="Y").ToArray();
|
FamilyGroupManagerUserViewEntity[] ents = repositoryFamilyGroupManager.DetachedEntities.Where(x => x.UserName == service.UserId && x.ValidIndc == "Y").ToArray();
|
||||||
List<SelectOption> l = new List<SelectOption>();
|
List<SelectOption> l = new List<SelectOption>();
|
||||||
SelectOption selectOption;
|
SelectOption selectOption;
|
||||||
|
|
||||||
@@ -1536,7 +1570,7 @@ namespace CloudBuilder.Master.Service
|
|||||||
|
|
||||||
IRepository<FamilyGroupEntity> repositoryFamilyGroup = repository.GetRepository<IRepository<FamilyGroupEntity>>();
|
IRepository<FamilyGroupEntity> repositoryFamilyGroup = repository.GetRepository<IRepository<FamilyGroupEntity>>();
|
||||||
|
|
||||||
FamilyGroupEntity group = repositoryFamilyGroup.DetachedEntities.Where(x => x.FamilyName == familyName && x.ValidIndc==YesNoPolicy.YES).FirstOrDefault()!;
|
FamilyGroupEntity group = repositoryFamilyGroup.DetachedEntities.Where(x => x.FamilyName == familyName && x.ValidIndc == YesNoPolicy.YES).FirstOrDefault()!;
|
||||||
if (group == null) return l.ToArray();
|
if (group == null) return l.ToArray();
|
||||||
|
|
||||||
selectOption = new SelectOption();
|
selectOption = new SelectOption();
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ namespace CloudBuilder.Master.Service
|
|||||||
|
|
||||||
void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile);
|
void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile);
|
||||||
|
|
||||||
|
void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile);
|
||||||
|
|
||||||
SelectOption[] FindDmsFolders();
|
SelectOption[] FindDmsFolders();
|
||||||
SelectOption[] FindDmsFolderDeleteLogs();
|
SelectOption[] FindDmsFolderDeleteLogs();
|
||||||
DmsFolderData FindDmsFolderData();
|
DmsFolderData FindDmsFolderData();
|
||||||
|
|||||||
@@ -75,6 +75,10 @@ return Task.Run(() => serviceRequest.PostAsJsonAsync<DmsFileEntity,DmsFileEnti
|
|||||||
{
|
{
|
||||||
return Task.Run(() => serviceRequest.PostAsJsonAsync<DmsFileEntity,string>("/DmsFile/CreateDmsFolder" , dmsFile)).GetAwaiter().GetResult(); }
|
return Task.Run(() => serviceRequest.PostAsJsonAsync<DmsFileEntity,string>("/DmsFile/CreateDmsFolder" , dmsFile)).GetAwaiter().GetResult(); }
|
||||||
|
|
||||||
|
public void DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
||||||
|
{
|
||||||
|
Task.Run(() => serviceRequest.PostAsJsonAsync<FamilyDmsFileViewEntity,dynamic>("/DmsFile/DeleteFamilyDmsFolder" , familyDmsFile)).GetAwaiter().GetResult(); }
|
||||||
|
|
||||||
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
public void CreateFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile)
|
||||||
{
|
{
|
||||||
Task.Run(() => serviceRequest.PostAsJsonAsync<FamilyDmsFileViewEntity,dynamic>("/DmsFile/CreateFamilyDmsFolder" , familyDmsFile)).GetAwaiter().GetResult(); }
|
Task.Run(() => serviceRequest.PostAsJsonAsync<FamilyDmsFileViewEntity,dynamic>("/DmsFile/CreateFamilyDmsFolder" , familyDmsFile)).GetAwaiter().GetResult(); }
|
||||||
|
|||||||
@@ -110,10 +110,10 @@ namespace CloudBuilder.Security.Policy
|
|||||||
{
|
{
|
||||||
if (transcodeIndc == YesNoPolicy.YES)
|
if (transcodeIndc == YesNoPolicy.YES)
|
||||||
{
|
{
|
||||||
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileUploadDirectory] ?? "").Replace(phy ?? "", "");
|
var upload = (service.Configuration[ServiceSettingsPolicy.DmsFileBackupDirectory] ?? "").Replace(phy ?? "", "");
|
||||||
var filePathRel = Path.Combine(upload, createdBy, "m3u8", "");
|
var filePathRel = Path.Combine(upload, createdBy, fileExtension.Replace(".", ""), "");
|
||||||
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
|
var filePath = filePathRel.Replace(Path.DirectorySeparatorChar, '/') + "/";
|
||||||
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + "/main.m3u8";
|
url = service.Configuration[AppsettingsPolicy.ApplicationUrl] + webRootPath + filePath + Path.GetFileNameWithoutExtension(orderKey) + ".png";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -290,6 +290,26 @@ this.dmsFileService= dmsFileService;
|
|||||||
{
|
{
|
||||||
return new ServiceErrorException(ex);
|
return new ServiceErrorException(ex);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[PermissionOperate(name: "DmsFile", operate: "Insert")]
|
||||||
|
[HttpPost]
|
||||||
|
[UnitOfWork]
|
||||||
|
public dynamic DeleteFamilyDmsFolder(FamilyDmsFileViewEntity familyDmsFile){
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dmsFileService.DeleteFamilyDmsFolder(familyDmsFile);
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
catch (ValidatedException vex)
|
||||||
|
{
|
||||||
|
return vex;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ServiceErrorException(ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[PermissionOperate(name: "DmsFile", operate: "Insert")]
|
[PermissionOperate(name: "DmsFile", operate: "Insert")]
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
},
|
},
|
||||||
"Ffmpeg": {
|
"Ffmpeg": {
|
||||||
"Path": "D:\\NET8\\Exe\\ffmpeg\\bin\\ffmpeg.exe", //视频转码
|
"Path": "D:\\NET8\\Exe\\ffmpeg\\bin\\ffmpeg.exe", //视频转码
|
||||||
"Pictrue": " -i {0} -ss 00:00:10.000 -frames:v 1 {1}",
|
"Pictrue": " -i {0} -ss 00:00:2.000 -frames:v 1 {1}",
|
||||||
"Arguments": " -i {0} -c:v libx264 -vf scale=1280:-1 -start_number 0 -hls_time {1} -hls_list_size 0 -f hls {2}" //0-源路径,1-目标路径,2-存放多少秒 1280×720,852*480
|
"Arguments": " -i {0} -c:v libx264 -vf scale=1280:-1 -start_number 0 -hls_time {1} -hls_list_size 0 -f hls {2}" //0-源路径,1-目标路径,2-存放多少秒 1280×720,852*480
|
||||||
},
|
},
|
||||||
"CloudBuilder.Topshelf": {
|
"CloudBuilder.Topshelf": {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
<template v-else-if="isVideo(record.OrderKey)">
|
<template v-else-if="isVideo(record.OrderKey)">
|
||||||
<div class="video-thumb">
|
<div class="video-thumb">
|
||||||
<img :src="record.FormattedPic.replace('.m3u8', '.png')" :title="record.OrgFileName" />
|
<img :src="record.FormattedPic" :title="record.OrgFileName" />
|
||||||
<div class="play-overlay">
|
<div class="play-overlay">
|
||||||
<PlayCircleOutlined />
|
<PlayCircleOutlined />
|
||||||
</div>
|
</div>
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
<FileOutlined style="color: #8c8c8c" />
|
<FileOutlined style="color: #8c8c8c" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="list-name" :title="record.OrgFileName">{{ record.OrgFileName }}</div>
|
<div :title="record.OrgFileName"><span class="list-name" >{{ record.OrgFileName }}</span></div>
|
||||||
<div class="list-size">{{ formatSize(record.FileSize) }}</div>
|
<div class="list-size">{{ formatSize(record.FileSize) }}</div>
|
||||||
<div class="list-date">{{ formatDate(record.CreatedDatetime) }}</div>
|
<div class="list-date">{{ formatDate(record.CreatedDatetime) }}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -209,11 +209,7 @@ const formatDate = (date: any) => {
|
|||||||
"-" +
|
"-" +
|
||||||
String(d.getMonth() + 1).padStart(2, "0") +
|
String(d.getMonth() + 1).padStart(2, "0") +
|
||||||
"-" +
|
"-" +
|
||||||
String(d.getDate()).padStart(2, "0") +
|
String(d.getDate()).padStart(2, "0")
|
||||||
" " +
|
|
||||||
String(d.getHours()).padStart(2, "0") +
|
|
||||||
":" +
|
|
||||||
String(d.getMinutes()).padStart(2, "0")
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -396,10 +392,11 @@ const formatDate = (date: any) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.list-name {
|
.list-name {
|
||||||
flex: 1;
|
display: inline-block;
|
||||||
|
max-width: 14ch; /* 6个字符宽度,ch 按字符计算 */
|
||||||
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-size,
|
.list-size,
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
<template v-else-if="isVideo(record.OrderKey)">
|
<template v-else-if="isVideo(record.OrderKey)">
|
||||||
<div class="video-thumb">
|
<div class="video-thumb">
|
||||||
<img
|
<img
|
||||||
:src="record.FormattedPic.replace('.m3u8', '.png')"
|
:src="record.FormattedPic"
|
||||||
:title="record.OrgFileName"
|
:title="record.OrgFileName"
|
||||||
/>
|
/>
|
||||||
<div class="play-overlay">
|
<div class="play-overlay">
|
||||||
|
|||||||
@@ -1,89 +1,111 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="operator-station">
|
<a-row :wrap="false">
|
||||||
<div class="operator-group main-actions">
|
<a-col flex="auto">
|
||||||
<a-tooltip title="新增文件夹">
|
<a-row>
|
||||||
<a-button type="primary" v-if="canCreate" :icon="h(FolderAddOutlined)"
|
<a-col flex="400px">
|
||||||
@click="$emit('create-folder')">新增</a-button>
|
<a-row justify="start">
|
||||||
</a-tooltip>
|
<a-col :span="3" style="margin-left: 8px">
|
||||||
<a-tooltip title="上传文件">
|
<a-tooltip title="新建文件夹">
|
||||||
<a-button type="primary" v-if="canCreate" :icon="h(UploadOutlined)" @click="triggerUpload">上传</a-button>
|
<a-button v-if="canCreate" class="nav-btn" :icon="h(FolderAddOutlined)"
|
||||||
</a-tooltip>
|
@click="$emit('create-folder')"></a-button>
|
||||||
</div>
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
<a-divider type="vertical" v-if="hasSelection" />
|
<a-col :span="3">
|
||||||
|
<a-tooltip title="上传文件">
|
||||||
<div class="operator-group selection-actions" v-if="hasSelection">
|
<a-button v-if="canCreate" :icon="h(UploadOutlined)" type="primary" class="nav-btn"
|
||||||
<template v-if="!isDirectorySelected && isSingleItem">
|
@click="triggerUpload">
|
||||||
<a-tooltip title="下载">
|
</a-button> </a-tooltip></a-col>
|
||||||
<a-button type="text" :icon="h(DownloadOutlined)" :disabled="!canAmend" @click="onDownload" >下载</a-button>
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||||
</a-tooltip>
|
<a-tooltip title="下载">
|
||||||
|
<a-button class="nav-btn" :icon="h(DownloadOutlined)" :disabled="!canAmend"
|
||||||
<a-tooltip title="共享">
|
@click="onDownload"></a-button>
|
||||||
<a-button type="text" :icon="h(ShareAltOutlined)" @click="onShare">共享</a-button>
|
</a-tooltip>
|
||||||
</a-tooltip>
|
</a-col>
|
||||||
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||||
<a-tooltip :title="publishTooltip">
|
<a-tooltip title="共享">
|
||||||
<a-button type="text" :icon="h(NotificationOutlined)" @click="onPublish" >{{ publishTooltip }}</a-button>
|
<a-button class="nav-btn" :icon="h(ShareAltOutlined)" @click="onShare"></a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
<a-tooltip :title="previewTooltip">
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||||
<a-button type="text" :icon="h(UnorderedListOutlined)" @click="onViewPreview" >{{ previewTooltip }}</a-button>
|
<a-tooltip :title="publishTooltip">
|
||||||
</a-tooltip>
|
<a-button class="nav-btn" :icon="h(NotificationOutlined)" @click="onPublish"></a-button>
|
||||||
|
</a-tooltip>
|
||||||
<template v-if="isSingleVideo">
|
</a-col>
|
||||||
<a-tooltip title="播放">
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onPlayVideo" >播放</a-button>
|
<a-tooltip :title="previewTooltip">
|
||||||
</a-tooltip>
|
<a-button class="nav-btn" @click="onViewPreview"><cust-icon-font size="16"
|
||||||
</template>
|
type="icon-qingbaojiankong" /></a-button>
|
||||||
|
</a-tooltip>
|
||||||
<template v-if="isSingleAudio">
|
</a-col>
|
||||||
<a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放">
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo">
|
||||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onPlayAudio" >播放</a-button>
|
<a-tooltip title="播放">
|
||||||
</a-tooltip>
|
<a-button class="nav-btn" @click="onPlayVideo"><cust-icon-font size="16"
|
||||||
<a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停">
|
type="icon-foldervideo" /></a-button>
|
||||||
<a-button type="text" :icon="h(PauseCircleOutlined)" @click="onPauseAudio" >暂停</a-button>
|
</a-tooltip>
|
||||||
</a-tooltip>
|
</a-col>
|
||||||
<a-tooltip v-else title="继续">
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleAudio" style="margin-left: 4px">
|
||||||
<a-button type="text" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" @click="onContinueAudio" >继续</a-button>
|
<a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放">
|
||||||
</a-tooltip>
|
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
|
||||||
</template>
|
@click="onPlayAudio"></a-button>
|
||||||
</template>
|
</a-tooltip>
|
||||||
</div>
|
<a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停">
|
||||||
|
<a-button class="nav-btn" :icon="h(PauseCircleOutlined)" @click="onPauseAudio"></a-button>
|
||||||
<a-divider type="vertical" v-if="hasSelection" />
|
</a-tooltip>
|
||||||
|
<a-tooltip v-else title="继续">
|
||||||
<div class="operator-group more-actions" v-if="hasSelection">
|
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
|
||||||
<a-dropdown>
|
@click="onContinueAudio"></a-button>
|
||||||
<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 />
|
<DownOutlined />
|
||||||
</a-button>
|
</a-button>
|
||||||
<template #overlay>
|
<template #overlay>
|
||||||
<a-menu>
|
<a-menu v-if="isSingleItem">
|
||||||
<a-menu-item key="preview" v-if="isImage(selectedOrderKey) && isSingleItem" :disabled="!canAmend" @click="$emit('preview', selectedItems)">
|
<a-menu-item key="preview" v-if="isImage(selectedOrderKey) && isSingleItem" :disabled="!canAmend"
|
||||||
|
@click="$emit('preview', selectedItems)">
|
||||||
<EyeOutlined /> 预览
|
<EyeOutlined /> 预览
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="rename" v-if="isSingleItem" :disabled="!canAmend" @click="$emit('rename', selectedItems)">
|
<a-menu-item key="rename" v-if="isSingleItem" :disabled="!canAmend" @click="$emit('rename', selectedItems)">
|
||||||
<EditOutlined /> 重命名
|
<EditOutlined /> 重命名
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-divider />
|
||||||
<a-menu-item key="move" v-if="isSingleItem" :disabled="!canView" @click="$emit('move', selectedItems)">
|
<a-menu-item key="move" v-if="isSingleItem" :disabled="!canView" @click="$emit('move', selectedItems)">
|
||||||
<ScissorOutlined /> 移动
|
<ScissorOutlined /> 移动
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-divider />
|
<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 /> 删除
|
<DeleteOutlined /> 删除
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
</div>
|
</a-col>
|
||||||
|
</a-row>
|
||||||
<div style="display: none">
|
<div style="display: none">
|
||||||
<a-upload v-if="canCreate" v-model:file-list="fileList" name="file" :before-upload="onBeforeUpload"
|
<a-upload
|
||||||
:headers="headers" :show-upload-list="false" :action="uploadUrl" ref="uploadRef">
|
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>
|
</a-upload>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -230,28 +252,21 @@ const onContinueAudio = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.operator-station {
|
.nav-btn {
|
||||||
|
width: 28px;
|
||||||
|
height: 26px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 6px 12px;
|
justify-content: center;
|
||||||
background: #fafafa;
|
border-radius: 4px;
|
||||||
border-bottom: 1px solid #e8e8e8;
|
|
||||||
gap: 8px;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.operator-group {
|
.nav-btn:hover:not(:disabled) {
|
||||||
display: flex;
|
background: #e6f4ff;
|
||||||
align-items: center;
|
color: #1677ff;
|
||||||
gap: 4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-actions :deep(.ant-btn) {
|
.nav-btn:disabled {
|
||||||
height: 32px;
|
color: #bfbfbf;
|
||||||
}
|
|
||||||
|
|
||||||
.selection-actions :deep(.ant-btn) {
|
|
||||||
padding: 4px 8px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,53 +1,54 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="operator-station">
|
<a-row :wrap="false">
|
||||||
<div class="operator-group selection-actions" v-if="hasSelection">
|
<a-col flex="auto">
|
||||||
<template v-if="true">
|
<a-row>
|
||||||
<a-tooltip title="下载" v-if="!isDirectorySelected && isSingleItem">
|
<a-col flex="300px">
|
||||||
<a-button type="text" :icon="h(DownloadOutlined)" :disabled="!canAmend"
|
<a-row justify="start">
|
||||||
@click="onDownload">下载</a-button>
|
<a-col :span="3" style="margin-left: 8px">
|
||||||
</a-tooltip>
|
<a-tooltip title="还原">
|
||||||
|
<a-button class="nav-btn" :icon="h(UndoOutlined)" style="color:green;"
|
||||||
|
:disabled="!hasSelection" @click="$emit('restore', selectedItems)"></a-button>
|
||||||
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="3">
|
||||||
|
<a-tooltip title="下载">
|
||||||
|
<a-button class="nav-btn" :icon="h(DownloadOutlined)" :disabled="!hasSelection || isDirectorySelected || !isSingleItem"
|
||||||
|
@click="onDownload"></a-button>
|
||||||
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="3" v-if="hasSelection">
|
||||||
|
<a-tooltip title="删除">
|
||||||
|
<a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;"
|
||||||
|
:disabled="!canCreate" @click="$emit('delete', selectedItems)"></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">
|
||||||
|
<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 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>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="2" flex="none">
|
||||||
|
|
||||||
<a-tooltip title="还原" >
|
</a-col>
|
||||||
<a-button type="text" :icon="h(UndoOutlined)" :disabled="!canDelete"
|
</a-row>
|
||||||
@click="$emit('restore', selectedItems)" >还原</a-button>
|
|
||||||
</a-tooltip>
|
|
||||||
|
|
||||||
<a-tooltip title="删除">
|
|
||||||
<a-button type="text" :icon="h(DeleteOutlined)" :disabled="!canCreate"
|
|
||||||
@click="$emit('delete', selectedItems)">彻底删除</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 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>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -196,28 +197,21 @@ const onContinueAudio = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.operator-station {
|
.nav-btn {
|
||||||
display: flex;
|
width: 28px;
|
||||||
align-items: center;
|
height: 26px;
|
||||||
padding: 6px 12px;
|
display: flex;
|
||||||
background: #fafafa;
|
align-items: center;
|
||||||
border-bottom: 1px solid #e8e8e8;
|
justify-content: center;
|
||||||
gap: 8px;
|
border-radius: 4px;
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.operator-group {
|
.nav-btn:hover:not(:disabled) {
|
||||||
display: flex;
|
background: #e6f4ff;
|
||||||
align-items: center;
|
color: #1677ff;
|
||||||
gap: 4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-actions :deep(.ant-btn) {
|
.nav-btn:disabled {
|
||||||
height: 32px;
|
color: #bfbfbf;
|
||||||
}
|
|
||||||
|
|
||||||
.selection-actions :deep(.ant-btn) {
|
|
||||||
padding: 4px 8px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,94 +1,61 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="operator-station">
|
<a-row :wrap="false">
|
||||||
<div class="operator-group main-actions" v-if="!isDirectoryTop">
|
<a-col flex="auto">
|
||||||
<a-tooltip title="新增文件夹">
|
<a-row>
|
||||||
<a-button
|
<a-col flex="300px">
|
||||||
type="primary"
|
<a-row justify="start">
|
||||||
v-if="canCreate"
|
<a-col :span="3" style="margin-left: 8px">
|
||||||
:icon="h(FolderAddOutlined)"
|
<a-tooltip title="新建文件夹">
|
||||||
@click="$emit('create-folder')"
|
<a-button class="nav-btn" v-if="canCreate" :icon="h(FolderAddOutlined)" :disabled="isDirectoryTop"
|
||||||
>新增</a-button
|
@click="$emit('create-folder')"></a-button>
|
||||||
>
|
</a-tooltip>
|
||||||
</a-tooltip>
|
</a-col>
|
||||||
</div>
|
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem">
|
||||||
|
<a-tooltip title="下载">
|
||||||
|
<a-button class="nav-btn" :icon="h(DownloadOutlined)"
|
||||||
|
:disabled="!hasSelection || isDirectorySelected || !isSingleItem" @click="onDownload"></a-button>
|
||||||
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="3" v-if="hasSelection">
|
||||||
|
<a-tooltip title="删除">
|
||||||
|
<a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;"
|
||||||
|
@click="$emit('delete', selectedItems)"></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">
|
||||||
|
<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-col :span="3" v-if="isDirectorySelected">
|
||||||
|
<a-tooltip :title="favorite">
|
||||||
|
<a-button style="width:100px;" class="nav-btn" :icon="h(ShareAltOutlined)"
|
||||||
|
@click="$emit('set-share-folder')">{{ favorite }}</a-button>
|
||||||
|
</a-tooltip>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
<a-divider type="vertical" v-if="hasSelection" />
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="2" flex="none">
|
||||||
|
|
||||||
<div class="operator-group selection-actions" v-if="hasSelection">
|
</a-col>
|
||||||
<template v-if="!isDirectorySelected && isSingleItem">
|
</a-row>
|
||||||
<a-tooltip title="下载">
|
|
||||||
<a-button
|
|
||||||
type="text"
|
|
||||||
:icon="h(DownloadOutlined)"
|
|
||||||
:disabled="!canAmend"
|
|
||||||
@click="onDownload"
|
|
||||||
>下载</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>
|
|
||||||
<template v-else-if="isDirectorySelected">
|
|
||||||
<a-tooltip :title="favorite">
|
|
||||||
<a-button type="text" :icon="h(ShareAltOutlined)" @click="$emit('set-share-folder')"
|
|
||||||
>{{favorite}}</a-button
|
|
||||||
>
|
|
||||||
</a-tooltip>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a-divider type="vertical" v-if="hasSelection" />
|
|
||||||
|
|
||||||
<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>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
></a-col>
|
></a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xs="0" :sm="0" :lg="10" flex="auto">
|
<a-col :xs="0" :sm="0" :lg="20" flex="auto">
|
||||||
<div
|
<div
|
||||||
class="toolbar-center"
|
class="toolbar-center"
|
||||||
style="margin-top: 5px; margin-left: 10px"
|
style="margin-top: 5px; margin-left: 10px"
|
||||||
|
|||||||
@@ -142,6 +142,16 @@ class DmsFileService{
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
async DeleteFamilyDmsFolder(data: FamilyDmsFileViewEntity) {
|
||||||
|
return request<any>(
|
||||||
|
{
|
||||||
|
url: "/DmsFile/DeleteFamilyDmsFolder",
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
async CreateFamilyDmsFolder(data: FamilyDmsFileViewEntity) {
|
async CreateFamilyDmsFolder(data: FamilyDmsFileViewEntity) {
|
||||||
return request<any>(
|
return request<any>(
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ const currentSearchCriteria = ref<DmsFileSearchCriteria>(
|
|||||||
|
|
||||||
const keys = ref<DmsFileUploadDeleteLogViewDisplayData[]>([]);
|
const keys = ref<DmsFileUploadDeleteLogViewDisplayData[]>([]);
|
||||||
const dmsFolderModal = ref<boolean>(false);
|
const dmsFolderModal = ref<boolean>(false);
|
||||||
const dmsFolderTitle = ref<string>("新增文件夹");
|
const dmsFolderTitle = ref<string>("新建文件夹");
|
||||||
const dmsFolderIsRename = ref<boolean>(false);
|
const dmsFolderIsRename = ref<boolean>(false);
|
||||||
const dmsFolderIsMove = ref<boolean>(false);
|
const dmsFolderIsMove = ref<boolean>(false);
|
||||||
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
||||||
@@ -1036,7 +1036,7 @@ const handleSelectPublishVideo = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onGoTop = () => {
|
const onGoTop = () => {
|
||||||
pathStack.value = [{ value: rootPath.value, displayName: "我的文件" }];
|
pathStack.value = [{ value: rootPath.value, displayName: "我的云盘" }];
|
||||||
onSearchByFilePath(rootPath.value);
|
onSearchByFilePath(rootPath.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,100 +1,40 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-spin size="large" :spinning="loading" :tip="spinTip">
|
<a-spin size="large" :spinning="loading" :tip="spinTip">
|
||||||
<div class="dms-file-enquiry">
|
<div class="dms-file-enquiry">
|
||||||
<Toolbar
|
<Toolbar :path-stack="pathStack" :root-path="rootPath" :loading="loading" @go-top="onGoTop" @go-back="onGoBack"
|
||||||
:path-stack="pathStack"
|
@refresh="onReSearch" @search="onSearchByName" @breadcrumb-click="onBreadcrumbClick" />
|
||||||
:root-path="rootPath"
|
|
||||||
:loading="loading"
|
|
||||||
@go-top="onGoTop"
|
|
||||||
@go-back="onGoBack"
|
|
||||||
@refresh="onReSearch"
|
|
||||||
@search="onSearchByName"
|
|
||||||
@breadcrumb-click="onBreadcrumbClick"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<OperatorStation
|
<OperatorStation :selected-items="keys" :upload-url="uploadUrl" :headers="headers" :can-create="canCreate"
|
||||||
:selected-items="keys"
|
:can-amend="canAmend" :can-delete="canDelete" :can-view="canView" @create-folder="onCreate"
|
||||||
:upload-url="uploadUrl"
|
@before-upload="beforeUpload" @download="onDownloadSelected" @share="onShareSelected"
|
||||||
:headers="headers"
|
@publish="onPublishSelected" @view-preview="onViewPreviewSelected" @play-video="onUrlVideoPlayItem"
|
||||||
:can-create="canCreate"
|
@play-audio="onPlayAudioItem" @pause-audio="onPauseAudio" @continue-audio="onContinueAudio"
|
||||||
:can-amend="canAmend"
|
@preview="onPreviewSelected" @rename="onAmendSelected" @move="onMoveSelected" @delete="onDeleteSelected" />
|
||||||
:can-delete="canDelete"
|
|
||||||
:can-view="canView"
|
|
||||||
@create-folder="onCreate"
|
|
||||||
@before-upload="beforeUpload"
|
|
||||||
@download="onDownloadSelected"
|
|
||||||
@share="onShareSelected"
|
|
||||||
@publish="onPublishSelected"
|
|
||||||
@view-preview="onViewPreviewSelected"
|
|
||||||
@play-video="onUrlVideoPlayItem"
|
|
||||||
@play-audio="onPlayAudioItem"
|
|
||||||
@pause-audio="onPauseAudio"
|
|
||||||
@continue-audio="onContinueAudio"
|
|
||||||
@preview="onPreviewSelected"
|
|
||||||
@rename="onAmendSelected"
|
|
||||||
@move="onMoveSelected"
|
|
||||||
@delete="onDeleteSelected"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<MyComputer
|
<MyComputer :datas="datas" v-model:selected-keys="keys" @select-change="onSelectChange"
|
||||||
:datas="datas"
|
@open-folder="onOpenFolder" @open-file="onOpenFile" @preview-image="onPreviewOrgFile" />
|
||||||
v-model:selected-keys="keys"
|
|
||||||
@select-change="onSelectChange"
|
|
||||||
@open-folder="onOpenFolder"
|
|
||||||
@open-file="onOpenFile"
|
|
||||||
@preview-image="onPreviewOrgFile"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-image
|
<a-image :width="1024" :style="{ display: 'none' }" :preview="{
|
||||||
:width="1024"
|
visible,
|
||||||
:style="{ display: 'none' }"
|
onVisibleChange: setPicVisible,
|
||||||
:preview="{
|
}" :src="imageSrc" />
|
||||||
visible,
|
<dmsFolder @on-submit="onReload" @submit-start="loading = true" @submit-end="loading = false"></dmsFolder>
|
||||||
onVisibleChange: setPicVisible,
|
|
||||||
}"
|
|
||||||
:src="imageSrc"
|
|
||||||
/>
|
|
||||||
<dmsFolder @on-submit="onReload"></dmsFolder>
|
|
||||||
<videoPlay></videoPlay>
|
<videoPlay></videoPlay>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalShare" width="60%" title="分享管理查询" :mask-closable="false" :fullscreen="width < 640"
|
||||||
v-model:open="showModalShare"
|
@ok="handleSelectShare">
|
||||||
width="60%"
|
|
||||||
title="分享管理查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectShare"
|
|
||||||
>
|
|
||||||
<DmsFileShareModal ref="shareEnquiry"></DmsFileShareModal>
|
<DmsFileShareModal ref="shareEnquiry"></DmsFileShareModal>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishPhoto" width="60%" title="相册专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishPhoto"
|
:fullscreen="width < 640" @ok="handleSelectPublishPhoto">
|
||||||
width="60%"
|
|
||||||
title="相册专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishPhoto"
|
|
||||||
>
|
|
||||||
<PublishPhotoEnquiry ref="publishPhotoEnquiry"></PublishPhotoEnquiry>
|
<PublishPhotoEnquiry ref="publishPhotoEnquiry"></PublishPhotoEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishAudio" width="60%" title="音乐专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishAudio"
|
:fullscreen="width < 640" @ok="handleSelectPublishAudio">
|
||||||
width="60%"
|
|
||||||
title="音乐专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishAudio"
|
|
||||||
>
|
|
||||||
<PublishAudioEnquiry ref="publishAudioEnquiry"></PublishAudioEnquiry>
|
<PublishAudioEnquiry ref="publishAudioEnquiry"></PublishAudioEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishVideo" width="60%" title="影视专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishVideo"
|
:fullscreen="width < 640" @ok="handleSelectPublishVideo">
|
||||||
width="60%"
|
|
||||||
title="影视专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishVideo"
|
|
||||||
>
|
|
||||||
<PublishVideoEnquiry ref="publishVideoEnquiry"></PublishVideoEnquiry>
|
<PublishVideoEnquiry ref="publishVideoEnquiry"></PublishVideoEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -202,7 +142,7 @@ const currentSearchCriteria = ref<DmsFileSearchCriteria>(
|
|||||||
|
|
||||||
const keys = ref<DmsFileUploadViewDisplayData[]>([]);
|
const keys = ref<DmsFileUploadViewDisplayData[]>([]);
|
||||||
const dmsFolderModal = ref<boolean>(false);
|
const dmsFolderModal = ref<boolean>(false);
|
||||||
const dmsFolderTitle = ref<string>("新增文件夹");
|
const dmsFolderTitle = ref<string>("新建文件夹");
|
||||||
const dmsFolderIsRename = ref<boolean>(false);
|
const dmsFolderIsRename = ref<boolean>(false);
|
||||||
const dmsFolderIsMove = ref<boolean>(false);
|
const dmsFolderIsMove = ref<boolean>(false);
|
||||||
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
||||||
@@ -371,12 +311,12 @@ const uploadChunk = async (
|
|||||||
fileName,
|
fileName,
|
||||||
chunks[index - 1],
|
chunks[index - 1],
|
||||||
uid +
|
uid +
|
||||||
"-" +
|
"-" +
|
||||||
index.toString() +
|
index.toString() +
|
||||||
"-" +
|
"-" +
|
||||||
chunks.length.toString() +
|
chunks.length.toString() +
|
||||||
"." +
|
"." +
|
||||||
fileExtension,
|
fileExtension,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (process.env.NODE_ENV === "development") {
|
if (process.env.NODE_ENV === "development") {
|
||||||
@@ -410,7 +350,7 @@ const uploadChunk = async (
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const CHUNK_SIZE = 100 * 1024 * 1024;
|
const CHUNK_SIZE = 1 * 1024 * 1024;
|
||||||
|
|
||||||
const splitFile = (file: any) => {
|
const splitFile = (file: any) => {
|
||||||
const chunks: Blob[] = [];
|
const chunks: Blob[] = [];
|
||||||
@@ -761,16 +701,24 @@ const onMove = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onDelete = async () => {
|
const onDelete = async () => {
|
||||||
for (let i = 0; i < keys.value.length; i++) {
|
try {
|
||||||
await dmsFileService.Delete(keys.value[i].FileId);
|
loading.value = true;
|
||||||
}
|
for (let i = 0; i < keys.value.length; i++) {
|
||||||
|
await dmsFileService.Delete(keys.value[i].FileId);
|
||||||
|
}
|
||||||
|
|
||||||
notification.info({
|
notification.info({
|
||||||
message: "系统提示:",
|
message: "系统提示:",
|
||||||
description: "记录删除成功",
|
description: "记录删除成功",
|
||||||
placement: "topRight",
|
placement: "topRight",
|
||||||
});
|
});
|
||||||
onReload();
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
loading.value = false;
|
||||||
|
onReload();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const setBindOptionValue = (
|
const setBindOptionValue = (
|
||||||
@@ -1022,7 +970,7 @@ const handleSelectPublishVideo = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onGoTop = () => {
|
const onGoTop = () => {
|
||||||
pathStack.value = [{ value: rootPath.value, displayName: "我的文件" }];
|
pathStack.value = [{ value: rootPath.value, displayName: "我的云盘" }];
|
||||||
onSearchByFilePath(rootPath.value);
|
onSearchByFilePath(rootPath.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ import {
|
|||||||
FolderOutlined
|
FolderOutlined
|
||||||
} from "@ant-design/icons-vue";
|
} from "@ant-design/icons-vue";
|
||||||
|
|
||||||
const emit = defineEmits(['onSubmit']);
|
const emit = defineEmits(['onSubmit','submit-start','submit-end']);
|
||||||
|
|
||||||
const yesNoPolicy = ref<SelectOption[]>([]);
|
const yesNoPolicy = ref<SelectOption[]>([]);
|
||||||
|
|
||||||
@@ -81,7 +81,6 @@ onBeforeMount(async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const modal = reactive({
|
const modal = reactive({
|
||||||
loading: false,
|
|
||||||
showModal: false,
|
showModal: false,
|
||||||
FilePathValue: '',
|
FilePathValue: '',
|
||||||
Notice: '',
|
Notice: '',
|
||||||
@@ -92,7 +91,7 @@ const modal = reactive({
|
|||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
||||||
const dmsFolderModal = inject<boolean>("dmsFolderModal");
|
const dmsFolderModal = inject<boolean>("dmsFolderModal");
|
||||||
const title = ref(inject<string>("dmsFolderTitle", '新增文件夹'));
|
const title = ref(inject<string>("dmsFolderTitle", '新建文件夹'));
|
||||||
const isRename = ref(inject<boolean>("dmsFolderIsRename", false));
|
const isRename = ref(inject<boolean>("dmsFolderIsRename", false));
|
||||||
const isMove = ref(inject<boolean>("dmsFolderIsMove", false));
|
const isMove = ref(inject<boolean>("dmsFolderIsMove", false));
|
||||||
const isFamilyGroup = ref(inject<boolean>("dmsFolderIsFamilyGroup", false));
|
const isFamilyGroup = ref(inject<boolean>("dmsFolderIsFamilyGroup", false));
|
||||||
@@ -220,7 +219,8 @@ const rules: Record<string, Rule[]> = {
|
|||||||
|
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
try {
|
try {
|
||||||
modal.loading = true;
|
emit('submit-start')
|
||||||
|
modal.showModal = false;
|
||||||
formRef.value
|
formRef.value
|
||||||
.validate()
|
.validate()
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
@@ -258,7 +258,7 @@ const handleSubmit = async () => {
|
|||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
} finally {
|
} finally {
|
||||||
modal.loading = false;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,102 +1,41 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-spin size="large" :spinning="loading" :tip="spinTip">
|
<a-spin size="large" :spinning="loading" :tip="spinTip">
|
||||||
<div class="dms-file-enquiry">
|
<div class="dms-file-enquiry">
|
||||||
<Toolbar
|
<Toolbar :path-stack="pathStack" :root-path="rootPath" :loading="loading" @go-top="onGoTop" @go-back="onGoBack"
|
||||||
:path-stack="pathStack"
|
@refresh="onReSearch" @search="onSearchByName" @breadcrumb-click="onBreadcrumbClick" />
|
||||||
:root-path="rootPath"
|
|
||||||
:loading="loading"
|
|
||||||
@go-top="onGoTop"
|
|
||||||
@go-back="onGoBack"
|
|
||||||
@refresh="onReSearch"
|
|
||||||
@search="onSearchByName"
|
|
||||||
@breadcrumb-click="onBreadcrumbClick"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<OperatorStationFamily
|
<OperatorStationFamily :selected-items="keys" :path-stack="pathStack" :upload-url="uploadUrl" :headers="headers"
|
||||||
:selected-items="keys"
|
:can-create="canCreate" :can-amend="canAmend" :can-delete="canDelete" :can-view="canView"
|
||||||
:path-stack="pathStack"
|
@create-folder="onCreate" @set-share-folder="onShareFolder" @before-upload="beforeUpload"
|
||||||
:upload-url="uploadUrl"
|
@download="onDownloadSelected" @share="onShareSelected" @publish="onPublishSelected"
|
||||||
:headers="headers"
|
@view-preview="onViewPreviewSelected" @play-video="onUrlVideoPlayItem" @play-audio="onPlayAudioItem"
|
||||||
:can-create="canCreate"
|
@pause-audio="onPauseAudio" @continue-audio="onContinueAudio" @preview="onPreviewSelected"
|
||||||
:can-amend="canAmend"
|
@rename="onAmendSelected" @move="onMoveSelected" @delete="onDeleteSelected" />
|
||||||
:can-delete="canDelete"
|
|
||||||
:can-view="canView"
|
|
||||||
@create-folder="onCreate"
|
|
||||||
@set-share-folder="onShareFolder"
|
|
||||||
@before-upload="beforeUpload"
|
|
||||||
@download="onDownloadSelected"
|
|
||||||
@share="onShareSelected"
|
|
||||||
@publish="onPublishSelected"
|
|
||||||
@view-preview="onViewPreviewSelected"
|
|
||||||
@play-video="onUrlVideoPlayItem"
|
|
||||||
@play-audio="onPlayAudioItem"
|
|
||||||
@pause-audio="onPauseAudio"
|
|
||||||
@continue-audio="onContinueAudio"
|
|
||||||
@preview="onPreviewSelected"
|
|
||||||
@rename="onAmendSelected"
|
|
||||||
@move="onMoveSelected"
|
|
||||||
@delete="onDeleteSelected"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<MyComputerFamily
|
<MyComputerFamily :datas="datas" v-model:selected-keys="keys" @select-change="onSelectChange"
|
||||||
:datas="datas"
|
@open-folder="onOpenFolder" @open-file="onOpenFile" @preview-image="onPreviewOrgFile" />
|
||||||
v-model:selected-keys="keys"
|
|
||||||
@select-change="onSelectChange"
|
|
||||||
@open-folder="onOpenFolder"
|
|
||||||
@open-file="onOpenFile"
|
|
||||||
@preview-image="onPreviewOrgFile"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-image
|
<a-image :width="1024" :style="{ display: 'none' }" :preview="{
|
||||||
:width="1024"
|
visible,
|
||||||
:style="{ display: 'none' }"
|
onVisibleChange: setPicVisible,
|
||||||
:preview="{
|
}" :src="imageSrc" />
|
||||||
visible,
|
<dmsFolder @on-submit="onReload" @submit-start="loading = true" @submit-end="loading = false"></dmsFolder>
|
||||||
onVisibleChange: setPicVisible,
|
|
||||||
}"
|
|
||||||
:src="imageSrc"
|
|
||||||
/>
|
|
||||||
<dmsFolder @on-submit="onReload"></dmsFolder>
|
|
||||||
<videoPlay></videoPlay>
|
<videoPlay></videoPlay>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalShare" width="60%" title="分享管理查询" :mask-closable="false" :fullscreen="width < 640"
|
||||||
v-model:open="showModalShare"
|
@ok="handleSelectShare">
|
||||||
width="60%"
|
|
||||||
title="分享管理查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectShare"
|
|
||||||
>
|
|
||||||
<DmsFileShareModal ref="shareEnquiry"></DmsFileShareModal>
|
<DmsFileShareModal ref="shareEnquiry"></DmsFileShareModal>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishPhoto" width="60%" title="相册专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishPhoto"
|
:fullscreen="width < 640" @ok="handleSelectPublishPhoto">
|
||||||
width="60%"
|
|
||||||
title="相册专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishPhoto"
|
|
||||||
>
|
|
||||||
<PublishPhotoEnquiry ref="publishPhotoEnquiry"></PublishPhotoEnquiry>
|
<PublishPhotoEnquiry ref="publishPhotoEnquiry"></PublishPhotoEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishAudio" width="60%" title="音乐专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishAudio"
|
:fullscreen="width < 640" @ok="handleSelectPublishAudio">
|
||||||
width="60%"
|
|
||||||
title="音乐专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishAudio"
|
|
||||||
>
|
|
||||||
<PublishAudioEnquiry ref="publishAudioEnquiry"></PublishAudioEnquiry>
|
<PublishAudioEnquiry ref="publishAudioEnquiry"></PublishAudioEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
<dragModal
|
<dragModal v-model:open="showModalPublishVideo" width="60%" title="影视专辑查询" :mask-closable="false"
|
||||||
v-model:open="showModalPublishVideo"
|
:fullscreen="width < 640" @ok="handleSelectPublishVideo">
|
||||||
width="60%"
|
|
||||||
title="影视专辑查询"
|
|
||||||
:mask-closable="false"
|
|
||||||
:fullscreen="width < 640"
|
|
||||||
@ok="handleSelectPublishVideo"
|
|
||||||
>
|
|
||||||
<PublishVideoEnquiry ref="publishVideoEnquiry"></PublishVideoEnquiry>
|
<PublishVideoEnquiry ref="publishVideoEnquiry"></PublishVideoEnquiry>
|
||||||
</dragModal>
|
</dragModal>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -384,12 +323,12 @@ const uploadChunk = async (
|
|||||||
fileName,
|
fileName,
|
||||||
chunks[index - 1],
|
chunks[index - 1],
|
||||||
uid +
|
uid +
|
||||||
"-" +
|
"-" +
|
||||||
index.toString() +
|
index.toString() +
|
||||||
"-" +
|
"-" +
|
||||||
chunks.length.toString() +
|
chunks.length.toString() +
|
||||||
"." +
|
"." +
|
||||||
fileExtension,
|
fileExtension,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (process.env.NODE_ENV === "development") {
|
if (process.env.NODE_ENV === "development") {
|
||||||
@@ -721,7 +660,8 @@ const setPicVisible = (value: boolean): void => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onCreate = () => {
|
const onCreate = () => {
|
||||||
dmsFolderTitle.value = "新增文件夹";
|
|
||||||
|
dmsFolderTitle.value = "新建文件夹";
|
||||||
dmsFolderIsRename.value = false;
|
dmsFolderIsRename.value = false;
|
||||||
dmsFolderIsMove.value = false;
|
dmsFolderIsMove.value = false;
|
||||||
dmsFolderModal.value = true;
|
dmsFolderModal.value = true;
|
||||||
@@ -730,17 +670,17 @@ const onCreate = () => {
|
|||||||
let bindOption: BindOption = bindOptions.value.filter(
|
let bindOption: BindOption = bindOptions.value.filter(
|
||||||
(x) => x.BindValue == FamilyDmsFileViewEntity.DB_FILE_PATH,
|
(x) => x.BindValue == FamilyDmsFileViewEntity.DB_FILE_PATH,
|
||||||
)[0];
|
)[0];
|
||||||
|
|
||||||
entity.value.FilePath = bindOption.SelectOptions.filter(
|
entity.value.FilePath = bindOption.SelectOptions.filter(
|
||||||
(x) => x.BindValue == bindOption.Value,
|
(x) => x.BindValue == bindOption.Value,
|
||||||
)[0].DisplayName;
|
)[0].DisplayName;
|
||||||
entity.value.OrgFileName = bindOption.Value;
|
entity.value.OrgFileName = bindOption.Value;
|
||||||
|
|
||||||
previousFilePath.value = unref(currFilePath.value);
|
previousFilePath.value = unref(currFilePath.value);
|
||||||
currFilePath.value = bindOption.Value;
|
currFilePath.value = bindOption.Value;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const onShareFolder = () => {
|
const onShareFolder = () => {
|
||||||
|
|
||||||
if (keys.value.length == 0) return;
|
if (keys.value.length == 0) return;
|
||||||
if (
|
if (
|
||||||
keys.value[0].FavoriteIndc == "N" &&
|
keys.value[0].FavoriteIndc == "N" &&
|
||||||
@@ -753,25 +693,40 @@ const onShareFolder = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onDeleteFamilyFolderFavorite = async (folderName: string) => {
|
const onDeleteFamilyFolderFavorite = async (folderName: string) => {
|
||||||
FamilyGroupService.DeleteFamilyFolderFavorite(folderName).then(() => {
|
try {
|
||||||
notification.info({
|
loading.value = true;
|
||||||
message: "系统提示:",
|
await FamilyGroupService.DeleteFamilyFolderFavorite(folderName).then(async () => {
|
||||||
description: "分享成功移除",
|
notification.info({
|
||||||
placement: "topRight",
|
message: "系统提示:",
|
||||||
|
description: "分享成功移除",
|
||||||
|
placement: "topRight",
|
||||||
|
});
|
||||||
|
await onReload();
|
||||||
});
|
});
|
||||||
onReload();
|
} catch (error) {
|
||||||
});
|
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onInsertFamilyFolderFavorite = async (folderName: string) => {
|
const onInsertFamilyFolderFavorite = async (folderName: string) => {
|
||||||
FamilyGroupService.InsertFamilyFolderFavorite(folderName).then(() => {
|
try {
|
||||||
notification.info({
|
loading.value = true;
|
||||||
message: "系统提示:",
|
await FamilyGroupService.InsertFamilyFolderFavorite(folderName).then(async () => {
|
||||||
description: "分享成功加入",
|
notification.info({
|
||||||
placement: "topRight",
|
message: "系统提示:",
|
||||||
|
description: "分享成功加入",
|
||||||
|
placement: "topRight",
|
||||||
|
});
|
||||||
|
await onReload();
|
||||||
});
|
});
|
||||||
onReload();
|
} catch (error) {
|
||||||
});
|
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onAmend = () => {
|
const onAmend = () => {
|
||||||
@@ -815,16 +770,28 @@ const onMove = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onDelete = async () => {
|
const onDelete = async () => {
|
||||||
for (let i = 0; i < keys.value.length; i++) {
|
try {
|
||||||
await dmsFileService.Delete(keys.value[i].FileId);
|
loading.value = true;
|
||||||
|
|
||||||
|
for (let i = 0; i < keys.value.length; i++) {
|
||||||
|
await dmsFileService.DeleteFamilyDmsFolder(keys.value[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
notification.info({
|
||||||
|
message: "系统提示:",
|
||||||
|
description: "记录删除成功",
|
||||||
|
placement: "topRight",
|
||||||
|
});
|
||||||
|
|
||||||
|
await onReload();
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
loading.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
notification.info({
|
|
||||||
message: "系统提示:",
|
|
||||||
description: "记录删除成功",
|
|
||||||
placement: "topRight",
|
|
||||||
});
|
|
||||||
onReload();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const setBindOptionValue = (
|
const setBindOptionValue = (
|
||||||
@@ -865,11 +832,13 @@ const initBindOption = async (familyName: string) => {
|
|||||||
} else {
|
} else {
|
||||||
currentFamilyName.value = rootPath.value = rps[0].BindValue;
|
currentFamilyName.value = rootPath.value = rps[0].BindValue;
|
||||||
}
|
}
|
||||||
fps = await dmsFileService.FindFamilyDmsFoldersByFamilyName(
|
for (const item of rps) {
|
||||||
currentFamilyName.value,
|
const res = await dmsFileService.FindFamilyDmsFoldersByFamilyName(
|
||||||
);
|
item.BindValue,
|
||||||
|
);
|
||||||
|
fps.push(...res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bindOption = ubo.getBindSelectOption(
|
bindOption = ubo.getBindSelectOption(
|
||||||
FamilyDmsFileViewEntity.DB_FAMILY_NAME,
|
FamilyDmsFileViewEntity.DB_FAMILY_NAME,
|
||||||
"当前群组",
|
"当前群组",
|
||||||
@@ -900,7 +869,6 @@ const initBindOption = async (familyName: string) => {
|
|||||||
|
|
||||||
setBindOptionValue(FamilyDmsFileViewEntity.DB_FILE_PATH, "", "", [""], false);
|
setBindOptionValue(FamilyDmsFileViewEntity.DB_FILE_PATH, "", "", [""], false);
|
||||||
currFilePath.value = "";
|
currFilePath.value = "";
|
||||||
console.log(currFilePath.value);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
result.value.Page = pagingParams.value.page ?? 1;
|
result.value.Page = pagingParams.value.page ?? 1;
|
||||||
@@ -925,8 +893,8 @@ const findBySearchCriteria = async (c: DmsFileSearchCriteria) => {
|
|||||||
try {
|
try {
|
||||||
if (c.limit == 0) c.limit = pagingParams.value.pageSize;
|
if (c.limit == 0) c.limit = pagingParams.value.pageSize;
|
||||||
if (c.page == 0) c.page = pagingParams.value.page ?? 1;
|
if (c.page == 0) c.page = pagingParams.value.page ?? 1;
|
||||||
console.log("findBySearchCriteria" + currFilePath.value);
|
|
||||||
currentFilter.value = c.Filter;
|
currentFilter.value = c.Filter;
|
||||||
|
loading.value = true;
|
||||||
let data = await dmsFileService.FindFamilyBySearchCriteria(c);
|
let data = await dmsFileService.FindFamilyBySearchCriteria(c);
|
||||||
|
|
||||||
isSearched.value = true;
|
isSearched.value = true;
|
||||||
@@ -955,8 +923,10 @@ const findBySearchCriteria = async (c: DmsFileSearchCriteria) => {
|
|||||||
sound.value?.stop();
|
sound.value?.stop();
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
finally {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
console.log(error);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -974,15 +944,28 @@ const onReSearch = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onReload = async () => {
|
const onReload = async () => {
|
||||||
let cfp: string = currFilePath.value;
|
let orgFn: string = currentFamilyName.value;
|
||||||
await initBindOption("");
|
let orgFp: string = currFilePath.value;
|
||||||
|
|
||||||
|
await initBindOption(currentFamilyName.value);
|
||||||
|
currentFamilyName.value = orgFn;
|
||||||
|
currFilePath.value = orgFp;
|
||||||
|
|
||||||
setBindOptionValue(
|
setBindOptionValue(
|
||||||
FamilyDmsFileViewDisplayData.DB_FILE_PATH,
|
FamilyDmsFileViewEntity.DB_FAMILY_NAME,
|
||||||
cfp,
|
currentFamilyName.value,
|
||||||
"",
|
"",
|
||||||
[cfp],
|
[currentFamilyName.value],
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
setBindOptionValue(
|
||||||
|
FamilyDmsFileViewEntity.DB_FILE_PATH,
|
||||||
|
currFilePath.value,
|
||||||
|
"",
|
||||||
|
[currFilePath.value],
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
await findBySearchCriteria(unref(currentSearchCriteria));
|
await findBySearchCriteria(unref(currentSearchCriteria));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1099,7 +1082,7 @@ const handleSelectPublishVideo = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onGoTop = () => {
|
const onGoTop = () => {
|
||||||
rootPath.value='';
|
rootPath.value = '';
|
||||||
pathStack.value = [{ value: rootPath.value, displayName: "我的云盘" }];
|
pathStack.value = [{ value: rootPath.value, displayName: "我的云盘" }];
|
||||||
onSearchByFilePath(rootPath.value);
|
onSearchByFilePath(rootPath.value);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ const canView = ref<boolean>(false);
|
|||||||
const canAmend = ref<boolean>(false);
|
const canAmend = ref<boolean>(false);
|
||||||
const canDelete = ref<boolean>(false);
|
const canDelete = ref<boolean>(false);
|
||||||
const canCreate = ref<boolean>(false);
|
const canCreate = ref<boolean>(false);
|
||||||
const modalTitle = ref<string>("新增文件夹");
|
const modalTitle = ref<string>("新建文件夹");
|
||||||
const rootPath = ref<string>("");
|
const rootPath = ref<string>("");
|
||||||
const imageSrc = ref<string>("");
|
const imageSrc = ref<string>("");
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@@ -332,7 +332,7 @@ const currentSearchCriteria = ref<DmsFileSearchCriteria>(
|
|||||||
|
|
||||||
const keys = ref<DmsFileUploadDeleteLogViewDisplayData[]>([]);
|
const keys = ref<DmsFileUploadDeleteLogViewDisplayData[]>([]);
|
||||||
const dmsFolderModal = ref<boolean>(false);
|
const dmsFolderModal = ref<boolean>(false);
|
||||||
const dmsFolderTitle = ref<string>("新增文件夹");
|
const dmsFolderTitle = ref<string>("新建文件夹");
|
||||||
const dmsFolderIsRename = ref<boolean>(false);
|
const dmsFolderIsRename = ref<boolean>(false);
|
||||||
const dmsFolderIsMove = ref<boolean>(false);
|
const dmsFolderIsMove = ref<boolean>(false);
|
||||||
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
||||||
|
|||||||
@@ -514,7 +514,7 @@ const canView = ref<boolean>(false);
|
|||||||
const canAmend = ref<boolean>(false);
|
const canAmend = ref<boolean>(false);
|
||||||
const canDelete = ref<boolean>(false);
|
const canDelete = ref<boolean>(false);
|
||||||
const canCreate = ref<boolean>(false);
|
const canCreate = ref<boolean>(false);
|
||||||
const modalTitle = ref<string>("新增文件夹");
|
const modalTitle = ref<string>("新建文件夹");
|
||||||
const rootPath = ref<string>("");
|
const rootPath = ref<string>("");
|
||||||
const imageSrc = ref<string>("");
|
const imageSrc = ref<string>("");
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@@ -569,7 +569,7 @@ const currentSearchCriteria = ref<DmsFileSearchCriteria>(
|
|||||||
|
|
||||||
const keys = ref<DmsFileUploadViewDisplayData[]>([]);
|
const keys = ref<DmsFileUploadViewDisplayData[]>([]);
|
||||||
const dmsFolderModal = ref<boolean>(false);
|
const dmsFolderModal = ref<boolean>(false);
|
||||||
const dmsFolderTitle = ref<string>("新增文件夹");
|
const dmsFolderTitle = ref<string>("新建文件夹");
|
||||||
const dmsFolderIsRename = ref<boolean>(false);
|
const dmsFolderIsRename = ref<boolean>(false);
|
||||||
const dmsFolderIsMove = ref<boolean>(false);
|
const dmsFolderIsMove = ref<boolean>(false);
|
||||||
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
||||||
@@ -1127,7 +1127,7 @@ const setPicVisible = (value: boolean): void => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onCreate = () => {
|
const onCreate = () => {
|
||||||
dmsFolderTitle.value = "新增文件夹";
|
dmsFolderTitle.value = "新建文件夹";
|
||||||
dmsFolderIsRename.value = false;
|
dmsFolderIsRename.value = false;
|
||||||
dmsFolderIsMove.value = false;
|
dmsFolderIsMove.value = false;
|
||||||
dmsFolderModal.value = true;
|
dmsFolderModal.value = true;
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ const canView = ref<boolean>(false);
|
|||||||
const canAmend = ref<boolean>(false);
|
const canAmend = ref<boolean>(false);
|
||||||
const canDelete = ref<boolean>(false);
|
const canDelete = ref<boolean>(false);
|
||||||
const canCreate = ref<boolean>(false);
|
const canCreate = ref<boolean>(false);
|
||||||
const modalTitle = ref<string>("新增文件夹");
|
const modalTitle = ref<string>("新建文件夹");
|
||||||
const rootPath = ref<string>("");
|
const rootPath = ref<string>("");
|
||||||
const imageSrc = ref<string>("");
|
const imageSrc = ref<string>("");
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@@ -471,7 +471,7 @@ const currentSearchCriteria = ref<DmsFileSearchCriteria>(
|
|||||||
|
|
||||||
const keys = ref<FamilyDmsFileViewDisplayData[]>([]);
|
const keys = ref<FamilyDmsFileViewDisplayData[]>([]);
|
||||||
const dmsFolderModal = ref<boolean>(false);
|
const dmsFolderModal = ref<boolean>(false);
|
||||||
const dmsFolderTitle = ref<string>("新增文件夹");
|
const dmsFolderTitle = ref<string>("新建文件夹");
|
||||||
const dmsFolderIsRename = ref<boolean>(false);
|
const dmsFolderIsRename = ref<boolean>(false);
|
||||||
const dmsFolderIsMove = ref<boolean>(false);
|
const dmsFolderIsMove = ref<boolean>(false);
|
||||||
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
const entity = ref<DmsFileEntity>(new DmsFileEntity());
|
||||||
@@ -931,7 +931,7 @@ const onCreate = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dmsFolderTitle.value = "新增文件夹";
|
dmsFolderTitle.value = "新建文件夹";
|
||||||
dmsFolderIsRename.value = false;
|
dmsFolderIsRename.value = false;
|
||||||
dmsFolderIsMove.value = false;
|
dmsFolderIsMove.value = false;
|
||||||
dmsFolderModal.value = true;
|
dmsFolderModal.value = true;
|
||||||
|
|||||||
Reference in new issue
Block a user