diff --git a/WebVue/src/components/basic/MyComputer.vue b/WebVue/src/components/basic/MyComputer.vue
index 388b89a..25feccf 100644
--- a/WebVue/src/components/basic/MyComputer.vue
+++ b/WebVue/src/components/basic/MyComputer.vue
@@ -17,7 +17,7 @@
-
@@ -92,7 +92,7 @@
{{ formatDate(record.CreatedDatetime) }}
-
+
@@ -125,6 +125,24 @@ const emit = defineEmits([
const viewMode = ref<"icon" | "list">("icon");
+/**
+ * 默认排序:文件夹排在最前面,之后按文件名升序。
+ * 只影响显示顺序,不改动父组件传进来的数组。
+ * 中文用 localeCompare 走拼音排序(直接比大小会按 Unicode 排,顺序很怪),
+ * 带 numeric 让「文件2」排在「文件10」前面。
+ */
+const sortedDatas = computed(() => {
+ if (!props.datas) return [];
+ return [...props.datas].sort((a, b) => {
+ const aIsDir = a.IsDirectoryIndc == "Y" ? 0 : 1;
+ const bIsDir = b.IsDirectoryIndc == "Y" ? 0 : 1;
+ if (aIsDir !== bIsDir) return aIsDir - bIsDir;
+ return (a.OrgFileName ?? "").localeCompare(b.OrgFileName ?? "", "zh-CN", {
+ numeric: true,
+ });
+ });
+});
+
const isAllChecked = computed(() => {
if (!props.datas || props.datas.length === 0) return false;
return props.datas.every((d) => props.selectedKeys.some((s) => s.FileId === d.FileId));
diff --git a/WebVue/src/views/master/DmsFileEnquiry.vue b/WebVue/src/views/master/DmsFileEnquiry.vue
index 0628df2..0a24278 100644
--- a/WebVue/src/views/master/DmsFileEnquiry.vue
+++ b/WebVue/src/views/master/DmsFileEnquiry.vue
@@ -5,13 +5,13 @@
@refresh="onReSearch" @search="onSearchByName" @breadcrumb-click="onBreadcrumbClick" />
+ :can-amend="canAmend" :can-delete="canDelete" :can-view="canView" :resolve-file-path="resolveUploadFilePath"
+ @create-folder="onCreate" @upload-start="onUploadStart" @upload-progress="onUploadProgress"
+ @upload-success="onUploadSuccess" @upload-error="onUploadError" @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" />
@@ -119,11 +119,10 @@ const previousFilePath = ref("");
* 否则会得到 "//DmsFile/UploadDmsFile",被浏览器当作协议相对地址(host = dmsfile)而导致解析失败。
*/
const uploadUrl = ref(
- `${
- (process.env.NODE_ENV === "development"
- ? WebSitePolicy.WebApiRootDev
- : WebSitePolicy.WebApiRoot
- ).replace(/\/$/, "")
+ `${(process.env.NODE_ENV === "development"
+ ? WebSitePolicy.WebApiRootDev
+ : WebSitePolicy.WebApiRoot
+ ).replace(/\/$/, "")
}/DmsFile/UploadDmsFile`
);
@@ -1005,22 +1004,30 @@ const onShareSelected = (items: DmsFileUploadViewDisplayData[]) => {
}
};
-const onPublishSelected = (items: DmsFileUploadViewDisplayData[]) => {
+const onPublishSelected = async (items: DmsFileUploadViewDisplayData[]) => {
const files = items.filter((item) => item.IsDirectoryIndc != "Y");
if (files.length === 0) return;
- const first = files[0];
- const mediaKey = (item: DmsFileUploadViewDisplayData) =>
- item.OrderKey || item.OrgFileName || "";
- if (fileTypePolicy.isImage(mediaKey(first))) {
- keys.value = files.filter((item) => fileTypePolicy.isImage(mediaKey(item)));
- onPublishPhoto();
- } else if (fileTypePolicy.isVideo(mediaKey(first))) {
- keys.value = files.filter((item) => fileTypePolicy.isVideo(mediaKey(item)));
- onPublishVideo();
- } else if (fileTypePolicy.isAudio(mediaKey(first))) {
- keys.value = files.filter((item) => fileTypePolicy.isAudio(mediaKey(item)));
- onPublishAudio();
+ try {
+ loading.value = true;
+ const first = files[0];
+ const mediaKey = (item: DmsFileUploadViewDisplayData) =>
+ item.OrderKey || item.OrgFileName || "";
+ if (fileTypePolicy.isImage(mediaKey(first))) {
+ keys.value = files.filter((item) => fileTypePolicy.isImage(mediaKey(item)));
+ await onPublishPhoto();
+ } else if (fileTypePolicy.isVideo(mediaKey(first))) {
+ keys.value = files.filter((item) => fileTypePolicy.isVideo(mediaKey(item)));
+ await onPublishVideo();
+ } else if (fileTypePolicy.isAudio(mediaKey(first))) {
+ keys.value = files.filter((item) => fileTypePolicy.isAudio(mediaKey(item)));
+ await onPublishAudio();
+ }
+ } catch (error) {
+ loading.value = false;
+ } finally {
+ loading.value = false;
}
+
};
const onViewPreviewSelected = (items: DmsFileUploadViewDisplayData[]) => {