|
|
@ -3,7 +3,7 @@ |
|
|
|
<div class="setting-item"> |
|
|
|
<span class="label">WAN连接类型</span> |
|
|
|
<div class="options"> |
|
|
|
<button |
|
|
|
<button v-if="isEdit" |
|
|
|
v-for="(item, index) in networkModeList" |
|
|
|
:key="index" |
|
|
|
:class="{ |
|
|
@ -13,12 +13,15 @@ |
|
|
|
> |
|
|
|
{{ item.label }} |
|
|
|
</button> |
|
|
|
<div v-else class="network-value"> |
|
|
|
{{ networkMap[networkForm.networkMode] }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<template v-if="networkForm.networkMode === 'STATIC_IP'"> |
|
|
|
<div class="setting-item"> |
|
|
|
<span class="label">IP地址</span> |
|
|
|
<div> |
|
|
|
<div v-if="isEdit"> |
|
|
|
<input |
|
|
|
style="width: 20rem" |
|
|
|
v-model="networkForm.ip" |
|
|
@ -27,10 +30,13 @@ |
|
|
|
readonly |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div v-else class="network-value"> |
|
|
|
{{ networkForm.ip }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="setting-item"> |
|
|
|
<span class="label">子网掩码</span> |
|
|
|
<div> |
|
|
|
<div v-if="isEdit"> |
|
|
|
<input |
|
|
|
style="width: 20rem" |
|
|
|
v-model="networkForm.netmask" |
|
|
@ -39,10 +45,13 @@ |
|
|
|
readonly |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div v-else class="network-value"> |
|
|
|
{{ networkForm.netmask }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="setting-item"> |
|
|
|
<span class="label">网关</span> |
|
|
|
<div> |
|
|
|
<div v-if="isEdit"> |
|
|
|
<input |
|
|
|
style="width: 20rem" |
|
|
|
v-model="networkForm.gateway" |
|
|
@ -51,6 +60,9 @@ |
|
|
|
readonly |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div v-else class="network-value"> |
|
|
|
{{ networkForm.gateway }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="dns-list"> |
|
|
|
<div |
|
|
@ -64,10 +76,11 @@ |
|
|
|
{{ index === 0 ? '首先' : '备选' }} |
|
|
|
</span> |
|
|
|
<el-input |
|
|
|
v-if="isEdit" |
|
|
|
style="width: 21rem" |
|
|
|
v-model="networkForm.dnsList[index]" |
|
|
|
name="firstDns" |
|
|
|
@focus="e=>openKeyboard(e, index)" |
|
|
|
@focus="e => openKeyboard(e, index)" |
|
|
|
readonly |
|
|
|
> |
|
|
|
<template #append> |
|
|
@ -75,6 +88,9 @@ |
|
|
|
<el-icon v-else @click="onDelDns(index)"><Close /></el-icon> |
|
|
|
</template> |
|
|
|
</el-input> |
|
|
|
<div v-else class="network-value"> |
|
|
|
{{ networkForm.dnsList[index] }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -138,8 +154,16 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<button class="save-network" @click="onSaveNetwork" > |
|
|
|
保存 |
|
|
|
<div v-if="isEdit"> |
|
|
|
<button class="save-network" @click="onSaveNetwork" > |
|
|
|
保 存 |
|
|
|
</button> |
|
|
|
<button @click="onCancel" class="cancel-network"> |
|
|
|
取 消 |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
<button v-else class="save-network" @click="onEditNetwork" > |
|
|
|
编 辑 |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -165,6 +189,17 @@ import SoftKeyboard from '@/components/SoftKeyboard.vue' |
|
|
|
const inputValue = ref('') |
|
|
|
const keyboardType = ref<'text' | 'number'>('number') |
|
|
|
const softKeyboardRef = ref() |
|
|
|
const isEdit = ref(false) |
|
|
|
const defaultNetwokInfo = ref<NetworkForm>({ |
|
|
|
id: '', |
|
|
|
firstRun: false, |
|
|
|
networkMode: 'STATIC_IP', |
|
|
|
ip: '0.0.0.0', |
|
|
|
netmask: '0.0.0.0', |
|
|
|
gateway: '0.0.0.0', |
|
|
|
autoDns: false, |
|
|
|
dnsList: [], |
|
|
|
}) |
|
|
|
|
|
|
|
type Network = 'STATIC_IP' | 'DYNAMIC_IP' |
|
|
|
const networkVisible = ref(false) |
|
|
@ -203,8 +238,12 @@ const networkModeList = [ |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
const networkMap = { |
|
|
|
STATIC_IP: '静态IP', |
|
|
|
DYNAMIC_IP: 'DYNAMIC_IP', |
|
|
|
} |
|
|
|
|
|
|
|
const updateNetworkModel = (network) => { |
|
|
|
console.log('network---', network) |
|
|
|
if(network.value === 'STATIC_IP') { |
|
|
|
networkForm.value.dnsList = [...defaultDnsData.value.staticIPConfig.dnsList] |
|
|
|
}else if(network.value === 'DYNAMIC_IP') { |
|
|
@ -235,6 +274,7 @@ const getNetwork = () => { |
|
|
|
: dnsData.dynamicIpConfig.dnsList, |
|
|
|
} |
|
|
|
console.log('networkForm--', networkForm.value) |
|
|
|
defaultNetwokInfo.value = JSON.parse(JSON.stringify(networkForm.value)) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
@ -295,6 +335,7 @@ const onSaveNetwork = () => { |
|
|
|
console.log('params===', params) |
|
|
|
setNetworkSetting(params).then((res) => { |
|
|
|
if (res.success) { |
|
|
|
isEdit.value = false |
|
|
|
message.success('设置成功') |
|
|
|
networkVisible.value = false |
|
|
|
getNetwork() |
|
|
@ -302,6 +343,15 @@ const onSaveNetwork = () => { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
const onEditNetwork = () => { |
|
|
|
isEdit.value = true |
|
|
|
} |
|
|
|
|
|
|
|
const onCancel = () => { |
|
|
|
networkForm.value = JSON.parse(JSON.stringify(defaultNetwokInfo.value)) |
|
|
|
isEdit.value = false |
|
|
|
} |
|
|
|
|
|
|
|
const updateAutoModel = (value) => { |
|
|
|
networkForm.value.autoDns = value |
|
|
|
} |
|
|
@ -395,7 +445,7 @@ onUnmounted(() => { |
|
|
|
justify-content: space-between; |
|
|
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05); |
|
|
|
transition: all 0.3s ease; |
|
|
|
|
|
|
|
height: 4rem; |
|
|
|
.label { |
|
|
|
font-size: 28px; |
|
|
|
font-weight: 500; |
|
|
@ -508,6 +558,20 @@ onUnmounted(() => { |
|
|
|
background-color: #409eff; |
|
|
|
} |
|
|
|
|
|
|
|
.cancel-network { |
|
|
|
width: 100%; |
|
|
|
height: 5rem; |
|
|
|
padding: 0 24px; |
|
|
|
border: 1px solid #dcdfe6; |
|
|
|
border-radius: 8px; |
|
|
|
font-size: 24px; |
|
|
|
cursor: pointer; |
|
|
|
transition: all 0.3s ease; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
margin-top: 10px; |
|
|
|
} |
|
|
|
.dns-list{ |
|
|
|
background-color: #ffffff; |
|
|
|
padding: 10px; |
|
|
@ -526,4 +590,8 @@ onUnmounted(() => { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
|
|
|
|
.network-value { |
|
|
|
font-size: 1.75rem; |
|
|
|
} |
|
|
|
</style> |