feature: 启用/禁用 “远程配置” 时,自动加载配置并重启代理服务和系统代理。

pull/274/head
王良 9 months ago
parent 129da218f6
commit 925c20501a

@ -124,18 +124,24 @@ const configApi = {
defConfig = mergeApi.doMerge(defConfig, configApi.readRemoteConfig())
}
// 计算新配置与默认配置(启用远程配置时,含远程配置)的差异,并保存到 config.json5
// 计算新配置与默认配置(启用远程配置时,含远程配置)的差异,并保存到 config.json
const diffConfig = mergeApi.doDiff(defConfig, newConfig)
const configPath = _getConfigPath()
fs.writeFileSync(configPath, JSON.stringify(diffConfig, null, '\t'))
log.info('保存自定义配置文件成功:', configPath)
configApi.reload()
return diffConfig
// 重载配置
const allConfig = configApi.reload()
return {
diffConfig,
allConfig
}
},
doMerge: mergeApi.doMerge,
doDiff: mergeApi.doDiff,
/**
* 读取 config.json5 合并配置
* 读取 config.json 合并配置
* @returns {*}
*/
reload () {

@ -190,7 +190,7 @@ export default {
},
doSave () {
return api.config.save(this.targetConfig).then(ret => {
this.$emit('change', ret)
this.$emit('change', ret.diffConfig)
})
},
deleteDnsMapping (item, index) {

@ -7,6 +7,7 @@ export default {
},
data () {
return {
key: undefined,
config: undefined,
status: {},
labelCol: { span: 4 },
@ -31,10 +32,10 @@ export default {
this.status = this.$status
const config = await this.$api.config.reload()
this.$set(this, 'config', config)
this.setConfig(config)
this.systemPlatform = await this.$api.info.getSystemPlatform()
console.log('config', this.config, this.systemPlatform)
// eslint-disable-next-line no-debugger
this.printConfig()
if (this.ready) {
return this.ready(this.config)
@ -74,8 +75,11 @@ export default {
})
},
saveConfig () {
return this.$api.config.save(this.config).then(() => {
return this.$api.config.save(this.config).then((ret) => {
this.$message.info('设置已保存')
this.setConfig(ret.allConfig)
this.printConfig('after saveConfig(), ')
return ret
})
},
getConfig (key) {
@ -85,6 +89,12 @@ export default {
}
return value
},
setConfig (newConfig) {
this.$set(this, 'config', newConfig)
},
printConfig (prefix = '') {
console.log(`${prefix}${this.key} page config:`, this.config, this.systemPlatform)
},
getStatus (key) {
const value = lodash.get(this.status, key)
if (value == null) {

@ -100,9 +100,17 @@ export default {
this.$api.autoStart.enabled(this.config.app.autoStart.enabled)
this.saveConfig()
},
onRemoteConfigEnabledChange () {
async onRemoteConfigEnabledChange () {
this.saveConfig()
this.$message.info('请重启加速服务')
if (this.config.app.remoteConfig.enabled === true) {
await this.$api.config.startAutoDownloadRemoteConfig()
} else {
this.$api.config.reload()
}
if (this.status.server.enabled || this.status.proxy.enabled) {
await this.$api.proxy.restart()
this.$api.server.restart()
}
}
}
}

Loading…
Cancel
Save