diff --git a/README.md b/README.md
index e55d8101..7a8f16be 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@
vue3-element-admin
-
-
+
+
diff --git a/package.json b/package.json
index 36ae8bc3..01c79a2b 100644
--- a/package.json
+++ b/package.json
@@ -45,17 +45,17 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
- "@stomp/stompjs": "^7.0.1",
+ "@stomp/stompjs": "^7.1.0",
"@vueuse/core": "^12.8.2",
"@wangeditor-next/editor": "^5.6.34",
"@wangeditor-next/editor-for-vue": "^5.1.14",
"animate.css": "^4.1.1",
- "axios": "^1.8.2",
- "codemirror": "^5.65.18",
+ "axios": "^1.8.4",
+ "codemirror": "^5.65.19",
"codemirror-editor-vue3": "^2.8.0",
"default-passive-events": "^2.0.0",
"echarts": "^5.6.0",
- "element-plus": "^2.9.6",
+ "element-plus": "^2.9.7",
"exceljs": "^4.4.0",
"lodash-es": "^4.17.21",
"nprogress": "^0.2.0",
@@ -71,34 +71,34 @@
"devDependencies": {
"@commitlint/cli": "^19.8.0",
"@commitlint/config-conventional": "^19.8.0",
- "@eslint/js": "^9.22.0",
+ "@eslint/js": "^9.23.0",
"@iconify/utils": "^2.3.0",
"@types/codemirror": "^5.60.15",
"@types/lodash-es": "^4.17.12",
- "@types/node": "^22.13.10",
+ "@types/node": "^22.13.11",
"@types/nprogress": "^0.2.3",
"@types/path-browserify": "^1.0.3",
"@types/qs": "^6.9.18",
"@types/sortablejs": "^1.15.8",
- "@typescript-eslint/eslint-plugin": "^8.26.1",
- "@typescript-eslint/parser": "^8.26.1",
- "@vitejs/plugin-vue": "^5.2.1",
+ "@typescript-eslint/eslint-plugin": "^8.27.0",
+ "@typescript-eslint/parser": "^8.27.0",
+ "@vitejs/plugin-vue": "^5.2.3",
"autoprefixer": "^10.4.21",
"commitizen": "^4.3.1",
"cz-git": "^1.11.1",
- "eslint": "^9.22.0",
+ "eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-vue": "^10.0.0",
"globals": "^15.15.0",
"husky": "^9.1.7",
- "lint-staged": "^15.4.3",
+ "lint-staged": "^15.5.0",
"postcss": "^8.5.3",
"postcss-html": "^1.8.0",
"postcss-scss": "^4.0.9",
"prettier": "^3.5.3",
- "sass": "^1.85.1",
- "stylelint": "^16.15.0",
+ "sass": "^1.86.0",
+ "stylelint": "^16.16.0",
"stylelint-config-html": "^1.1.0",
"stylelint-config-recess-order": "^6.0.0",
"stylelint-config-recommended": "^15.0.0",
@@ -107,11 +107,11 @@
"stylelint-prettier": "^5.0.3",
"terser": "^5.39.0",
"typescript": "^5.8.2",
- "typescript-eslint": "^8.26.1",
+ "typescript-eslint": "^8.27.0",
"unocss": "65.4.3",
"unplugin-auto-import": "^19.1.1",
"unplugin-vue-components": "^28.4.1",
- "vite": "^6.2.1",
+ "vite": "^6.2.2",
"vite-plugin-mock-dev-server": "^1.8.4",
"vue-eslint-parser": "^10.1.1",
"vue-tsc": "^2.2.8"
diff --git a/src/components/Upload/FileUpload.vue b/src/components/Upload/FileUpload.vue
index 472f293d..4832b246 100644
--- a/src/components/Upload/FileUpload.vue
+++ b/src/components/Upload/FileUpload.vue
@@ -46,6 +46,7 @@ import {
UploadRawFile,
UploadUserFile,
UploadFile,
+ UploadFiles,
UploadProgressEvent,
UploadRequestOptions,
} from "element-plus";
@@ -147,7 +148,7 @@ watch(
function handleBeforeUpload(file: UploadRawFile) {
// 限制文件大小
if (file.size > props.maxFileSize * 1024 * 1024) {
- ElMessage.warning("上传图片不能大于" + props.maxFileSize + "M");
+ ElMessage.warning("上传文件不能大于" + props.maxFileSize + "M");
return false;
}
return true;
@@ -190,10 +191,34 @@ const handleProgress = (event: UploadProgressEvent) => {
/**
* 上传成功
*/
-const handleSuccess = (fileInfo: FileInfo) => {
+const handleSuccess = (response: any, uploadFile: UploadFile, files: UploadFiles) => {
ElMessage.success("上传成功");
-
- modelValue.value = [...modelValue.value, { name: fileInfo.name, url: fileInfo.url } as FileInfo];
+ //只有当状态为success或者fail,代表文件上传全部完成了,失败也算完成
+ if (
+ files.every((file: UploadFile) => {
+ return file.status === "success" || file.status === "fail";
+ })
+ ) {
+ let fileInfos = [] as FileInfo[];
+ files.map((file: UploadFile) => {
+ if (file.status === "success") {
+ //只取携带response的才是刚上传的
+ let res = file.response as FileInfo;
+ if (res) {
+ fileInfos.push({ name: res.name, url: res.url } as FileInfo);
+ }
+ } else {
+ //失败上传 从fileList删掉,不展示
+ fileList.value.splice(
+ fileList.value.findIndex((e) => e.uid === file.uid),
+ 1
+ );
+ }
+ });
+ if (fileInfos.length > 0) {
+ modelValue.value = [...modelValue.value, ...fileInfos];
+ }
+ }
};
/**
diff --git a/src/components/Upload/SingleImageUpload.vue b/src/components/Upload/SingleImageUpload.vue
index 8da4aae4..f528b248 100644
--- a/src/components/Upload/SingleImageUpload.vue
+++ b/src/components/Upload/SingleImageUpload.vue
@@ -10,7 +10,6 @@
:http-request="handleUpload"
:on-success="onSuccess"
:on-error="onError"
- multiple
>