diff options
Diffstat (limited to 'web/html/form/protocol')
| -rw-r--r-- | web/html/form/protocol/dokodemo.html | 4 | ||||
| -rw-r--r-- | web/html/form/protocol/http.html | 5 | ||||
| -rw-r--r-- | web/html/form/protocol/hysteria.html | 10 | ||||
| -rw-r--r-- | web/html/form/protocol/shadowsocks.html | 44 | ||||
| -rw-r--r-- | web/html/form/protocol/socks.html | 49 | ||||
| -rw-r--r-- | web/html/form/protocol/trojan.html | 62 | ||||
| -rw-r--r-- | web/html/form/protocol/tun.html | 60 | ||||
| -rw-r--r-- | web/html/form/protocol/vless.html | 203 | ||||
| -rw-r--r-- | web/html/form/protocol/vmess.html | 4 |
9 files changed, 177 insertions, 264 deletions
diff --git a/web/html/form/protocol/dokodemo.html b/web/html/form/protocol/dokodemo.html index b73a7641..4437a3e3 100644 --- a/web/html/form/protocol/dokodemo.html +++ b/web/html/form/protocol/dokodemo.html @@ -25,7 +25,7 @@ <a-select-option value="tcp">TCP</a-select-option> <a-select-option value="udp">UDP</a-select-option> </a-select> - </a-form-item> + </a-form-item> <a-form-item label='Follow Redirect'> <a-switch v-model="inbound.settings.followRedirect"></a-switch> </a-form-item> @@ -34,4 +34,4 @@ <template> {{template "form/streamSockopt"}} </template> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/http.html b/web/html/form/protocol/http.html index fb1d74b0..dd0512f5 100644 --- a/web/html/form/protocol/http.html +++ b/web/html/form/protocol/http.html @@ -5,7 +5,8 @@ <td width="45%">{{ i18n "username" }}</td> <td width="45%">{{ i18n "password" }}</td> <td> - <a-button icon="plus" size="small" @click="inbound.settings.addAccount(new Inbound.HttpSettings.HttpAccount())"></a-button> + <a-button icon="plus" size="small" + @click="inbound.settings.addAccount(new Inbound.HttpSettings.HttpAccount())"></a-button> </td> </tr> </table> @@ -23,4 +24,4 @@ <a-switch v-model="inbound.settings.allowTransparent" /> </a-form-item> </a-form> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/hysteria.html b/web/html/form/protocol/hysteria.html index f612f056..557ebb43 100644 --- a/web/html/form/protocol/hysteria.html +++ b/web/html/form/protocol/hysteria.html @@ -1,7 +1,5 @@ {{define "form/hysteria"}} -<a-collapse activeKey="0" - v-for="(client, index) in inbound.settings.hysterias.slice(0,1)" - v-if="!isEdit"> +<a-collapse activeKey="0" v-for="(client, index) in inbound.settings.hysterias.slice(0,1)" v-if="!isEdit"> <a-collapse-panel header='{{ i18n "pages.inbounds.client" }}'> {{template "form/client"}} </a-collapse-panel> @@ -22,11 +20,9 @@ </table> </a-collapse-panel> </a-collapse> -<a-form :colon="false" :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }"> +<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> <a-form-item :label="'{{ i18n "pages.inbounds.stream.tcp.version" }}'"> - <a-input-number v-model.number="inbound.settings.version" :min="2" - :max="2" disabled></a-input-number> + <a-input-number v-model.number="inbound.settings.version" :min="2" :max="2" disabled></a-input-number> </a-form-item> </a-form> {{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/shadowsocks.html b/web/html/form/protocol/shadowsocks.html index 31d94f81..8112222c 100644 --- a/web/html/form/protocol/shadowsocks.html +++ b/web/html/form/protocol/shadowsocks.html @@ -1,10 +1,6 @@ {{define "form/shadowsocks"}} <template v-if="inbound.isSSMultiUser"> - <a-collapse - activeKey="0" - v-for="(client, index) in inbound.settings.shadowsockses.slice(0,1)" - v-if="!isEdit" - > + <a-collapse activeKey="0" v-for="(client, index) in inbound.settings.shadowsockses.slice(0,1)" v-if="!isEdit"> <a-collapse-panel header='{{ i18n "pages.inbounds.client" }}'> {{template "form/client"}} </a-collapse-panel> @@ -16,10 +12,8 @@ <th>{{ i18n "pages.inbounds.email" }}</th> <th>Password</th> </tr> - <tr - v-for="(client, index) in inbound.settings.shadowsockses" - :class="index % 2 == 1 ? ' client-table-odd-row' : ''" - > + <tr v-for="(client, index) in inbound.settings.shadowsockses" + :class="index % 2 == 1 ? ' client-table-odd-row' : ''"> <td>[[ client.email ]]</td> <td>[[ client.password ]]</td> </tr> @@ -27,20 +21,11 @@ </a-collapse-panel> </a-collapse> </template> -<a-form - :colon=" false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" -> +<a-form :colon=" false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> <a-form-item label='{{ i18n "encryption" }}'> - <a-select - v-model="inbound.settings.method" - @change="SSMethodChange" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="(method,method_name) in SSMethods" :value="method" - >[[ method_name ]]</a-select-option - > + <a-select v-model="inbound.settings.method" @change="SSMethodChange" + :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="(method,method_name) in SSMethods" :value="method">[[ method_name ]]</a-select-option> </a-select> </a-form-item> <a-form-item v-if="inbound.isSS2022"> @@ -50,20 +35,15 @@ <span>{{ i18n "reset" }}</span> </template> Password - <a-icon - @click="inbound.settings.password = RandomUtil.randomShadowsocksPassword(inbound.settings.method)" - type="sync" - ></a-icon> + <a-icon @click="inbound.settings.password = RandomUtil.randomShadowsocksPassword(inbound.settings.method)" + type="sync"></a-icon> </a-tooltip> </template> <a-input v-model.trim="inbound.settings.password"></a-input> </a-form-item> <a-form-item label='{{ i18n "pages.inbounds.network" }}'> - <a-select - v-model="inbound.settings.network" - :style="{ width: '100px' }" - :dropdown-class-name="themeSwitcher.currentTheme" - > + <a-select v-model="inbound.settings.network" :style="{ width: '100px' }" + :dropdown-class-name="themeSwitcher.currentTheme"> <a-select-option value="tcp,udp">TCP,UDP</a-select-option> <a-select-option value="tcp">TCP</a-select-option> <a-select-option value="udp">UDP</a-select-option> @@ -73,4 +53,4 @@ <a-switch v-model="inbound.settings.ivCheck"></a-switch> </a-form-item> </a-form> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/socks.html b/web/html/form/protocol/socks.html index 6ffa32a8..8a968453 100644 --- a/web/html/form/protocol/socks.html +++ b/web/html/form/protocol/socks.html @@ -1,9 +1,5 @@ {{define "form/mixed"}} -<a-form - :colon="false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" -> +<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> <a-form-item label='{{ i18n "pages.inbounds.enable" }} UDP'> <a-switch v-model="inbound.settings.udp"></a-switch> </a-form-item> @@ -11,10 +7,8 @@ <a-input v-model.trim="inbound.settings.ip"></a-input> </a-form-item> <a-form-item label='{{ i18n "password" }}'> - <a-switch - :checked="inbound.settings.auth === 'password'" - @change="checked => inbound.settings.auth = checked ? 'password' : 'noauth'" - ></a-switch> + <a-switch :checked="inbound.settings.auth === 'password'" + @change="checked => inbound.settings.auth = checked ? 'password' : 'noauth'"></a-switch> </a-form-item> <template v-if="inbound.settings.auth === 'password'"> <table :style="{ width: '100%', textAlign: 'center', margin: '1rem 0' }"> @@ -22,42 +16,21 @@ <td width="45%">{{ i18n "username" }}</td> <td width="45%">{{ i18n "password" }}</td> <td> - <a-button - icon="plus" - size="small" - @click="inbound.settings.addAccount(new Inbound.MixedSettings.SocksAccount())" - ></a-button> + <a-button icon="plus" size="small" + @click="inbound.settings.addAccount(new Inbound.MixedSettings.SocksAccount())"></a-button> </td> </tr> </table> - <a-input-group - compact - v-for="(account, index) in inbound.settings.accounts" - :style="{ marginBottom: '10px' }" - > - <a-input - :style="{ width: '50%' }" - v-model.trim="account.user" - placeholder='{{ i18n "username" }}' - > - <template slot="addonBefore" :style="{ margin: '0' }" - >[[ index+1 ]]</template - > + <a-input-group compact v-for="(account, index) in inbound.settings.accounts" :style="{ marginBottom: '10px' }"> + <a-input :style="{ width: '50%' }" v-model.trim="account.user" placeholder='{{ i18n "username" }}'> + <template slot="addonBefore" :style="{ margin: '0' }">[[ index+1 ]]</template> </a-input> - <a-input - :style="{ width: '50%' }" - v-model.trim="account.pass" - placeholder='{{ i18n "password" }}' - > + <a-input :style="{ width: '50%' }" v-model.trim="account.pass" placeholder='{{ i18n "password" }}'> <template slot="addonAfter"> - <a-button - icon="minus" - size="small" - @click="inbound.settings.delAccount(index)" - ></a-button> + <a-button icon="minus" size="small" @click="inbound.settings.delAccount(index)"></a-button> </template> </a-input> </a-input-group> </template> </a-form> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/trojan.html b/web/html/form/protocol/trojan.html index 234e7adc..4d99ff43 100644 --- a/web/html/form/protocol/trojan.html +++ b/web/html/form/protocol/trojan.html @@ -19,35 +19,35 @@ </a-collapse-panel> </a-collapse> <template v-if=" inbound.isTcp"> - <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> - <a-form-item label="Fallbacks"> - <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addFallback()"></a-button> - </a-form-item> - </a-form> + <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> + <a-form-item label="Fallbacks"> + <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addFallback()"></a-button> + </a-form-item> + </a-form> - <!-- trojan fallbacks --> - <a-form v-for="(fallback, index) in inbound.settings.fallbacks" :colon="false" :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }"> - <a-divider :style="{ margin: '0' }"> Fallback [[ index + 1 ]] <a-icon type="delete" - @click="() => inbound.settings.delFallback(index)" - :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> - </a-divider> - <a-form-item label='SNI'> - <a-input v-model="fallback.name"></a-input> - </a-form-item> - <a-form-item label='ALPN'> - <a-input v-model="fallback.alpn"></a-input> - </a-form-item> - <a-form-item label='Path'> - <a-input v-model="fallback.path"></a-input> - </a-form-item> - <a-form-item label='Dest'> - <a-input v-model="fallback.dest"></a-input> - </a-form-item> - <a-form-item label='xVer'> - <a-input-number v-model.number="fallback.xver" :min="0" :max="2"></a-input-number> - </a-form-item> - </a-form> - <a-divider style="margin:5px 0;"></a-divider> - </template> - {{end}}
\ No newline at end of file + <!-- trojan fallbacks --> + <a-form v-for="(fallback, index) in inbound.settings.fallbacks" :colon="false" :label-col="{ md: {span:8} }" + :wrapper-col="{ md: {span:14} }"> + <a-divider :style="{ margin: '0' }"> Fallback [[ index + 1 ]] <a-icon type="delete" + @click="() => inbound.settings.delFallback(index)" + :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> + </a-divider> + <a-form-item label='SNI'> + <a-input v-model="fallback.name"></a-input> + </a-form-item> + <a-form-item label='ALPN'> + <a-input v-model="fallback.alpn"></a-input> + </a-form-item> + <a-form-item label='Path'> + <a-input v-model="fallback.path"></a-input> + </a-form-item> + <a-form-item label='Dest'> + <a-input v-model="fallback.dest"></a-input> + </a-form-item> + <a-form-item label='xVer'> + <a-input-number v-model.number="fallback.xver" :min="0" :max="2"></a-input-number> + </a-form-item> + </a-form> + <a-divider style="margin:5px 0;"></a-divider> +</template> +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/tun.html b/web/html/form/protocol/tun.html index 236f65cf..d1b95025 100644 --- a/web/html/form/protocol/tun.html +++ b/web/html/form/protocol/tun.html @@ -1,9 +1,5 @@ {{define "form/tun"}} -<a-form - :colon="false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" -> +<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> <a-form-item> <template slot="label"> <a-tooltip> @@ -26,38 +22,18 @@ <a-icon type="question-circle"></a-icon> </a-tooltip> </template> - <a-input-number - v-model.number="inbound.settings.mtu[0]" - :min="1" - :max="9000" - placeholder="1500" - ></a-input-number> + <a-input-number v-model.number="inbound.settings.mtu[0]" :min="1" :max="9000" placeholder="1500"></a-input-number> </a-form-item> <a-form-item label="MTU IPv6"> - <a-input-number - v-model.number="inbound.settings.mtu[1]" - :min="1" - :max="9000" - placeholder="1280" - ></a-input-number> + <a-input-number v-model.number="inbound.settings.mtu[1]" :min="1" :max="9000" placeholder="1280"></a-input-number> </a-form-item> <a-form-item label="Gateway"> - <a-select - mode="tags" - v-model="inbound.settings.gateway" - :style="{ width: '100%' }" - :token-separators="[',']" - placeholder="IPv4/IPv6 gateway" - ></a-select> + <a-select mode="tags" v-model="inbound.settings.gateway" :style="{ width: '100%' }" :token-separators="[',']" + placeholder="IPv4/IPv6 gateway"></a-select> </a-form-item> <a-form-item label="DNS"> - <a-select - mode="tags" - v-model="inbound.settings.dns" - :style="{ width: '100%' }" - :token-separators="[',']" - placeholder="DNS servers" - ></a-select> + <a-select mode="tags" v-model="inbound.settings.dns" :style="{ width: '100%' }" :token-separators="[',']" + placeholder="DNS servers"></a-select> </a-form-item> <a-form-item> <template slot="label"> @@ -69,26 +45,14 @@ <a-icon type="question-circle"></a-icon> </a-tooltip> </template> - <a-input-number - v-model.number="inbound.settings.userLevel" - :min="0" - placeholder="0" - ></a-input-number> + <a-input-number v-model.number="inbound.settings.userLevel" :min="0" placeholder="0"></a-input-number> </a-form-item> <a-form-item label="Auto Routing Table"> - <a-select - mode="tags" - v-model="inbound.settings.autoSystemRoutingTable" - :style="{ width: '100%' }" - :token-separators="[',']" - placeholder="e.g. vpn, proxy" - ></a-select> + <a-select mode="tags" v-model="inbound.settings.autoSystemRoutingTable" :style="{ width: '100%' }" + :token-separators="[',']" placeholder="e.g. vpn, proxy"></a-select> </a-form-item> <a-form-item label="Auto Outbounds"> - <a-input - v-model.trim="inbound.settings.autoOutboundsInterface" - placeholder="auto" - ></a-input> + <a-input v-model.trim="inbound.settings.autoOutboundsInterface" placeholder="auto"></a-input> </a-form-item> </a-form> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/vless.html b/web/html/form/protocol/vless.html index 1ff83839..1801026e 100644 --- a/web/html/form/protocol/vless.html +++ b/web/html/form/protocol/vless.html @@ -12,8 +12,7 @@ <th>{{ i18n "pages.inbounds.email" }}</th> <th>ID</th> </tr> - <tr v-for="(client, index) in inbound.settings.vlesses" - :class="index % 2 == 1 ? ' client-table-odd-row' : ''"> + <tr v-for="(client, index) in inbound.settings.vlesses" :class="index % 2 == 1 ? ' client-table-odd-row' : ''"> <td>[[ client.email ]]</td> <td>[[ client.id ]]</td> </tr> @@ -21,104 +20,104 @@ </a-collapse-panel> </a-collapse> <template v-if=" !inbound.stream.isTLS || !inbound.stream.isReality"> - <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> - <a-form-item label="Authentication"> - <a-select v-model="inbound.settings.selectedAuth" @change="getNewVlessEnc" - :dropdown-class-name="themeSwitcher.currentTheme"> - <a-select-option :value="undefined">None</a-select-option> - <a-select-option value="X25519, not Post-Quantum">X25519 (not - Post-Quantum)</a-select-option> - <a-select-option value="ML-KEM-768, Post-Quantum">ML-KEM-768 - (Post-Quantum)</a-select-option> - </a-select> - </a-form-item> - <a-form-item label="decryption"> - <a-input v-model.trim="inbound.settings.decryption"></a-input> - </a-form-item> - <a-form-item label="encryption"> - <a-input v-model="inbound.settings.encryption"></a-input> - </a-form-item> - <a-form-item label=" "> - <a-space> - <a-button type="primary" icon="import" @click="getNewVlessEnc">Get New - keys</a-button> - <a-button danger @click="clearVlessEnc">Clear</a-button> - </a-space> - </a-form-item> - </a-form> - <a-divider :style="{ margin: '5px 0' }"></a-divider> - </template> - <template v-if="inbound.isTcp && !inbound.settings.selectedAuth"> - <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> - <a-form-item label="Fallbacks"> - <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addFallback()"></a-button> - </a-form-item> - </a-form> + <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> + <a-form-item label="Authentication"> + <a-select v-model="inbound.settings.selectedAuth" @change="getNewVlessEnc" + :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option :value="undefined">None</a-select-option> + <a-select-option value="X25519, not Post-Quantum">X25519 (not + Post-Quantum)</a-select-option> + <a-select-option value="ML-KEM-768, Post-Quantum">ML-KEM-768 + (Post-Quantum)</a-select-option> + </a-select> + </a-form-item> + <a-form-item label="decryption"> + <a-input v-model.trim="inbound.settings.decryption"></a-input> + </a-form-item> + <a-form-item label="encryption"> + <a-input v-model="inbound.settings.encryption"></a-input> + </a-form-item> + <a-form-item label=" "> + <a-space> + <a-button type="primary" icon="import" @click="getNewVlessEnc">Get New + keys</a-button> + <a-button danger @click="clearVlessEnc">Clear</a-button> + </a-space> + </a-form-item> + </a-form> + <a-divider :style="{ margin: '5px 0' }"></a-divider> +</template> +<template v-if="inbound.isTcp && !inbound.settings.selectedAuth"> + <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> + <a-form-item label="Fallbacks"> + <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addFallback()"></a-button> + </a-form-item> + </a-form> - <!-- vless fallbacks --> - <a-form v-for="(fallback, index) in inbound.settings.fallbacks" :colon="false" :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }"> - <a-divider :style="{ margin: '0' }"> Fallback [[ index + 1 ]] <a-icon type="delete" - @click="() => inbound.settings.delFallback(index)" - :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> - </a-divider> - <a-form-item label='SNI'> - <a-input v-model="fallback.name"></a-input> - </a-form-item> - <a-form-item label='ALPN'> - <a-input v-model="fallback.alpn"></a-input> - </a-form-item> - <a-form-item label='Path'> - <a-input v-model="fallback.path"></a-input> - </a-form-item> - <a-form-item label='Dest'> - <a-input v-model="fallback.dest"></a-input> - </a-form-item> - <a-form-item label='xVer'> - <a-input-number v-model.number="fallback.xver" :min="0" :max="2"></a-input-number> - </a-form-item> - </a-form> - <a-divider :style="{ margin: '5px 0' }"></a-divider> - </template> - <template v-if="inbound.canEnableVisionSeed()"> - <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> - <a-form-item label="Vision Seed"> - <a-row :gutter="8"> - <a-col :span="6"> - <a-input-number - :value="(inbound.settings.testseed && inbound.settings.testseed[0] !== undefined) ? inbound.settings.testseed[0] : 900" - @change="(val) => updateTestseed(0, val)" :min="0" :max="9999" :style="{ width: '100%' }" - placeholder="900" addon-before="[0]"></a-input-number> - </a-col> - <a-col :span="6"> - <a-input-number - :value="(inbound.settings.testseed && inbound.settings.testseed[1] !== undefined) ? inbound.settings.testseed[1] : 500" - @change="(val) => updateTestseed(1, val)" :min="0" :max="9999" :style="{ width: '100%' }" - placeholder="500" addon-before="[1]"></a-input-number> - </a-col> - <a-col :span="6"> - <a-input-number - :value="(inbound.settings.testseed && inbound.settings.testseed[2] !== undefined) ? inbound.settings.testseed[2] : 900" - @change="(val) => updateTestseed(2, val)" :min="0" :max="9999" :style="{ width: '100%' }" - placeholder="900" addon-before="[2]"></a-input-number> - </a-col> - <a-col :span="6"> - <a-input-number - :value="(inbound.settings.testseed && inbound.settings.testseed[3] !== undefined) ? inbound.settings.testseed[3] : 256" - @change="(val) => updateTestseed(3, val)" :min="0" :max="9999" :style="{ width: '100%' }" - placeholder="256" addon-before="[3]"></a-input-number> - </a-col> - </a-row> - <a-space :size="8" :style="{ marginTop: '8px' }"> - <a-button type="primary" @click="setRandomTestseed"> - Rand - </a-button> - <a-button @click="resetTestseed"> - Reset - </a-button> - </a-space> - </a-form-item> - </a-form> - <a-divider :style="{ margin: '5px 0' }"></a-divider> - </template> - {{end}}
\ No newline at end of file + <!-- vless fallbacks --> + <a-form v-for="(fallback, index) in inbound.settings.fallbacks" :colon="false" :label-col="{ md: {span:8} }" + :wrapper-col="{ md: {span:14} }"> + <a-divider :style="{ margin: '0' }"> Fallback [[ index + 1 ]] <a-icon type="delete" + @click="() => inbound.settings.delFallback(index)" + :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> + </a-divider> + <a-form-item label='SNI'> + <a-input v-model="fallback.name"></a-input> + </a-form-item> + <a-form-item label='ALPN'> + <a-input v-model="fallback.alpn"></a-input> + </a-form-item> + <a-form-item label='Path'> + <a-input v-model="fallback.path"></a-input> + </a-form-item> + <a-form-item label='Dest'> + <a-input v-model="fallback.dest"></a-input> + </a-form-item> + <a-form-item label='xVer'> + <a-input-number v-model.number="fallback.xver" :min="0" :max="2"></a-input-number> + </a-form-item> + </a-form> + <a-divider :style="{ margin: '5px 0' }"></a-divider> +</template> +<template v-if="inbound.canEnableVisionSeed()"> + <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> + <a-form-item label="Vision Seed"> + <a-row :gutter="8"> + <a-col :span="6"> + <a-input-number + :value="(inbound.settings.testseed && inbound.settings.testseed[0] !== undefined) ? inbound.settings.testseed[0] : 900" + @change="(val) => updateTestseed(0, val)" :min="0" :max="9999" :style="{ width: '100%' }" placeholder="900" + addon-before="[0]"></a-input-number> + </a-col> + <a-col :span="6"> + <a-input-number + :value="(inbound.settings.testseed && inbound.settings.testseed[1] !== undefined) ? inbound.settings.testseed[1] : 500" + @change="(val) => updateTestseed(1, val)" :min="0" :max="9999" :style="{ width: '100%' }" placeholder="500" + addon-before="[1]"></a-input-number> + </a-col> + <a-col :span="6"> + <a-input-number + :value="(inbound.settings.testseed && inbound.settings.testseed[2] !== undefined) ? inbound.settings.testseed[2] : 900" + @change="(val) => updateTestseed(2, val)" :min="0" :max="9999" :style="{ width: '100%' }" placeholder="900" + addon-before="[2]"></a-input-number> + </a-col> + <a-col :span="6"> + <a-input-number + :value="(inbound.settings.testseed && inbound.settings.testseed[3] !== undefined) ? inbound.settings.testseed[3] : 256" + @change="(val) => updateTestseed(3, val)" :min="0" :max="9999" :style="{ width: '100%' }" placeholder="256" + addon-before="[3]"></a-input-number> + </a-col> + </a-row> + <a-space :size="8" :style="{ marginTop: '8px' }"> + <a-button type="primary" @click="setRandomTestseed"> + Rand + </a-button> + <a-button @click="resetTestseed"> + Reset + </a-button> + </a-space> + </a-form-item> + </a-form> + <a-divider :style="{ margin: '5px 0' }"></a-divider> +</template> +{{end}}
\ No newline at end of file diff --git a/web/html/form/protocol/vmess.html b/web/html/form/protocol/vmess.html index 63f05d5b..9e13da50 100644 --- a/web/html/form/protocol/vmess.html +++ b/web/html/form/protocol/vmess.html @@ -12,8 +12,8 @@ <th>ID</th> <th>{{ i18n "security" }}</th> </tr> - <tr v-for="(client, index) in inbound.settings.vmesses" - :class="index % 2 == 1 ? ' client-table-odd-row' : ''"> + <tr v-for="(client, index) in inbound.settings.vmesses" + :class="index % 2 == 1 ? ' client-table-odd-row' : ''"> <td>[[ client.email ]]</td> <td>[[ client.id ]]</td> <td>[[ client.security ]]</td> |
