Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'web/html/xui')
-rw-r--r--web/html/xui/client_bulk_modal.html6
-rw-r--r--web/html/xui/common_sider.html4
-rw-r--r--web/html/xui/component/setting.html2
-rw-r--r--web/html/xui/form/client.html8
-rw-r--r--web/html/xui/form/inbound.html4
-rw-r--r--web/html/xui/form/protocol/dokodemo.html2
-rw-r--r--web/html/xui/form/protocol/socks.html1
-rw-r--r--web/html/xui/form/protocol/trojan.html6
-rw-r--r--web/html/xui/form/protocol/vless.html6
-rw-r--r--web/html/xui/form/protocol/vmess.html8
-rw-r--r--web/html/xui/form/stream/stream_kcp.html28
-rw-r--r--web/html/xui/form/stream/stream_quic.html12
-rw-r--r--web/html/xui/form/stream/stream_tcp.html2
-rw-r--r--web/html/xui/form/tls_settings.html2
-rw-r--r--web/html/xui/inbounds.html11
-rw-r--r--web/html/xui/index.html2
-rw-r--r--web/html/xui/settings.html (renamed from web/html/xui/setting.html)371
17 files changed, 239 insertions, 236 deletions
diff --git a/web/html/xui/client_bulk_modal.html b/web/html/xui/client_bulk_modal.html
index 00e385b1..274f8588 100644
--- a/web/html/xui/client_bulk_modal.html
+++ b/web/html/xui/client_bulk_modal.html
@@ -43,7 +43,7 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input type="number" v-model.number="clientsBulkModal.limitIp" min="0" style="width: 70px;" ></a-input>
+ <a-input-number v-model="clientsBulkModal.limitIp" min="0"></a-input-number>
</a-form-item>
<a-form-item v-if="clientsBulkModal.inbound.xtls" label="Flow">
<a-select v-model="clientsBulkModal.flow" style="width: 200px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
@@ -65,7 +65,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -79,7 +79,7 @@
<a-switch v-model="clientsBulkModal.delayedStart" @click="clientsBulkModal.expiryTime=0"></a-switch>
</a-form-item>
<a-form-item label='{{ i18n "pages.client.expireDays" }}' v-if="clientsBulkModal.delayedStart">
- <a-input type="number" v-model.number="delayedExpireDays" :min="0"></a-input>
+ <a-input-number v-model="delayedExpireDays" :min="0"></a-input-number>
</a-form-item>
<a-form-item v-else>
<span slot="label">
diff --git a/web/html/xui/common_sider.html b/web/html/xui/common_sider.html
index 278dc4e5..d059e920 100644
--- a/web/html/xui/common_sider.html
+++ b/web/html/xui/common_sider.html
@@ -7,9 +7,9 @@
<a-icon type="user"></a-icon>
<span>{{ i18n "menu.inbounds"}}</span>
</a-menu-item>
-<a-menu-item key="{{ .base_path }}xui/setting">
+<a-menu-item key="{{ .base_path }}xui/settings">
<a-icon type="setting"></a-icon>
- <span>{{ i18n "menu.setting"}}</span>
+ <span>{{ i18n "menu.settings"}}</span>
</a-menu-item>
<!--<a-menu-item key="{{ .base_path }}xui/clients">-->
<!-- <a-icon type="laptop"></a-icon>-->
diff --git a/web/html/xui/component/setting.html b/web/html/xui/component/setting.html
index 00eeb259..efd61684 100644
--- a/web/html/xui/component/setting.html
+++ b/web/html/xui/component/setting.html
@@ -9,7 +9,7 @@
<a-input :value="value" @input="$emit('input', $event.target.value)"></a-input>
</template>
<template v-else-if="type === 'number'">
- <a-input type="number" :value="value" @input="$emit('input', $event.target.value)" :min="min"></a-input>
+ <a-input-number :value="value" @change="value => $emit('input', value)" :min="min" style="width: 100%;"></a-input-number>
</template>
<template v-else-if="type === 'textarea'">
<a-textarea :value="value" @input="$emit('input', $event.target.value)" :auto-size="{ minRows: 10, maxRows: 10 }"></a-textarea>
diff --git a/web/html/xui/form/client.html b/web/html/xui/form/client.html
index 38402ec7..501861db 100644
--- a/web/html/xui/form/client.html
+++ b/web/html/xui/form/client.html
@@ -22,7 +22,7 @@
<a-input v-model.trim="client.password" style="width: 150px;" ></a-input>
</a-form-item>
<a-form-item label='{{ i18n "additional" }} ID' v-if="inbound.protocol === Protocols.VMESS">
- <a-input type="number" v-model.number="client.alterId" style="width: 70px;"></a-input>
+ <a-input-number v-model="client.alterId" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item label="ID" v-if="inbound.protocol === Protocols.VMESS || inbound.protocol === Protocols.VLESS">
<a-input v-model.trim="client.id" style="width: 300px;"></a-input>
@@ -43,7 +43,7 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
+ <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item v-if="client.email && client.limitIp > 0 && isEdit">
<span slot="label">
@@ -82,7 +82,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -108,7 +108,7 @@
<a-switch v-model="clientModal.delayedStart" @click="client._expiryTime=0"></a-switch>
</a-form-item>
<a-form-item label='{{ i18n "pages.client.expireDays" }}' v-if="clientModal.delayedStart">
- <a-input type="number" v-model.number="delayedExpireDays" :min="0"></a-input>
+ <a-input-number v-model="delayedExpireDays" :min="0"></a-input-number>
</a-form-item>
<a-form-item v-else>
<span slot="label">
diff --git a/web/html/xui/form/inbound.html b/web/html/xui/form/inbound.html
index 09e7099d..603ca46a 100644
--- a/web/html/xui/form/inbound.html
+++ b/web/html/xui/form/inbound.html
@@ -25,11 +25,11 @@
<a-input v-model.trim="inbound.listen"></a-input>
</a-form-item>
<a-form-item label='{{ i18n "pages.inbounds.port" }}'>
- <a-input type="number" v-model.number="inbound.port"></a-input>
+ <a-input-number v-model="inbound.port"></a-input-number>
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/form/protocol/dokodemo.html b/web/html/xui/form/protocol/dokodemo.html
index 53c82c3c..f9204b8c 100644
--- a/web/html/xui/form/protocol/dokodemo.html
+++ b/web/html/xui/form/protocol/dokodemo.html
@@ -4,7 +4,7 @@
<a-input v-model.trim="inbound.settings.address"></a-input>
</a-form-item>
<a-form-item label='{{ i18n "pages.inbounds.destinationPort"}}'>
- <a-input type="number" v-model.number="inbound.settings.port"></a-input>
+ <a-input-number v-model="inbound.settings.port"></a-input-number>
</a-form-item>
<a-form-item label='{{ i18n "pages.inbounds.network"}}'>
<a-select v-model="inbound.settings.network" style="width: 100px;" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
diff --git a/web/html/xui/form/protocol/socks.html b/web/html/xui/form/protocol/socks.html
index 2662f1d6..89cde72c 100644
--- a/web/html/xui/form/protocol/socks.html
+++ b/web/html/xui/form/protocol/socks.html
@@ -1,6 +1,5 @@
{{define "form/socks"}}
<a-form layout="inline">
- <!-- <a-form-item label="Password authentication">-->
<a-form-item label='{{ i18n "password" }}'>
<a-switch :checked="inbound.settings.auth === 'password'"
@change="checked => inbound.settings.auth = checked ? 'password' : 'noauth'"></a-switch>
diff --git a/web/html/xui/form/protocol/trojan.html b/web/html/xui/form/protocol/trojan.html
index b52c4dd9..e63943e6 100644
--- a/web/html/xui/form/protocol/trojan.html
+++ b/web/html/xui/form/protocol/trojan.html
@@ -33,7 +33,7 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
+ <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item v-if="inbound.xtls" label="Flow">
<a-select v-model="client.flow" style="width: 150px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
@@ -43,7 +43,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -113,7 +113,7 @@
<a-input v-model="fallback.dest"></a-input>
</a-form-item>
<a-form-item label="xVer">
- <a-input type="number" v-model.number="fallback.xver"></a-input>
+ <a-input-number v-model="fallback.xver"></a-input-number>
</a-form-item>
<a-divider v-if="inbound.settings.fallbacks.length - 1 === index"/>
</a-form>
diff --git a/web/html/xui/form/protocol/vless.html b/web/html/xui/form/protocol/vless.html
index 1d733d02..33e0c170 100644
--- a/web/html/xui/form/protocol/vless.html
+++ b/web/html/xui/form/protocol/vless.html
@@ -33,7 +33,7 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
+ <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item v-if="inbound.xtls" label="Flow">
<a-select v-model="inbound.settings.vlesses[index].flow" style="width: 200px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
@@ -49,7 +49,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -119,7 +119,7 @@
<a-input v-model="fallback.dest"></a-input>
</a-form-item>
<a-form-item label="xVer">
- <a-input type="number" v-model.number="fallback.xver"></a-input>
+ <a-input-number v-model="fallback.xver"></a-input-number>
</a-form-item>
<a-divider v-if="inbound.settings.fallbacks.length - 1 === index"/>
</a-form>
diff --git a/web/html/xui/form/protocol/vmess.html b/web/html/xui/form/protocol/vmess.html
index 9cd48544..6471e20d 100644
--- a/web/html/xui/form/protocol/vmess.html
+++ b/web/html/xui/form/protocol/vmess.html
@@ -15,7 +15,7 @@
<a-input v-model.trim="client.email" style="width: 150px;"></a-input>
</a-form-item>
<a-form-item label='{{ i18n "additional" }} ID'>
- <a-input type="number" v-model.number="client.alterId" style="width: 70px;"></a-input>
+ <a-input-number v-model="client.alterId" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item label="ID">
<a-input v-model.trim="client.id" style="width: 300px;"></a-input>
@@ -36,11 +36,11 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;"></a-input>
+ <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -67,7 +67,7 @@
</a-collapse-panel>
</a-collapse>
<a-collapse v-else>
- <a-collapse-panel :header="'{{ i18n "pages.client.clientCount"}} : ' + inbound.settings.vmesses.length">
+ <a-collapse-panel :header="'{{ i18n "pages.client.clientCount" }}: ' + inbound.settings.vmesses.length">
<table width="100%">
<tr class="client-table-header">
<th v-for="col in Object.keys(inbound.settings.vmesses[0]).slice(0, 3)">[[ col ]]</th>
diff --git a/web/html/xui/form/stream/stream_kcp.html b/web/html/xui/form/stream/stream_kcp.html
index fd31b1ee..52a930f9 100644
--- a/web/html/xui/form/stream/stream_kcp.html
+++ b/web/html/xui/form/stream/stream_kcp.html
@@ -2,37 +2,37 @@
<a-form layout="inline">
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.kcp.type" style="width: 280px;">
- <a-select-option value="none">None(Not Camouflage)</a-select-option>
- <a-select-option value="srtp">SRTP(Camouflage Video Call)</a-select-option>
- <a-select-option value="utp">UTP(Camouflage BT Download)</a-select-option>
- <a-select-option value="wechat-video">Wechat-Video(Camouflage WeChat Video)</a-select-option>
- <a-select-option value="dtls">DTLS(Camouflage DTLS 1.2 Packages)</a-select-option>
- <a-select-option value="wireguard">Wireguard(Camouflage Wireguard Packages)</a-select-option>
+ <a-select-option value="none">None (Not Camouflage)</a-select-option>
+ <a-select-option value="srtp">SRTP (Camouflage Video Call)</a-select-option>
+ <a-select-option value="utp">UTP (Camouflage BT Download)</a-select-option>
+ <a-select-option value="wechat-video">Wechat-Video (Camouflage WeChat Video)</a-select-option>
+ <a-select-option value="dtls">DTLS (Camouflage DTLS 1.2 Packages)</a-select-option>
+ <a-select-option value="wireguard">Wireguard (Camouflage Wireguard Packages)</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
- <a-input v-model.number="inbound.stream.kcp.seed"></a-input>
- </a-form-item>
+ <a-input v-model="inbound.stream.kcp.seed"></a-input>
+ </a-form-item><br />
<a-form-item label="MTU">
- <a-input type="number" v-model.number="inbound.stream.kcp.mtu"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.mtu"></a-input-number>
</a-form-item>
<a-form-item label="TTI (ms)">
- <a-input type="number" v-model.number="inbound.stream.kcp.tti"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.tti"></a-input-number>
</a-form-item>
<a-form-item label="Uplink Capacity (MB/S)">
- <a-input type="number" v-model.number="inbound.stream.kcp.upCap"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.upCap"></a-input-number>
</a-form-item>
<a-form-item label="Downlink Capacity (MB/S)">
- <a-input type="number" v-model.number="inbound.stream.kcp.downCap"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.downCap"></a-input-number>
</a-form-item>
<a-form-item label="Congestion">
<a-switch v-model="inbound.stream.kcp.congestion"></a-switch>
</a-form-item>
<a-form-item label="Read Buffer Size (MB)">
- <a-input type="number" v-model.number="inbound.stream.kcp.readBuffer"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.readBuffer"></a-input-number>
</a-form-item>
<a-form-item label="Write Buffer Size (MB)">
- <a-input type="number" v-model.number="inbound.stream.kcp.writeBuffer"></a-input>
+ <a-input-number v-model="inbound.stream.kcp.writeBuffer"></a-input-number>
</a-form-item>
</a-form>
{{end}} \ No newline at end of file
diff --git a/web/html/xui/form/stream/stream_quic.html b/web/html/xui/form/stream/stream_quic.html
index 2a48af84..4d04587a 100644
--- a/web/html/xui/form/stream/stream_quic.html
+++ b/web/html/xui/form/stream/stream_quic.html
@@ -12,12 +12,12 @@
</a-form-item>
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.quic.type" style="width: 280px;" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
- <a-select-option value="none">none(not camouflage)</a-select-option>
- <a-select-option value="srtp">srtp(camouflage video call)</a-select-option>
- <a-select-option value="utp">utp(camouflage BT download)</a-select-option>
- <a-select-option value="wechat-video">wechat-video(camouflage WeChat video)</a-select-option>
- <a-select-option value="dtls">dtls(camouflage DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">wireguard(camouflage wireguard packages)</a-select-option>
+ <a-select-option value="none">none (not camouflage)</a-select-option>
+ <a-select-option value="srtp">srtp (camouflage video call)</a-select-option>
+ <a-select-option value="utp">utp (camouflage BT download)</a-select-option>
+ <a-select-option value="wechat-video">wechat-video (camouflage WeChat video)</a-select-option>
+ <a-select-option value="dtls">dtls (camouflage DTLS 1.2 packages)</a-select-option>
+ <a-select-option value="wireguard">wireguard (camouflage wireguard packages)</a-select-option>
</a-select>
</a-form-item>
</a-form>
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 958f8f25..993fb0d0 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -4,7 +4,7 @@
<a-form-item label="AcceptProxyProtocol">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
- <a-form-item label="HTTP {{ i18n "camouflage" }}">
+ <a-form-item label='HTTP {{ i18n "camouflage" }}'>
<a-switch
:checked="inbound.stream.tcp.type === 'http'"
@change="checked => inbound.stream.tcp.type = checked ? 'http' : 'none'">
diff --git a/web/html/xui/form/tls_settings.html b/web/html/xui/form/tls_settings.html
index e4be34cf..7962acf3 100644
--- a/web/html/xui/form/tls_settings.html
+++ b/web/html/xui/form/tls_settings.html
@@ -140,7 +140,7 @@
</a-switch>
</a-form-item>
<a-form-item label="xVer">
- <a-input type="number" v-model.number="inbound.stream.reality.xver" :min="0" style="width: 60px"></a-input>
+ <a-input-number v-model="inbound.stream.reality.xver" :min="0" style="width: 60px"></a-input-number>
</a-form-item>
<a-form-item label="uTLS" >
<a-select v-model="inbound.stream.reality.settings.fingerprint"
diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index 31e251f5..e697b8a1 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -93,12 +93,13 @@
</a-col>
<a-col :xs="24" :sm="24" :lg="12" style="text-align: right;">
<a-select v-model="refreshInterval"
+ style="width: 65px;"
v-if="isRefreshEnabled"
@change="changeRefreshInterval"
:dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option v-for="key in [5,10,30,60]" :value="key*1000">[[ key ]]s</a-select-option>
</a-select>
- <a-icon type="sync" :spin="isRefreshEnabled"></a-icon>
+ <a-icon type="sync" :spin="isRefreshEnabled" style="margin: 0 5px;"></a-icon>
<a-switch v-model="isRefreshEnabled" @change="toggleRefresh"></a-switch>
</a-col>
</a-row>
@@ -155,7 +156,7 @@
<a-icon type="retweet"></a-icon> {{ i18n "pages.inbounds.resetTraffic" }}
</a-menu-item>
<a-menu-item key="clone">
- <a-icon type="block"></a-icon> {{ i18n "pages.inbounds.Clone"}}
+ <a-icon type="block"></a-icon> {{ i18n "pages.inbounds.clone"}}
</a-menu-item>
<a-menu-item key="delete">
<span style="color: #FF4D4F">
@@ -478,7 +479,7 @@
},
openCloneInbound(dbInbound) {
this.$confirm({
- title: '{{ i18n "pages.inbounds.cloneInbound"}}' + dbInbound.remark,
+ title: '{{ i18n "pages.inbounds.cloneInbound"}} \"' + dbInbound.remark + '\"',
content: '{{ i18n "pages.inbounds.cloneInboundContent"}}',
okText: '{{ i18n "pages.inbounds.cloneInboundOk"}}',
cancelText: '{{ i18n "cancel" }}',
@@ -512,7 +513,7 @@
openAddInbound() {
inModal.show({
title: '{{ i18n "pages.inbounds.addInbound"}}',
- okText: '{{ i18n "pages.inbounds.addTo"}}',
+ okText: '{{ i18n "pages.inbounds.create"}}',
cancelText: '{{ i18n "close" }}',
confirm: async (inbound, dbInbound) => {
inModal.loading();
@@ -527,7 +528,7 @@
const inbound = dbInbound.toInbound();
inModal.show({
title: '{{ i18n "pages.inbounds.modifyInbound"}}',
- okText: '{{ i18n "pages.inbounds.revise"}}',
+ okText: '{{ i18n "pages.inbounds.update"}}',
cancelText: '{{ i18n "close" }}',
inbound: inbound,
dbInbound: dbInbound,
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index 320422e3..f2babcb0 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -382,7 +382,7 @@
cancelText: '{{ i18n "cancel"}}',
onOk: async () => {
versionModal.hide();
- this.loading(true, '{{ i18n "pages.index.dontRefreshh"}}');
+ this.loading(true, '{{ i18n "pages.index.dontRefresh"}}');
await HttpUtil.post(`/server/installXray/${version}`);
this.loading(false);
},
diff --git a/web/html/xui/setting.html b/web/html/xui/settings.html
index 7cbb44a2..6a9d9509 100644
--- a/web/html/xui/setting.html
+++ b/web/html/xui/settings.html
@@ -33,21 +33,22 @@
<a-spin :spinning="spinning" :delay="500" tip="loading">
<a-space direction="vertical">
<a-space direction="horizontal">
- <a-button type="primary" :disabled="saveBtnDisable" @click="updateAllSetting">{{ i18n "pages.setting.save" }}</a-button>
- <a-button type="danger" :disabled="!saveBtnDisable" @click="restartPanel">{{ i18n "pages.setting.restartPanel" }}</a-button>
+ <a-button type="primary" :disabled="saveBtnDisable" @click="updateAllSetting">{{ i18n "pages.settings.save" }}</a-button>
+ <a-button type="danger" :disabled="!saveBtnDisable" @click="restartPanel">{{ i18n "pages.settings.restartPanel" }}</a-button>
</a-space>
- <a-tabs default-active-key="1" :class="siderDrawer.isDarkTheme ? darkClass : ''">
- <a-tab-pane key="1" tab='{{ i18n "pages.setting.panelConfig"}}'>
+ <a-tabs default-active-key="1" :class="siderDrawer.isDarkTheme ? darkClass : ''" style="padding-bottom: 40px;">
+ <a-tab-pane key="1" tab='{{ i18n "pages.settings.panelSettings"}}'>
<a-list item-layout="horizontal" :style="siderDrawer.isDarkTheme ? 'color: hsla(0,0%,100%,.65);': 'background: white;'">
- <setting-list-item type="text" title='{{ i18n "pages.setting.panelListeningIP"}}' desc='{{ i18n "pages.setting.panelListeningIPDesc"}}' v-model="allSetting.webListen"></setting-list-item>
- <setting-list-item type="number" title='{{ i18n "pages.setting.panelPort"}}' desc='{{ i18n "pages.setting.panelPortDesc"}}' v-model.number="allSetting.webPort"></setting-list-item>
- <setting-list-item type="text" title='{{ i18n "pages.setting.publicKeyPath"}}' desc='{{ i18n "pages.setting.publicKeyPathDesc"}}' v-model="allSetting.webCertFile"></setting-list-item>
- <setting-list-item type="text" title='{{ i18n "pages.setting.privateKeyPath"}}' desc='{{ i18n "pages.setting.privateKeyPathDesc"}}' v-model="allSetting.webKeyFile"></setting-list-item>
- <setting-list-item type="text" title='{{ i18n "pages.setting.panelUrlPath"}}' desc='{{ i18n "pages.setting.panelUrlPathDesc"}}' v-model="allSetting.webBasePath"></setting-list-item>
- <setting-list-item type="number" title='{{ i18n "pages.setting.sessionMaxAge" }}' desc='{{ i18n "pages.setting.sessionMaxAgeDesc" }}' v-model="allSetting.sessionMaxAge" :min="0"></setting-list-item>
- <setting-list-item type="number" title='{{ i18n "pages.setting.expireTimeDiff" }}' desc='{{ i18n "pages.setting.expireTimeDiffDesc" }}' v-model="allSetting.expireDiff" :min="0"></setting-list-item>
- <setting-list-item type="number" title='{{ i18n "pages.setting.trafficDiff" }}' desc='{{ i18n "pages.setting.trafficDiffDesc" }}' v-model="allSetting.trafficDiff" :min="0"></setting-list-item>
+ <setting-list-item type="text" title='{{ i18n "pages.settings.panelListeningIP"}}' desc='{{ i18n "pages.settings.panelListeningIPDesc"}}' v-model="allSetting.webListen"></setting-list-item>
+ <setting-list-item type="number" title='{{ i18n "pages.settings.panelPort"}}' desc='{{ i18n "pages.settings.panelPortDesc"}}' v-model="allSetting.webPort" :min="0"></setting-list-item>
+ <setting-list-item type="text" title='{{ i18n "pages.settings.publicKeyPath"}}' desc='{{ i18n "pages.settings.publicKeyPathDesc"}}' v-model="allSetting.webCertFile"></setting-list-item>
+ <setting-list-item type="text" title='{{ i18n "pages.settings.privateKeyPath"}}' desc='{{ i18n "pages.settings.privateKeyPathDesc"}}' v-model="allSetting.webKeyFile"></setting-list-item>
+ <setting-list-item type="text" title='{{ i18n "pages.settings.panelUrlPath"}}' desc='{{ i18n "pages.settings.panelUrlPathDesc"}}' v-model="allSetting.webBasePath"></setting-list-item>
+ <setting-list-item type="number" title='{{ i18n "pages.settings.sessionMaxAge" }}' desc='{{ i18n "pages.settings.sessionMaxAgeDesc" }}' v-model="allSetting.sessionMaxAge" :min="0"></setting-list-item>
+ <setting-list-item type="number" title='{{ i18n "pages.settings.expireTimeDiff" }}' desc='{{ i18n "pages.settings.expireTimeDiffDesc" }}' v-model="allSetting.expireDiff" :min="0"></setting-list-item>
+ <setting-list-item type="number" title='{{ i18n "pages.settings.trafficDiff" }}' desc='{{ i18n "pages.settings.trafficDiffDesc" }}' v-model="allSetting.trafficDiff" :min="0"></setting-list-item>
+ <setting-list-item type="text" title='{{ i18n "pages.settings.timeZone"}}' desc='{{ i18n "pages.settings.timeZoneDesc"}}' v-model="allSetting.timeLocation"></setting-list-item>
<a-list-item>
<a-row style="padding: 20px">
<a-col :lg="24" :xl="12">
@@ -74,148 +75,153 @@
</a-list>
</a-tab-pane>
- <a-tab-pane key="2" tab='{{ i18n "pages.setting.userSetting"}}'>
- <a-form :style="siderDrawer.isDarkTheme ? 'color: hsla(0,0%,100%,.65); padding: 20px;': 'background: white; padding: 20px;'">
- <a-form-item label='{{ i18n "pages.setting.oldUsername"}}'>
- <a-input v-model="user.oldUsername" style="max-width: 300px"></a-input>
- </a-form-item>
- <a-form-item label='{{ i18n "pages.setting.currentPassword"}}'>
- <a-input type="password" v-model="user.oldPassword" style="max-width: 300px"></a-input>
- </a-form-item>
- <a-form-item label='{{ i18n "pages.setting.newUsername"}}'>
- <a-input v-model="user.newUsername" style="max-width: 300px"></a-input>
- </a-form-item>
- <a-form-item label='{{ i18n "pages.setting.newPassword"}}'>
- <a-input type="password" v-model="user.newPassword" style="max-width: 300px"></a-input>
- </a-form-item>
- <a-form-item>
- <a-button type="primary" @click="updateUser">{{ i18n "confirm" }}</a-button>
- </a-form-item>
- </a-form>
- <a-form :style="siderDrawer.isDarkTheme ? 'color: hsla(0,0%,100%,.65); padding: 20px;': 'background: white; padding: 20px;'">
- <a-list-item style="padding: 20px">
- <a-row>
- <a-col :lg="24" :xl="12">
- <a-list-item-meta title='{{ i18n "pages.setting.loginSecurity" }}' description='{{ i18n "pages.setting.loginSecurityDesc" }}'/>
- </a-col>
- <a-col :lg="24" :xl="12">
- <template>
- <a-switch @change="toggleToken(allSetting.secretEnable)" v-model="allSetting.secretEnable"></a-switch>
- </template>
- </a-col>
- </a-row>
- </a-list-item>
- <a-list-item style="padding: 20px">
- <a-row>
- <a-col :lg="24" :xl="12">
- <a-list-item-meta title='{{ i18n "pages.setting.secretToken" }}' description='{{ i18n "pages.setting.secretTokenDesc" }}'/>
-
- </a-col>
- <a-col :lg="24" :xl="12">
- <svg
- @click="getNewSecret"
- xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="anticon anticon-question-circle" viewBox="0 0 16 16"> <path d="M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z"/> <path fill-rule="evenodd" d="M8 3c-1.552 0-2.94.707-3.857 1.818a.5.5 0 1 1-.771-.636A6.002 6.002 0 0 1 13.917 7H12.9A5.002 5.002 0 0 0 8 3zM3.1 9a5.002 5.002 0 0 0 8.757 2.182.5.5 0 1 1 .771.636A6.002 6.002 0 0 1 2.083 9H3.1z"/>
- </svg>
- <template>
- <a-textarea type="text" id='token' :disabled="!allSetting.secretEnable" v-model="user.loginSecret"></a-textarea>
- </template>
- </a-col>
- </a-row>
- </a-list-item>
- <a-button type="primary" @click="updateSecret">{{ i18n "confirm" }}</a-button>
- </a-form>
+ <a-tab-pane key="2" tab='{{ i18n "pages.settings.securitySettings"}}' style="padding-top: 10px;">
+ <a-tabs default-active-key="sec-1" :class="siderDrawer.isDarkTheme ? darkClass : ''">
+ <a-tab-pane key="sec-1" tab='{{ i18n "pages.settings.security.admin"}}'>
+ <a-form :style="siderDrawer.isDarkTheme ? 'color: hsla(0,0%,100%,.65); padding: 20px;': 'background: white; padding: 20px;'">
+ <a-form-item label='{{ i18n "pages.settings.oldUsername"}}'>
+ <a-input v-model="user.oldUsername" style="max-width: 300px"></a-input>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.settings.currentPassword"}}'>
+ <a-input type="password" v-model="user.oldPassword" style="max-width: 300px"></a-input>
+ </a-form-item>