lx-music-desktop/src/renderer/views/Setting/components/SettingNetwork.vue
2023-05-19 22:01:18 +08:00

56 lines
2.1 KiB
Vue

<template lang="pug">
dt#network {{ $t('setting__network') }}
dd
h3#network_proxy_title {{ $t('setting__network_proxy_title') }}
div
.p
base-checkbox(id="setting_network_proxy_enable" :model-value="appSetting['network.proxy.enable']" :label="$t('setting__is_enable')" @update:model-value="updateSetting({'network.proxy.enable': $event})")
.p
base-input.gap-left(:model-value="appSetting['network.proxy.host']" :placeholder="proxy.envProxy ? proxy.envProxy.host : $t('setting__network_proxy_host')" @update:model-value="setHost")
base-input.gap-left(:model-value="appSetting['network.proxy.port']" :placeholder="proxy.envProxy ? proxy.envProxy.port : $t('setting__network_proxy_port')" @update:model-value="setPort")
.p
base-input.gap-left(:model-value="appSetting['network.proxy.username']" :placeholder="$t('setting__network_proxy_username')" @update:model-value="setUserName")
base-input.gap-left(:model-value="appSetting['network.proxy.password']" type="password" :placeholder="$t('setting__network_proxy_password')" @update:model-value="setPassword")
</template>
<script>
import { onBeforeUnmount } from '@common/utils/vueTools'
import { proxy } from '@renderer/store'
import { debounce } from '@common/utils'
import { appSetting, updateSetting } from '@renderer/store/setting'
export default {
name: 'SettingNetwork',
setup() {
const setHost = debounce(host => {
updateSetting({ 'network.proxy.host': host.trim() })
}, 500)
const setPort = debounce(port => {
updateSetting({ 'network.proxy.port': port.trim() })
}, 500)
const setUserName = debounce(username => {
updateSetting({ 'network.proxy.username': username.trim() })
}, 500)
const setPassword = debounce(password => {
updateSetting({ 'network.proxy.password': password.trim() })
}, 500)
onBeforeUnmount(() => {
if (appSetting['network.proxy.enable'] && !appSetting['network.proxy.host']) proxy.enable = false
})
return {
appSetting,
updateSetting,
setHost,
setPort,
setUserName,
setPassword,
proxy,
}
},
}
</script>