Skip to content

Commit d81263e

Browse files
committed
WIP: add file manager ui
1 parent d003143 commit d81263e

File tree

5 files changed

+71
-0
lines changed

5 files changed

+71
-0
lines changed

console/atest-ui/src/App.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
Menu as IconMenu,
55
Location,
66
Share,
7+
Files,
78
ArrowDown
89
} from '@element-plus/icons-vue'
910
import { ref, watch } from 'vue'
@@ -12,6 +13,7 @@ import { Cache } from './views/cache'
1213
import TestingPanel from './views/TestingPanel.vue'
1314
import MockManager from './views/MockManager.vue'
1415
import StoreManager from './views/StoreManager.vue'
16+
import FileManager from './views/FileManager.vue'
1517
import SecretManager from './views/SecretManager.vue'
1618
import WelcomePage from './views/WelcomePage.vue'
1719
import { useI18n } from 'vue-i18n'
@@ -116,6 +118,10 @@ const handleChangeLan = (command: string) => {
116118
<el-icon><location /></el-icon>
117119
<template #title>{{ t('title.stores') }}</template>
118120
</el-menu-item>
121+
<el-menu-item index="file">
122+
<el-icon><files /></el-icon>
123+
<template #title>{{ t('title.files') }}</template>
124+
</el-menu-item>
119125
</el-menu>
120126
</el-aside>
121127

@@ -137,6 +143,7 @@ const handleChangeLan = (command: string) => {
137143
<TestingPanel v-if="panelName === 'testing'" />
138144
<MockManager v-else-if="panelName === 'mock'" />
139145
<StoreManager v-else-if="panelName === 'store'" />
146+
<FileManager v-else-if="panelName === 'file'" />
140147
<SecretManager v-else-if="panelName === 'secret'" />
141148
<WelcomePage v-else />
142149
</el-main>

console/atest-ui/src/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"welcome": "Welcome",
4343
"secrets": "Secrets",
4444
"stores": "Stores",
45+
"files": "Files",
4546
"templateQuery": "Template Functions Query",
4647
"output": "Output"
4748
},

console/atest-ui/src/locales/zh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"welcome": "欢迎",
3737
"secrets": "凭据",
3838
"stores": "存储",
39+
"files": "文件",
3940
"parameter": "参数",
4041
"templateQuery": "模板函数查询",
4142
"output": "输出"
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<script setup lang="ts">
2+
import { ref, onMounted } from 'vue'
3+
import { ElMessage } from 'element-plus'
4+
5+
const fileList = ref([])
6+
7+
const handleFileUpload = (file) => {
8+
const reader = new FileReader()
9+
reader.onload = (e) => {
10+
const fileData = {
11+
name: file.name,
12+
type: file.type,
13+
size: file.size,
14+
content: e.target.result
15+
}
16+
fileList.value.push(fileData)
17+
console.log('fileList', fileList.value)
18+
ElMessage({
19+
message: '文件上传成功',
20+
type: 'success'
21+
})
22+
}
23+
reader.readAsDataURL(file.raw)
24+
return false // 阻止默认上传行为
25+
}
26+
27+
const deleteFile = (file) => {
28+
const index = fileList.value.findIndex(item => item.name === file.name)
29+
if (index !== -1) {
30+
fileList.value.splice(index, 1)
31+
ElMessage({
32+
message: '文件删除成功',
33+
type: 'success'
34+
})
35+
}
36+
}
37+
38+
</script>
39+
40+
<template>
41+
<div>
42+
<h2>文件管理器</h2>
43+
44+
<el-upload
45+
action="#"
46+
:auto-upload="false"
47+
:on-change="handleFileUpload"
48+
:on-remove="deleteFile"
49+
:file-list="fileList"
50+
multiple
51+
>
52+
<el-button type="primary">点击上传</el-button>
53+
<template #tip>
54+
<div class="el-upload__tip">
55+
可以上传任意类型的文件
56+
</div>
57+
</template>
58+
</el-upload>
59+
60+
</div>
61+
</template>

console/atest-ui/src/views/TestCase.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,7 @@ Magic.Keys(() => {
704704
<el-radio :label="3">raw</el-radio>
705705
<el-radio :label="4">x-www-form-urlencoded</el-radio>
706706
<el-radio :label="5">JSON</el-radio>
707+
<el-radio :label="6">file</el-radio>
707708
</el-radio-group>
708709

709710
<div style="flex-grow: 1;">

0 commit comments

Comments
 (0)