441441 </div >
442442 </div >
443443 </div >
444+
445+ <!-- 访问超时设置 -->
446+ <div class =" address-config-item" >
447+ <div class =" address-config-row" >
448+ <div class =" address-config-info" >
449+ <icon-clock-circle class =" address-config-icon" />
450+ <div class =" address-config-text" >
451+ <div class =" address-config-title" >访问超时时间</div >
452+ <div class =" address-config-desc" >设置T4接口访问的超时时间(秒)</div >
453+ </div >
454+ </div >
455+ <div class =" address-config-input-group" >
456+ <a-input-number
457+ v-model =" addressSettings.apiTimeout"
458+ placeholder =" 30"
459+ size =" medium"
460+ class =" address-config-input"
461+ :min =" 5"
462+ :max =" 120"
463+ :step =" 1"
464+ >
465+ <template #suffix >
466+ <span class =" input-suffix" >秒</span >
467+ </template >
468+ </a-input-number >
469+ <div class =" address-config-actions" >
470+ <a-button
471+ type =" primary"
472+ @click =" saveAddress('apiTimeout')"
473+ :loading =" addressSaving.apiTimeout"
474+ size =" medium"
475+ >
476+ <template #icon >
477+ <icon-save />
478+ </template >
479+ 保存
480+ </a-button >
481+ </div >
482+ </div >
483+ </div >
484+ <div v-if =" addressStatus.apiTimeout && addressStatus.apiTimeout.message" class =" address-config-status" >
485+ <div
486+ class =" config-message"
487+ :class =" {
488+ 'config-message-success': addressStatus.apiTimeout.type === 'success',
489+ 'config-message-error': addressStatus.apiTimeout.type === 'error',
490+ 'config-message-warning': addressStatus.apiTimeout.type === 'warning'
491+ }"
492+ >
493+ <icon-check-circle v-if =" addressStatus.apiTimeout.type === 'success'" class =" config-icon" />
494+ <icon-exclamation-circle v-else-if =" addressStatus.apiTimeout.type === 'error'" class =" config-icon" />
495+ <icon-info-circle v-else class =" config-icon" />
496+ <span class =" config-text" >{{ addressStatus.apiTimeout.message }}</span >
497+ </div >
498+ </div >
499+ </div >
444500 </div >
445501 </a-card >
446502
@@ -895,7 +951,8 @@ const addressSettings = reactive({
895951 proxyPlayEnabled: false ,
896952 proxySniff: ' http://localhost:57573/sniffer' ,
897953 proxySniffEnabled: false ,
898- snifferTimeout: 10
954+ snifferTimeout: 10 ,
955+ apiTimeout: 30
899956})
900957
901958const addressSaving = reactive ({
@@ -907,7 +964,8 @@ const addressSaving = reactive({
907964 proxyPlayReset: false ,
908965 proxySniff: false ,
909966 proxySniffReset: false ,
910- snifferTimeout: false
967+ snifferTimeout: false ,
968+ apiTimeout: false
911969})
912970
913971const addressTesting = reactive ({
@@ -920,7 +978,8 @@ const addressStatus = reactive({
920978 proxyAccess: null ,
921979 proxyPlay: null ,
922980 proxySniff: null ,
923- snifferTimeout: null
981+ snifferTimeout: null ,
982+ apiTimeout: null
924983})
925984
926985// 播放器类型选项
@@ -1465,6 +1524,10 @@ const loadConfig = async () => {
14651524 if (! addressSettings .snifferTimeout ) {
14661525 addressSettings .snifferTimeout = 10
14671526 }
1527+ // 确保访问超时有默认值
1528+ if (! addressSettings .apiTimeout ) {
1529+ addressSettings .apiTimeout = 30
1530+ }
14681531 } catch (error) {
14691532 console .error (' Failed to load address settings:' , error)
14701533 }
0 commit comments