From 60ebfc487546e53f3d481297a5df9862ff5f0fdc Mon Sep 17 00:00:00 2001
From: mxd <838425805@qq.com>
Date: Sat, 14 Aug 2021 22:27:34 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=AF=E6=8C=81=E5=9C=A8?=
=?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=97=B6=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/components/common/magic-file.vue | 56 +++++++++++++++++++
.../components/editor/magic-script-editor.vue | 22 +++++++-
.../src/components/layout/magic-header.vue | 21 ++-----
.../src/components/layout/magic-request.vue | 20 ++++---
4 files changed, 93 insertions(+), 26 deletions(-)
create mode 100644 magic-editor/src/console/src/components/common/magic-file.vue
diff --git a/magic-editor/src/console/src/components/common/magic-file.vue b/magic-editor/src/console/src/components/common/magic-file.vue
new file mode 100644
index 00000000..7a55ada8
--- /dev/null
+++ b/magic-editor/src/console/src/components/common/magic-file.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
diff --git a/magic-editor/src/console/src/components/editor/magic-script-editor.vue b/magic-editor/src/console/src/components/editor/magic-script-editor.vue
index 27bd01e5..9f1cbdf6 100644
--- a/magic-editor/src/console/src/components/editor/magic-script-editor.vue
+++ b/magic-editor/src/console/src/components/editor/magic-script-editor.vue
@@ -440,7 +440,14 @@ export default {
delete saveObj.responseHeader
delete saveObj.running
// saveObj.responseHeader = JSON.stringify(saveObj.responseHeader)
- saveObj.parameters = saveObj.parameters.filter(it => it.name)
+ saveObj.parameters = saveObj.parameters.filter(it => it.name).map(it => {
+ if(it.value instanceof FileList){
+ let temp = {...it};
+ delete temp.value;
+ return temp;
+ }
+ return it;
+ })
saveObj.paths = saveObj.paths.filter(it => it.name)
saveObj.headers = saveObj.headers.filter(it => it.name)
saveObj.option = JSON.stringify(saveObj.option)
@@ -648,6 +655,19 @@ export default {
requestConfig.headers[contants.HEADER_REQUEST_SESSION] = sessionId
requestConfig.headers[contants.HEADER_MAGIC_TOKEN] = contants.HEADER_MAGIC_TOKEN_VALUE
this.mergeGlobalSettings(requestConfig)
+ if(requestConfig.data && Object.values(requestConfig.data).some(it => it instanceof FileList)){
+ requestConfig.headers['Content-Type'] = 'multipart/form-data';
+ let formData = new FormData()
+ Object.keys(requestConfig.data).forEach(key => {
+ let value = requestConfig.data[key];
+ if(value instanceof FileList){
+ value.forEach(file => formData.append(key, file, file.name))
+ }else{
+ formData.append(key, value);
+ }
+ });
+ requestConfig.data = formData;
+ }
requestConfig.headers[contants.HEADER_REQUEST_BREAKPOINTS] = this.editor
.getModel()
.getAllDecorations()
diff --git a/magic-editor/src/console/src/components/layout/magic-header.vue b/magic-editor/src/console/src/components/layout/magic-header.vue
index db56e346..bb5beee7 100644
--- a/magic-editor/src/console/src/components/layout/magic-header.vue
+++ b/magic-editor/src/console/src/components/layout/magic-header.vue
@@ -39,9 +39,7 @@
-
-
+
@@ -92,6 +90,7 @@ import store from '@/scripts/store.js'
import request from '@/api/request.js'
import MagicDialog from '@/components/common/modal/magic-dialog.vue'
import MagicInput from '@/components/common/magic-input.vue'
+import MagicFile from '@/components/common/magic-file.vue'
import MagicResourceChoose from '@/components/resources/magic-resource-choose.vue'
import MagicSearch from './magic-search.vue'
@@ -101,6 +100,7 @@ export default {
MagicDialog,
MagicInput,
MagicSearch,
+ MagicFile,
MagicResourceChoose
},
props: {
@@ -116,7 +116,6 @@ export default {
showUploadDialog: false,
showPushDialog: false,
exportVisible: false,
- filename: null,
target: 'http://host:port/_magic-api-sync',
secretKey: '123456789',
skinRight: 40 + 'px',
@@ -157,14 +156,6 @@ export default {
});
}
},
- onFileSelected() {
- if (this.$refs.file.files[0]) {
- this.filename = this.$refs.file.files[0].name;
- }
- },
- choseFile() {
- this.$refs.file.click();
- },
upload() {
this.showUploadDialog = true;
},
@@ -204,10 +195,10 @@ export default {
}
},
doUpload(mode) {
- let file = this.$refs.file.files[0];
+ let file = this.$refs.uploadFile.getFile();
if (file) {
let formData = new FormData();
- formData.append('file', file, this.filename);
+ formData.append('file', file, file.name);
formData.append('mode', mode);
let _upload = () => {
this.showUploadDialog = false;
@@ -224,8 +215,6 @@ export default {
bus.$emit('status', `${mode === 'full' ? '全量': '增量'}上传成功`)
bus.$emit('refresh-resource')
})
- this.filename = '';
- this.$refs.file.value = '';
}
if (mode === 'full') {
this.$magicConfirm({
diff --git a/magic-editor/src/console/src/components/layout/magic-request.vue b/magic-editor/src/console/src/components/layout/magic-request.vue
index 7979289b..9d5fb3e9 100644
--- a/magic-editor/src/console/src/components/layout/magic-request.vue
+++ b/magic-editor/src/console/src/components/layout/magic-request.vue
@@ -22,7 +22,7 @@