File tree Expand file tree Collapse file tree 5 files changed +71
-0
lines changed Expand file tree Collapse file tree 5 files changed +71
-0
lines changed Original file line number Diff line number Diff line change 44 Menu as IconMenu ,
55 Location ,
66 Share ,
7+ Files ,
78 ArrowDown
89} from ' @element-plus/icons-vue'
910import { ref , watch } from ' vue'
@@ -12,6 +13,7 @@ import { Cache } from './views/cache'
1213import TestingPanel from ' ./views/TestingPanel.vue'
1314import MockManager from ' ./views/MockManager.vue'
1415import StoreManager from ' ./views/StoreManager.vue'
16+ import FileManager from ' ./views/FileManager.vue'
1517import SecretManager from ' ./views/SecretManager.vue'
1618import WelcomePage from ' ./views/WelcomePage.vue'
1719import { 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 >
Original file line number Diff line number Diff line change 4242 "welcome" : " Welcome" ,
4343 "secrets" : " Secrets" ,
4444 "stores" : " Stores" ,
45+ "files" : " Files" ,
4546 "templateQuery" : " Template Functions Query" ,
4647 "output" : " Output"
4748 },
Original file line number Diff line number Diff line change 3636 "welcome" : " 欢迎" ,
3737 "secrets" : " 凭据" ,
3838 "stores" : " 存储" ,
39+ "files" : " 文件" ,
3940 "parameter" : " 参数" ,
4041 "templateQuery" : " 模板函数查询" ,
4142 "output" : " 输出"
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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 ;" >
You can’t perform that action at this time.
0 commit comments