Skip to content

Commit 0b08d5c

Browse files
author
Taois
committed
feat: 默认嗅探地址和重置按钮
1 parent 1c7a78d commit 0b08d5c

File tree

1 file changed

+101
-2
lines changed

1 file changed

+101
-2
lines changed

dashboard/src/views/Settings.vue

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,17 @@
303303
:current-value="addressSettings.proxySniff"
304304
@select="(value) => addressSettings.proxySniff = value"
305305
/>
306+
<a-button
307+
type="outline"
308+
@click="resetProxySniff"
309+
:loading="addressSaving.proxySniffReset"
310+
size="medium"
311+
>
312+
<template #icon>
313+
<icon-refresh />
314+
</template>
315+
重置
316+
</a-button>
306317
<a-button
307318
type="primary"
308319
@click="saveAddress('proxySniff')"
@@ -760,7 +771,7 @@ const addressSettings = reactive({
760771
proxyAccessEnabled: false,
761772
proxyPlay: '',
762773
proxyPlayEnabled: false,
763-
proxySniff: '',
774+
proxySniff: 'http://localhost:57573/sniffer',
764775
proxySniffEnabled: false
765776
})
766777
@@ -770,7 +781,8 @@ const addressSaving = reactive({
770781
liveConfigReset: false,
771782
proxyAccess: false,
772783
proxyPlay: false,
773-
proxySniff: false
784+
proxySniff: false,
785+
proxySniffReset: false
774786
})
775787
776788
const addressTesting = reactive({
@@ -992,6 +1004,41 @@ const resetLiveConfig = async () => {
9921004
}
9931005
}
9941006
1007+
// 重置代理嗅探接口
1008+
const resetProxySniff = async () => {
1009+
addressSaving.proxySniffReset = true
1010+
try {
1011+
// 重置为默认值
1012+
addressSettings.proxySniff = 'http://localhost:57573/sniffer'
1013+
addressSettings.proxySniffEnabled = false
1014+
1015+
// 保存到本地存储
1016+
const savedAddresses = JSON.parse(localStorage.getItem('addressSettings') || '{}')
1017+
savedAddresses.proxySniff = addressSettings.proxySniff
1018+
savedAddresses.proxySniffEnabled = addressSettings.proxySniffEnabled
1019+
localStorage.setItem('addressSettings', JSON.stringify(savedAddresses))
1020+
1021+
addressStatus.proxySniff = {
1022+
type: 'success',
1023+
message: '代理嗅探接口已重置为默认地址'
1024+
}
1025+
Message.success('代理嗅探接口重置成功')
1026+
} catch (error) {
1027+
console.error('重置代理嗅探接口失败:', error)
1028+
addressStatus.proxySniff = {
1029+
type: 'error',
1030+
message: '重置失败:' + (error.message || '未知错误')
1031+
}
1032+
Message.error('重置失败:' + (error.message || '未知错误'))
1033+
} finally {
1034+
addressSaving.proxySniffReset = false
1035+
// 8秒后清除状态消息
1036+
setTimeout(() => {
1037+
addressStatus.proxySniff = null
1038+
}, 8000)
1039+
}
1040+
}
1041+
9951042
// 获取配置键名
9961043
const getConfigKey = (configType) => {
9971044
const keyMap = {
@@ -1064,6 +1111,51 @@ const handlePlayerSelect = (playerType) => {
10641111
Message.success(`已切换到 ${getCurrentPlayerName()}`)
10651112
}
10661113
1114+
// 重置所有设置到默认状态
1115+
const resetAllSettings = () => {
1116+
// 重置地址设置
1117+
Object.assign(addressSettings, {
1118+
vodConfig: '',
1119+
liveConfig: '',
1120+
proxyAccess: '',
1121+
proxyAccessEnabled: false,
1122+
proxyPlay: '',
1123+
proxyPlayEnabled: false,
1124+
proxySniff: 'http://localhost:57573/sniffer',
1125+
proxySniffEnabled: false
1126+
})
1127+
1128+
// 重置其他设置
1129+
Object.assign(settings, {
1130+
datasourceDisplay: true,
1131+
windowPreview: true,
1132+
playerType: 'ijk',
1133+
adFilter: true,
1134+
ijkCache: false,
1135+
autoLive: false,
1136+
secureDns: false,
1137+
cspBypass: true,
1138+
referrerPolicy: 'no-referrer'
1139+
})
1140+
1141+
// 清除本地存储
1142+
localStorage.removeItem('addressSettings')
1143+
localStorage.removeItem('appSettings')
1144+
1145+
// 重置CSP配置
1146+
try {
1147+
saveCSPConfig({
1148+
enabled: true,
1149+
referrerPolicy: 'no-referrer'
1150+
})
1151+
setGlobalReferrerPolicy('no-referrer')
1152+
} catch (error) {
1153+
console.error('Failed to reset CSP config:', error)
1154+
}
1155+
1156+
Message.success('所有设置已重置为默认状态')
1157+
}
1158+
10671159
// 处理设置项点击
10681160
const handleSettingClick = (settingKey) => {
10691161
console.log('Setting clicked:', settingKey)
@@ -1093,6 +1185,9 @@ const handleSettingClick = (settingKey) => {
10931185
case 'referrer-policy':
10941186
handleReferrerPolicySelect()
10951187
break
1188+
case 'reset':
1189+
resetAllSettings()
1190+
break
10961191
default:
10971192
Message.info(`点击了设置项:${settingKey}`)
10981193
break
@@ -1108,6 +1203,10 @@ const loadConfig = async () => {
11081203
try {
11091204
const parsed = JSON.parse(savedAddresses)
11101205
Object.assign(addressSettings, parsed)
1206+
// 确保代理嗅探接口有默认值
1207+
if (!addressSettings.proxySniff) {
1208+
addressSettings.proxySniff = 'http://localhost:57573/sniffer'
1209+
}
11111210
} catch (error) {
11121211
console.error('Failed to load address settings:', error)
11131212
}

0 commit comments

Comments
 (0)