This commit is contained in:
owenchen committed 2026-09-10 13:13:17 +08:00
1 parent 59f2260f0f
commit ead11ace52
6 files changed
+2491 -61

No files matched your search

@@ -508,11 +508,15 @@ namespace CloudBuilder.Master.Service
return; return;
} }
IRepository<DmsFileUploadEntity> repositoryDmsFileUpload = repository.GetRepository<IRepository<DmsFileUploadEntity>>();
DmsFileUploadEntity upload = repositoryDmsFileUpload.DetachedEntities.Where(x => x.FileId == dmsFile.FileId).FirstOrDefault()!;
DmsFileUploadDeleteLogEntity uploadLog = new DmsFileUploadDeleteLogEntity(); DmsFileUploadDeleteLogEntity uploadLog = new DmsFileUploadDeleteLogEntity();
uploadLog.FileCategory = "MASTER"; uploadLog.FileCategory = "MASTER";
uploadLog.UploadName = securityGeneratorNumberService.GetNo(MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_UPLOAD_NAME, "FL", YesNoPolicy.NO, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_FORMAT); uploadLog.UploadName = securityGeneratorNumberService.GetNo(MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_UPLOAD_NAME, "FL", YesNoPolicy.NO, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_FORMAT);
uploadLog.OrgFileName = dmsFile.OrgFileName; uploadLog.OrgFileName = upload.OrgFileName;
//创建Dms文件,需更新父目录 //创建Dms文件,需更新父目录
DmsFileDeleteLogEntity entityLog = new DmsFileDeleteLogEntity(); DmsFileDeleteLogEntity entityLog = new DmsFileDeleteLogEntity();
@@ -621,9 +625,12 @@ namespace CloudBuilder.Master.Service
DmsFileUploadEntity uploadLog = new DmsFileUploadEntity(); DmsFileUploadEntity uploadLog = new DmsFileUploadEntity();
IRepository<DmsFileUploadDeleteLogEntity> repositoryDmsFileUploadDeleteLog = repository.GetRepository<IRepository<DmsFileUploadDeleteLogEntity>>();
DmsFileUploadDeleteLogEntity dmsFileUploadDeleteLog = repositoryDmsFileUploadDeleteLog.DetachedEntities.Where(x => x.FileId == dmsFile.FileId).FirstOrDefault()!;
uploadLog.FileCategory = "MASTER"; uploadLog.FileCategory = "MASTER";
uploadLog.UploadName = securityGeneratorNumberService.GetNo(MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_UPLOAD_NAME, "FL", YesNoPolicy.NO, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_FORMAT); uploadLog.UploadName = securityGeneratorNumberService.GetNo(MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_UPLOAD_NAME, "FL", YesNoPolicy.NO, MasterPrefixPolicy.UPLOAD_DMS_FILE_DELETE_LOG_FORMAT);
uploadLog.OrgFileName = dmsFile.OrgFileName; uploadLog.OrgFileName = dmsFileUploadDeleteLog.OrgFileName;
//创建Dms文件,需更新父目录 //创建Dms文件,需更新父目录
DmsFileEntity entityLog = new DmsFileEntity(); DmsFileEntity entityLog = new DmsFileEntity();
@@ -665,6 +672,8 @@ namespace CloudBuilder.Master.Service
DmsFileUploadDeleteLogEntity DmsFileUpload = repositoryDmsFileUploadDeleteLog.DetachedEntities.Where(x => x.FileId == key).FirstOrDefault()!; DmsFileUploadDeleteLogEntity DmsFileUpload = repositoryDmsFileUploadDeleteLog.DetachedEntities.Where(x => x.FileId == key).FirstOrDefault()!;
IRepository<DmsFolderMapDeleteLogEntity> repositoryDmsFolderMapDeleteLog = repository.GetRepository<IRepository<DmsFolderMapDeleteLogEntity>>();
if (DmsFileUpload != null) if (DmsFileUpload != null)
{ {
repositoryDmsFileUploadDeleteLog.DeleteNow(DmsFileUpload); repositoryDmsFileUploadDeleteLog.DeleteNow(DmsFileUpload);
@@ -682,7 +691,7 @@ namespace CloudBuilder.Master.Service
repositoryDmsFolderDeleteLog.DeleteNow(folder); repositoryDmsFolderDeleteLog.DeleteNow(folder);
} }
IRepository<DmsFolderMapDeleteLogEntity> repositoryDmsFolderMapDeleteLog = repository.GetRepository<IRepository<DmsFolderMapDeleteLogEntity>>();
DmsFolderMapDeleteLogEntity[] folderMaps = repositoryDmsFolderMapDeleteLog.DetachedEntities.Where(x => x.FolderNameSon == dmsFile.FileName || x.FolderNameParent == dmsFile.FileName).ToArray(); DmsFolderMapDeleteLogEntity[] folderMaps = repositoryDmsFolderMapDeleteLog.DetachedEntities.Where(x => x.FolderNameSon == dmsFile.FileName || x.FolderNameParent == dmsFile.FileName).ToArray();
if (folderMaps != null && folderMaps.Length > 0) if (folderMaps != null && folderMaps.Length > 0)
@@ -699,7 +708,13 @@ namespace CloudBuilder.Master.Service
} }
else
{
//删除文件与文件夹的映射关系
DmsFolderMapDeleteLogEntity folderMap = repositoryDmsFolderMapDeleteLog.DetachedEntities.Where(x => x.FolderNameSon == dmsFile.FileName).FirstOrDefault();
if (folderMap != null)
repositoryDmsFolderMapDeleteLog.DeleteNow(folderMap);
}
} }
private void DeleteFolderDeleteLog(string folderName) private void DeleteFolderDeleteLog(string folderName)
@@ -3,7 +3,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<_PublishTargetUrl>C:\inetpub\wwwroot\dockwebapi2</_PublishTargetUrl> <_PublishTargetUrl>C:\inetpub\wwwroot\dockwebapi2</_PublishTargetUrl>
<History>True|2026-09-09T08:40:16.6461154Z||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History> <History>True|2026-09-10T01:14:56.2914193Z||;True|2026-09-09T16:40:16.6461154+08:00||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>
File diff suppressed because it is too large. Load diff
+37 -53
View File
@@ -4,55 +4,75 @@
<a-row> <a-row>
<a-col flex="400px"> <a-col flex="400px">
<a-row justify="start"> <a-row justify="start">
<a-col :span="3" style="margin-left: 8px"> <a-col :span="2" style="margin-left: 8px">
<a-tooltip title="新建文件夹"> <a-tooltip title="新建文件夹">
<a-button v-if="canCreate" class="nav-btn" :icon="h(FolderAddOutlined)" <a-button v-if="canCreate" class="nav-btn" :icon="h(FolderAddOutlined)"
@click="$emit('create-folder')"></a-button> @click="$emit('create-folder')"></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3"> <a-col :span="2">
<a-tooltip title="上传文件"> <a-tooltip title="上传文件">
<a-button v-if="canCreate" :icon="h(UploadOutlined)" type="primary" class="nav-btn" <a-button v-if="canCreate" :icon="h(UploadOutlined)" type="primary" class="nav-btn"
@click="triggerUpload"> @click="triggerUpload">
</a-button> </a-tooltip></a-col> </a-button> </a-tooltip></a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem"> <a-col :span="2" v-if="!isDirectorySelected && isSingleItem">
<a-tooltip title="下载"> <a-tooltip title="下载">
<a-button class="nav-btn" :icon="h(DownloadOutlined)" :disabled="!canAmend" <a-button class="nav-btn" :icon="h(DownloadOutlined)" :disabled="!canAmend"
@click="onDownload"></a-button> @click="onDownload"></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem"> <a-col :span="2" v-if="!isDirectorySelected && isSingleItem">
<a-tooltip title="共享"> <a-tooltip title="共享">
<a-button class="nav-btn" :icon="h(ShareAltOutlined)" @click="onShare"></a-button> <a-button class="nav-btn" :icon="h(ShareAltOutlined)" @click="onShare"></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem"> <a-col :span="2" v-if="isSingleItem">
<a-tooltip title="重命名">
<a-button class="nav-btn" :icon="h(EditOutlined)" :disabled="!canAmend"
@click="$emit('rename', selectedItems)"></a-button>
</a-tooltip>
</a-col>
<a-col :span="2" v-if="isSingleItem">
<a-tooltip title="移动">
<a-button class="nav-btn" :icon="h(RotateRightOutlined)" :disabled="!canAmend"
@click="$emit('move', selectedItems)"></a-button>
</a-tooltip>
</a-col>
<a-col :span="2" v-if="hasSelection">
<a-tooltip title="删除">
<a-popconfirm title="确定是否删除?" ok-text="是" cancel-text="否" @confirm="$emit('delete', selectedItems)">
<a-button class="nav-btn" :icon="h(DeleteOutlined, { style: { color: 'red' } })"
:disabled="!canDelete"></a-button>
</a-popconfirm>
</a-tooltip>
</a-col>
<a-col :span="2" v-if="!isDirectorySelected && isSingleItem">
<a-tooltip :title="publishTooltip"> <a-tooltip :title="publishTooltip">
<a-button class="nav-btn" :icon="h(NotificationOutlined)" @click="onPublish"></a-button> <a-button class="nav-btn" :icon="h(NotificationOutlined)" @click="onPublish"></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem"> <a-col :span="2" v-if="!isDirectorySelected && isSingleItem">
<a-tooltip :title="previewTooltip"> <a-tooltip :title="previewTooltip">
<a-button class="nav-btn" @click="onViewPreview"><cust-icon-font size="16" <a-button class="nav-btn" @click="onViewPreview"><cust-icon-font size="16"
type="icon-qingbaojiankong" /></a-button> type="icon-qingbaojiankong" /></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo"> <a-col :span="2" v-if="!isDirectorySelected && isSingleItem && isSingleVideo">
<a-tooltip title="播放"> <a-tooltip title="播放">
<a-button class="nav-btn" @click="onPlayVideo"><cust-icon-font size="16" <a-button class="nav-btn" @click="onPlayVideo"><cust-icon-font size="16"
type="icon-foldervideo" /></a-button> type="icon-foldervideo" /></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleAudio" style="margin-left: 4px"> <a-col :span="2" v-if="!isDirectorySelected && isSingleItem && isSingleAudio" style="margin-left: 4px">
<a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放"> <a-tooltip v-if="selectedItem.IsPlay != 'Y'" title="播放">
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" <a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
@click="onPlayAudio"></a-button> @click="onPlayAudio"></a-button>
</a-tooltip> </a-tooltip>
<a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停"> <a-tooltip v-else-if="selectedItem.IsPause != 'Y'" title="暂停">
<a-button class="nav-btn" :icon="h(PauseCircleOutlined)" @click="onPauseAudio"></a-button> <a-button class="nav-btn" :icon="h(PauseCircleOutlined)" @click="onPauseAudio"></a-button>
</a-tooltip> </a-tooltip>
<a-tooltip v-else title="继续"> <a-tooltip v-else title="继续">
<a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })" <a-button class="nav-btn" :icon="h(PlayCircleOutlined, { style: { color: 'red' } })"
@click="onContinueAudio"></a-button> @click="onContinueAudio"></a-button>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
@@ -60,52 +80,15 @@
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<a-col :span="8" flex="none"> <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 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)">
<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>
</a-col> </a-col>
</a-row> </a-row>
<div style="display: none"> <div style="display: none">
<a-upload <a-upload v-if="canCreate" v-model:file-list="fileList" name="file" :before-upload="onBeforeUpload"
v-if="canCreate" :headers="headers" :show-upload-list="false" :action="uploadUrl" ref="uploadRef">
v-model:file-list="fileList" </a-upload>
name="file" </div>
:before-upload="onBeforeUpload"
:headers="headers"
:show-upload-list="false"
:action="uploadUrl"
ref="uploadRef"
>
</a-upload>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@@ -123,6 +106,7 @@ import {
EditOutlined, EditOutlined,
ScissorOutlined, ScissorOutlined,
DeleteOutlined, DeleteOutlined,
RotateRightOutlined,
DownOutlined, DownOutlined,
} from "@ant-design/icons-vue"; } from "@ant-design/icons-vue";
import { DmsFileUploadViewDisplayData } from "@/data/auto/dmsFileUploadViewDisplayData"; import { DmsFileUploadViewDisplayData } from "@/data/auto/dmsFileUploadViewDisplayData";
@@ -18,8 +18,9 @@
</a-col> </a-col>
<a-col :span="3" v-if="hasSelection"> <a-col :span="3" v-if="hasSelection">
<a-tooltip title="删除"> <a-tooltip title="删除">
<a-popconfirm title="确定是否删除?" ok-text="是" cancel-text="否" @confirm="$emit('delete', selectedItems)">
<a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;" <a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;"
:disabled="!canCreate" @click="$emit('delete', selectedItems)"></a-button> :disabled="!canCreate" ></a-button></a-popconfirm>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo"> <a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo">
@@ -18,8 +18,9 @@
</a-col> </a-col>
<a-col :span="3" v-if="hasSelection"> <a-col :span="3" v-if="hasSelection">
<a-tooltip title="删除"> <a-tooltip title="删除">
<a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;" <a-popconfirm title="确定是否删除?" ok-text="是" cancel-text="否" @confirm="$emit('delete', selectedItems)">
@click="$emit('delete', selectedItems)"></a-button> <a-button class="nav-btn" :icon="h(DeleteOutlined)" style="color:red;"></a-button>
</a-popconfirm>
</a-tooltip> </a-tooltip>
</a-col> </a-col>
<a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo"> <a-col :span="3" v-if="!isDirectorySelected && isSingleItem && isSingleVideo">