@@ -37,12 +37,15 @@ export default function MarkdownEditor() {
37
37
const [ isUploading , setIsUploading ] = createSignal < boolean > ( false ) ;
38
38
// 上传token
39
39
const [ uploadToken , setUploadToken ] = createSignal < string > ( "" ) ;
40
+ // 自定义上传 API 地址
41
+ const [ uploadApiUrl , setUploadApiUrl ] = createSignal < string > ( "http://121.62.28.11:40027/api/v1" ) ;
40
42
// 设置弹窗显示状态
41
43
const [ showSettingsModal , setShowSettingsModal ] = createSignal < boolean > ( false ) ;
42
44
// 编辑器引用
43
45
let editorRef : HTMLTextAreaElement | undefined ;
44
46
// 封面图片上传区域引用
45
47
let coverDropzoneRef : HTMLDivElement | undefined ;
48
+ let apiUrlInputRef : HTMLInputElement | undefined ; // 新增 API URL 输入框的引用
46
49
47
50
// 获取所有标签
48
51
const fetchLabels = async ( ) => {
@@ -81,8 +84,9 @@ export default function MarkdownEditor() {
81
84
if ( uploadToken ( ) ) {
82
85
headers [ 'Authorization' ] = `Bearer ${ uploadToken ( ) } ` ;
83
86
}
87
+ const baseUrl = uploadApiUrl ( ) || 'http://121.62.28.11:40027/api/v1' ;
84
88
const response = await http . post ( '/upload' , formData , {
85
- baseURL : 'http://121.62.28.11:40027/api/v1' ,
89
+ baseURL : baseUrl ,
86
90
headers : headers
87
91
} ) ;
88
92
@@ -194,8 +198,9 @@ export default function MarkdownEditor() {
194
198
if ( uploadToken ( ) ) {
195
199
headers [ 'Authorization' ] = `Bearer ${ uploadToken ( ) } ` ;
196
200
}
201
+ const baseUrl = uploadApiUrl ( ) || 'http://121.62.28.11:40027/api/v1' ;
197
202
const response = await http . post ( '/upload' , formData , {
198
- baseURL : 'http://121.62.28.11:40027/api/v1' ,
203
+ baseURL : baseUrl ,
199
204
headers : headers
200
205
} ) ;
201
206
@@ -245,6 +250,10 @@ export default function MarkdownEditor() {
245
250
if ( savedToken ) {
246
251
setUploadToken ( savedToken ) ;
247
252
}
253
+ const savedApiUrl = localStorage . getItem ( "uploadApiUrl" ) ;
254
+ if ( savedApiUrl ) {
255
+ setUploadApiUrl ( savedApiUrl ) ;
256
+ }
248
257
setIsMounted ( true ) ;
249
258
fetchLabels ( ) ;
250
259
@@ -279,9 +288,11 @@ export default function MarkdownEditor() {
279
288
} ;
280
289
281
290
// 保存设置
282
- const handleSaveSettings = ( newToken : string ) => {
291
+ const handleSaveSettings = ( newToken : string , newApiUrl : string ) => {
283
292
setUploadToken ( newToken ) ;
284
293
localStorage . setItem ( "uploadToken" , newToken ) ;
294
+ setUploadApiUrl ( newApiUrl ) ;
295
+ localStorage . setItem ( "uploadApiUrl" , newApiUrl ) ;
285
296
setShowSettingsModal ( false ) ;
286
297
} ;
287
298
@@ -496,17 +507,34 @@ export default function MarkdownEditor() {
496
507
< Show when = { showSettingsModal ( ) } >
497
508
< div class = "modal modal-open" >
498
509
< div class = "modal-box" >
499
- < h3 class = "font-bold text-lg" > 设置上传Token</ h3 >
500
- < input
501
- ref = { tokenInputRef }
502
- type = "text"
503
- placeholder = "在此输入Token"
504
- class = "input input-bordered w-full mt-4"
505
- value = { uploadToken ( ) }
506
- />
507
- < div class = "modal-action" >
510
+ < h3 class = "font-bold text-lg" > 设置上传参数</ h3 >
511
+ < label class = "form-control w-full mt-4" >
512
+ < div class = "label" >
513
+ < span class = "label-text" > 上传 Token</ span >
514
+ </ div >
515
+ < input
516
+ ref = { tokenInputRef }
517
+ type = "text"
518
+ placeholder = "在此输入Token"
519
+ class = "input input-bordered w-full"
520
+ value = { uploadToken ( ) }
521
+ />
522
+ </ label >
523
+ < label class = "form-control w-full mt-2" >
524
+ < div class = "label" >
525
+ < span class = "label-text" > 上传 API 地址</ span >
526
+ </ div >
527
+ < input
528
+ ref = { apiUrlInputRef }
529
+ type = "text"
530
+ placeholder = "例如: http://121.62.28.11:40027/api/v1"
531
+ class = "input input-bordered w-full"
532
+ value = { uploadApiUrl ( ) }
533
+ />
534
+ </ label >
535
+ < div class = "modal-action mt-6" >
508
536
< button class = "btn" onClick = { handleCloseSettingsModal } > 取消</ button >
509
- < button class = "btn btn-primary" onClick = { ( ) => handleSaveSettings ( tokenInputRef ?. value ?? "" ) } > 保存</ button >
537
+ < button class = "btn btn-primary" onClick = { ( ) => handleSaveSettings ( tokenInputRef ?. value ?? "" , apiUrlInputRef ?. value ?? "" ) } > 保存</ button >
510
538
</ div >
511
539
</ div >
512
540
</ div >
@@ -551,7 +579,6 @@ export default function MarkdownEditor() {
551
579
ref = { editorRef }
552
580
value = { text ( ) }
553
581
onInput = { ( e ) => setText ( e . target . value ) }
554
- onPaste = { handleEditorPaste }
555
582
onDrop = { handleEditorDrop }
556
583
onDragOver = { handleEditorDragOver }
557
584
class = "h-[calc(100vh-300px)] w-full p-4 focus:outline-none border border-base-200 rounded-md"
0 commit comments