diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-05-04 14:20:24 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-05-04 14:20:24 +0300 |
| commit | e19061d513b8c4fb2207b4a553a96ea086089612 (patch) | |
| tree | 8a05450f0f6d3e8a2a182976b1a38bf5cca824ea /web/html/form/outbound.html | |
| parent | 51e2fb6dbfb6f3f21b3f578c15c3dc0d47c4a66e (diff) | |
TLS: Remove ECH Force Query
Diffstat (limited to 'web/html/form/outbound.html')
| -rw-r--r-- | web/html/form/outbound.html | 993 |
1 files changed, 250 insertions, 743 deletions
diff --git a/web/html/form/outbound.html b/web/html/form/outbound.html index a425f3d4..400e55d6 100644 --- a/web/html/form/outbound.html +++ b/web/html/form/outbound.html @@ -1,36 +1,18 @@ {{define "form/outbound"}} <!-- base --> -<a-tabs - :active-key="outModal.activeKey" - :style="{ padding: '0', backgroundColor: 'transparent' }" - @change="(activeKey) => {outModal.toggleJson(activeKey == '2'); }" -> +<a-tabs :active-key="outModal.activeKey" :style="{ padding: '0', backgroundColor: 'transparent' }" + @change="(activeKey) => {outModal.toggleJson(activeKey == '2'); }"> <a-tab-pane key="1" tab="Form"> - <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 "protocol" }}'> - <a-select - v-model="outbound.protocol" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="x,y in Protocols" :value="x" - >[[ y ]]</a-select-option - > + <a-select v-model="outbound.protocol" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="x,y in Protocols" :value="x">[[ y ]]</a-select-option> </a-select> </a-form-item> - <a-form-item - label='{{ i18n "pages.xray.outbound.tag" }}' - has-feedback - :validate-status="outModal.duplicateTag? 'warning' : 'success'" - > - <a-input - v-model.trim="outbound.tag" - @change="outModal.check()" - placeholder='{{ i18n "pages.xray.outbound.tagDesc" }}' - ></a-input> + <a-form-item label='{{ i18n "pages.xray.outbound.tag" }}' has-feedback + :validate-status="outModal.duplicateTag? 'warning' : 'success'"> + <a-input v-model.trim="outbound.tag" @change="outModal.check()" + placeholder='{{ i18n "pages.xray.outbound.tagDesc" }}'></a-input> </a-form-item> <a-form-item label='{{ i18n "pages.xray.outbound.sendThrough" }}'> <a-input v-model="outbound.sendThrough"></a-input> @@ -39,109 +21,66 @@ <!-- freedom settings--> <template v-if="outbound.protocol === Protocols.Freedom"> <a-form-item label="Strategy"> - <a-select - v-model="outbound.settings.domainStrategy" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="s in OutboundDomainStrategies" :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="outbound.settings.domainStrategy" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in OutboundDomainStrategies" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> <a-form-item label="Redirect"> <a-input v-model="outbound.settings.redirect"></a-input> </a-form-item> <a-form-item label="IPs Blocked"> - <a-select - mode="tags" - v-model="outbound.settings.ipsBlocked" - :style="{ width: '100%' }" - :dropdown-class-name="themeSwitcher.currentTheme" - :token-separators="[',']" - placeholder="IP/CIDR/geoip:*/ext:*" - > + <a-select mode="tags" v-model="outbound.settings.ipsBlocked" :style="{ width: '100%' }" + :dropdown-class-name="themeSwitcher.currentTheme" :token-separators="[',']" + placeholder="IP/CIDR/geoip:*/ext:*"> </a-select> </a-form-item> <a-form-item label="Fragment"> - <a-switch - :checked="Object.keys(outbound.settings.fragment).length >0" - @change="checked => outbound.settings.fragment = checked ? new Outbound.FreedomSettings.Fragment() : {}" - > + <a-switch :checked="Object.keys(outbound.settings.fragment).length >0" + @change="checked => outbound.settings.fragment = checked ? new Outbound.FreedomSettings.Fragment() : {}"> </a-switch> </a-form-item> <template v-if="Object.keys(outbound.settings.fragment).length >0"> <a-form-item label="Packets"> - <a-select - v-model="outbound.settings.fragment.packets" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="s in ['1-3','tlshello']" :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="outbound.settings.fragment.packets" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in ['1-3','tlshello']" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> <a-form-item label="Length"> <a-input v-model.trim="outbound.settings.fragment.length"></a-input> </a-form-item> <a-form-item label="Interval"> - <a-input - v-model.trim="outbound.settings.fragment.interval" - ></a-input> + <a-input v-model.trim="outbound.settings.fragment.interval"></a-input> </a-form-item> <a-form-item label="Max Split"> - <a-input - v-model.trim="outbound.settings.fragment.maxSplit" - ></a-input> + <a-input v-model.trim="outbound.settings.fragment.maxSplit"></a-input> </a-form-item> </template> <!-- Switch for Noises --> <a-form-item label="Noises"> - <a-switch - :checked="outbound.settings.noises.length > 0" - @change="checked => outbound.settings.noises = checked ? [new Outbound.FreedomSettings.Noise()] : []" - > + <a-switch :checked="outbound.settings.noises.length > 0" + @change="checked => outbound.settings.noises = checked ? [new Outbound.FreedomSettings.Noise()] : []"> </a-switch> </a-form-item> <!-- Add Noise Button --> <template v-if="outbound.settings.noises.length > 0"> <a-form-item label="Noises"> - <a-button - icon="plus" - type="primary" - size="small" - @click="outbound.settings.addNoise()" - ></a-button> + <a-button icon="plus" type="primary" size="small" @click="outbound.settings.addNoise()"></a-button> </a-form-item> <!-- Noise Configurations --> - <a-form - v-for="(noise, index) in outbound.settings.noises" - :key="index" - :colon="false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" - > + <a-form v-for="(noise, index) in outbound.settings.noises" :key="index" :colon="false" + :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> <a-divider :style="{ margin: '0' }"> Noise [[ index + 1 ]] - <a-icon - v-if="outbound.settings.noises.length > 1" - type="delete" + <a-icon v-if="outbound.settings.noises.length > 1" type="delete" @click="() => outbound.settings.delNoise(index)" - :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" - ></a-icon> + :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> </a-divider> <a-form-item label="Type"> - <a-select - v-model="noise.type" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option - v-for="s in ['rand','base64','str', 'hex']" - :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="noise.type" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in ['rand','base64','str', 'hex']" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> <a-form-item label="Packet"> @@ -151,13 +90,8 @@ <a-input v-model.trim="noise.delay"></a-input> </a-form-item> <a-form-item label="Apply To"> - <a-select - v-model="noise.applyTo" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="s in ['ip','ipv4','ipv6']" :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="noise.applyTo" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in ['ip','ipv4','ipv6']" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> </a-form> @@ -167,13 +101,8 @@ <!-- blackhole settings --> <template v-if="outbound.protocol === Protocols.Blackhole"> <a-form-item label="Response Type"> - <a-select - v-model="outbound.settings.type" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="s in ['', 'none','http']" :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="outbound.settings.type" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in ['', 'none','http']" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> </template> @@ -181,47 +110,25 @@ <!-- dns settings --> <template v-if="outbound.protocol === Protocols.DNS"> <a-form-item label='{{ i18n "pages.inbounds.network" }}'> - <a-select - v-model="outbound.settings.network" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="s in ['udp','tcp']" :value="s" - >[[ s ]]</a-select-option - > + <a-select v-model="outbound.settings.network" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="s in ['udp','tcp']" :value="s">[[ s ]]</a-select-option> </a-select> </a-form-item> <a-form-item label="Rules"> - <a-button - icon="plus" - type="primary" - size="small" - @click="outbound.settings.addRule()" - ></a-button> + <a-button icon="plus" type="primary" size="small" @click="outbound.settings.addRule()"></a-button> </a-form-item> - <a-form - v-for="(rule, index) in outbound.settings.rules" - :colon="false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" - > + <a-form v-for="(rule, index) in outbound.settings.rules" :colon="false" :label-col="{ md: {span:8} }" + :wrapper-col="{ md: {span:14} }"> <a-divider :style="{ margin: '0' }"> Rule [[ index + 1 ]] - <a-icon - type="delete" - @click="() => outbound.settings.delRule(index)" - :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" - ></a-icon> + <a-icon type="delete" @click="() => outbound.settings.delRule(index)" + :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> </a-divider> <a-form-item label="Action"> - <a-select - v-model="rule.action" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="action in DNSRuleActions" :value="action" - >[[ action ]]</a-select-option - > + <a-select v-model="rule.action" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="action in DNSRuleActions" :value="action">[[ action ]]</a-select-option> </a-select> </a-form-item> @@ -235,10 +142,7 @@ <a-icon type="question-circle"></a-icon> </a-tooltip> </template> - <a-input - v-model.trim="rule.qtype" - placeholder="1,3,23-24" - ></a-input> + <a-input v-model.trim="rule.qtype" placeholder="1,3,23-24"></a-input> </a-form-item> <a-form-item> @@ -251,10 +155,7 @@ <a-icon type="question-circle"></a-icon> </a-tooltip> </template> - <a-input - v-model.trim="rule.domain" - placeholder="domain:example.com,full:example.com" - ></a-input> + <a-input v-model.trim="rule.domain" placeholder="domain:example.com,full:example.com"></a-input> </a-form-item> </a-form> </template> @@ -280,10 +181,8 @@ <span>{{ i18n "reset" }}</span> </template> {{ i18n "pages.xray.wireguard.secretKey" }} - <a-icon - type="sync" - @click="[outbound.settings.pubKey, outbound.settings.secretKey] = Object.values(Wireguard.generateKeypair())" - > + <a-icon type="sync" + @click="[outbound.settings.pubKey, outbound.settings.secretKey] = Object.values(Wireguard.generateKeypair())"> </a-icon> </a-tooltip> </template> @@ -293,28 +192,15 @@ <a-input disabled v-model="outbound.settings.pubKey"></a-input> </a-form-item> <a-form-item label='{{ i18n "pages.xray.wireguard.domainStrategy" }}'> - <a-select - v-model="outbound.settings.domainStrategy" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option - v-for="wds in ['', ...WireguardDomainStrategy]" - :value="wds" - >[[ wds ]]</a-select-option - > + <a-select v-model="outbound.settings.domainStrategy" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="wds in ['', ...WireguardDomainStrategy]" :value="wds">[[ wds ]]</a-select-option> </a-select> </a-form-item> <a-form-item label="MTU"> - <a-input-number - v-model.number="outbound.settings.mtu" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.mtu" min="0"></a-input-number> </a-form-item> <a-form-item label="Workers"> - <a-input-number - v-model.number="outbound.settings.workers" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.workers" min="0"></a-input-number> </a-form-item> <a-form-item label="No Kernel Tun"> <a-switch v-model="outbound.settings.noKernelTun"></a-switch> @@ -331,27 +217,15 @@ <a-input v-model="outbound.settings.reserved"></a-input> </a-form-item> <a-form-item label="Peers"> - <a-button - icon="plus" - type="primary" - size="small" - @click="outbound.settings.addPeer()" - ></a-button> + <a-button icon="plus" type="primary" size="small" @click="outbound.settings.addPeer()"></a-button> </a-form-item> - <a-form - v-for="(peer, index) in outbound.settings.peers" - :colon="false" - :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }" - > + <a-form v-for="(peer, index) in outbound.settings.peers" :colon="false" :label-col="{ md: {span:8} }" + :wrapper-col="{ md: {span:14} }"> <a-divider :style="{ margin: '0' }"> Peer [[ index + 1 ]] - <a-icon - v-if="outbound.settings.peers.length>1" - type="delete" + <a-icon v-if="outbound.settings.peers.length>1" type="delete" @click="() => outbound.settings.delPeer(index)" - :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" - ></a-icon> + :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon> </a-divider> <a-form-item label='{{ i18n "pages.xray.wireguard.endpoint" }}'> <a-input v-model.trim="peer.endpoint"></a-input> @@ -365,33 +239,17 @@ <a-form-item> <template slot="label"> {{ i18n "pages.xray.wireguard.allowedIPs" }} - <a-button - icon="plus" - type="primary" - size="small" - @click="peer.allowedIPs.push('')" - ></a-button> + <a-button icon="plus" type="primary" size="small" @click="peer.allowedIPs.push('')"></a-button> </template> - <template - v-for="(aip, index) in peer.allowedIPs" - :style="{ marginBottom: '10px' }" - > + <template v-for="(aip, index) in peer.allowedIPs" :style="{ marginBottom: '10px' }"> <a-input v-model.trim="peer.allowedIPs[index]"> - <a-button - icon="minus" - v-if="peer.allowedIPs.length>1" - slot="addonAfter" - size="small" - @click="peer.allowedIPs.splice(index, 1)" - ></a-button> + <a-button icon="minus" v-if="peer.allowedIPs.length>1" slot="addonAfter" size="small" + @click="peer.allowedIPs.splice(index, 1)"></a-button> </a-input> </template> </a-form-item> <a-form-item label="Keep Alive"> - <a-input-number - v-model.number="peer.keepAlive" - :min="0" - ></a-input-number> + <a-input-number v-model.number="peer.keepAlive" :min="0"></a-input-number> </a-form-item> </a-form> </template> @@ -402,18 +260,12 @@ <a-input v-model.trim="outbound.settings.address"></a-input> </a-form-item> <a-form-item label='{{ i18n "pages.inbounds.port" }}'> - <a-input-number - v-model.number="outbound.settings.port" - :min="1" - :max="65532" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.port" :min="1" :max="65532"></a-input-number> </a-form-item> </template> <!-- VLESS/VMess user settings --> - <template - v-if="[Protocols.VMess, Protocols.VLESS].includes(outbound.protocol)" - > + <template v-if="[Protocols.VMess, Protocols.VLESS].includes(outbound.protocol)"> <a-form-item label="ID"> <a-input v-model.trim="outbound.settings.id"></a-input> </a-form-item> @@ -421,13 +273,8 @@ <!-- vmess settings --> <template v-if="outbound.protocol === Protocols.VMess"> <a-form-item label="Security"> - <a-select - v-model="outbound.settings.security" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="key in USERS_SECURITY" :value="key" - >[[ key ]]</a-select-option - > + <a-select v-model="outbound.settings.security" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="key in USERS_SECURITY" :value="key">[[ key ]]</a-select-option> </a-select> </a-form-item> </template> @@ -440,71 +287,35 @@ </template> <template v-if="outbound.canEnableTlsFlow()"> <a-form-item label="Flow"> - <a-select - v-model="outbound.settings.flow" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option value selected - >{{ i18n "none" }}</a-select-option - > - <a-select-option v-for="key in TLS_FLOW_CONTROL" :value="key" - >[[ key ]]</a-select-option - > + <a-select v-model="outbound.settings.flow" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option value selected>{{ i18n "none" }}</a-select-option> + <a-select-option v-for="key in TLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option> </a-select> </a-form-item> </template> <!-- XTLS Vision Advanced Settings --> <template v-if="outbound.canEnableVisionSeed()"> <a-form-item label="Vision Pre-Connect"> - <a-input-number - v-model.number="outbound.settings.testpre" - :min="0" - :max="10" - :style="{ width: '100%' }" - placeholder="0" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.testpre" :min="0" :max="10" :style="{ width: '100%' }" + placeholder="0"></a-input-number> </a-form-item> <a-form-item label="Vision Seed"> <a-row :gutter="8"> <a-col :span="6"> - <a-input-number - v-model.number="outbound.settings.testseed[0]" - :min="0" - :max="9999" - :style="{ width: '100%' }" - placeholder="900" - addon-before="[0]" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.testseed[0]" :min="0" :max="9999" + :style="{ width: '100%' }" placeholder="900" addon-before="[0]"></a-input-number> </a-col> <a-col :span="6"> - <a-input-number - v-model.number="outbound.settings.testseed[1]" - :min="0" - :max="9999" - :style="{ width: '100%' }" - placeholder="500" - addon-before="[1]" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.testseed[1]" :min="0" :max="9999" + :style="{ width: '100%' }" placeholder="500" addon-before="[1]"></a-input-number> </a-col> <a-col :span="6"> - <a-input-number - v-model.number="outbound.settings.testseed[2]" - :min="0" - :max="9999" - :style="{ width: '100%' }" - placeholder="900" - addon-before="[2]" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.testseed[2]" :min="0" :max="9999" + :style="{ width: '100%' }" placeholder="900" addon-before="[2]"></a-input-number> </a-col> <a-col :span="6"> - <a-input-number - v-model.number="outbound.settings.testseed[3]" - :min="0" - :max="9999" - :style="{ width: '100%' }" - placeholder="256" - addon-before="[3]" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.testseed[3]" :min="0" :max="9999" + :style="{ width: '100%' }" placeholder="256" addon-before="[3]"></a-input-number> </a-col> </a-row> </a-form-item> @@ -524,9 +335,7 @@ </template> <!-- trojan/shadowsocks --> - <template - v-if="[Protocols.Trojan, Protocols.Shadowsocks].includes(outbound.protocol)" - > + <template v-if="[Protocols.Trojan, Protocols.Shadowsocks].includes(outbound.protocol)"> <a-form-item label='{{ i18n "password" }}'> <a-input v-model.trim="outbound.settings.password"></a-input> </a-form-item> @@ -535,26 +344,16 @@ <!-- shadowsocks --> <template v-if="outbound.protocol === Protocols.Shadowsocks"> <a-form-item label='{{ i18n "encryption" }}'> - <a-select - v-model="outbound.settings.method" - :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="outbound.settings.method" :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 label="UDP over TCP"> <a-switch v-model="outbound.settings.uot"></a-switch> </a-form-item> <a-form-item label="UoTVersion"> - <a-input-number - v-model.number="outbound.settings.UoTVersion" - :min="1" - :max="2" - ></a-input-number> + <a-input-number v-model.number="outbound.settings.UoTVersion" :min="1" :max="2"></a-input-number> </a-form-item> </template> </template> @@ -562,42 +361,29 @@ <!-- hysteria settings --> <template v-if="outbound.protocol === Protocols.Hysteria"> <a-form-item label="Version"> - <a-input-number - v-model.number="outbound.settings.version" - :min="2" - :max="2" - disabled - ></a-input-number> + <a-input-number v-model.number="outbound.settings.version" :min="2" :max="2" disabled></a-input-number> </a-form-item> </template> <!-- stream settings --> <template v-if="outbound.canEnableStream()"> <a-form-item label='{{ i18n "transmission" }}'> - <a-select - v-model="outbound.stream.network" - @change="streamNetworkChange" - :dropdown-class-name="themeSwitcher.currentTheme" - > + <a-select v-model="outbound.stream.network" @change="streamNetworkChange" + :dropdown-class-name="themeSwitcher.currentTheme"> <a-select-option value="tcp">TCP (RAW)</a-select-option> <a-select-option value="kcp">mKCP</a-select-option> <a-select-option value="ws">WebSocket</a-select-option> <a-select-option value="grpc">gRPC</a-select-option> <a-select-option value="httpupgrade">HTTPUpgrade</a-select-option> <a-select-option value="xhttp">XHTTP</a-select-option> - <a-select-option - v-if="outbound.protocol === Protocols.Hysteria" - value="hysteria" - >Hysteria2</a-select-option - > + <a-select-option v-if="outbound.protocol === Protocols.Hysteria" + value="hysteria">Hysteria2</a-select-option> </a-select> </a-form-item> <template v-if="outbound.stream.network === 'tcp'"> <a-form-item label='HTTP {{ i18n "camouflage" }}'> - <a-switch - :checked="outbound.stream.tcp.type === 'http'" - @change="checked => outbound.stream.tcp.type = checked ? 'http' : 'none'" - ></a-switch> + <a-switch :checked="outbound.stream.tcp.type === 'http'" + @change="checked => outbound.stream.tcp.type = checked ? 'http' : 'none'"></a-switch> </a-form-item> <template v-if="outbound.stream.tcp.type == 'http'"> <a-form-item label='{{ i18n "host" }}'> @@ -612,40 +398,22 @@ <!-- kcp --> <template v-if="outbound.stream.network === 'kcp'"> <a-form-item label="MTU"> - <a-input-number - v-model.number="outbound.stream.kcp.mtu" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.mtu" min="0"></a-input-number> </a-form-item> <a-form-item label="TTI (ms)"> - <a-input-number - v-model.number="outbound.stream.kcp.tti" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.tti" min="0"></a-input-number> </a-form-item> <a-form-item label="Uplink (MB/s)"> - <a-input-number - v-model.number="outbound.stream.kcp.upCap" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.upCap" min="0"></a-input-number> </a-form-item> <a-form-item label="Downlink (MB/s)"> - <a-input-number - v-model.number="outbound.stream.kcp.downCap" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.downCap" min="0"></a-input-number> </a-form-item> <a-form-item label="CWND Multiplier"> - <a-input-number - v-model.number="outbound.stream.kcp.cwndMultiplier" - min="1" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.cwndMultiplier" min="1"></a-input-number> </a-form-item> <a-form-item label="Max Sending Window"> - <a-input-number - v-model.number="outbound.stream.kcp.maxSendingWindow" - min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.kcp.maxSendingWindow" min="0"></a-input-number> </a-form-item> </template> @@ -658,10 +426,7 @@ <a-input v-model.trim="outbound.stream.ws.path"></a-input> </a-form-item> <a-form-item label="Heartbeat Period"> - <a-input-number - v-model.number="outbound.stream.ws.heartbeatPeriod" - :min="0" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.ws.heartbeatPeriod" :min="0"></a-input-number> </a-form-item> </template> @@ -697,64 +462,34 @@ <a-input v-model.trim="outbound.stream.xhttp.path"></a-input> </a-form-item> <a-form-item label="Mode"> - <a-select - v-model="outbound.stream.xhttp.mode" - :dropdown-class-name="themeSwitcher.currentTheme" - > - <a-select-option v-for="key in MODE_OPTION" :value="key" - >[[ key ]]</a-select-option - > + <a-select v-model="outbound.stream.xhttp.mode" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option v-for="key in MODE_OPTION" :value="key">[[ key ]]</a-select-option> </a-select> </a-form-item> - <a-form-item - label="No gRPC Header" - v-if="outbound.stream.xhttp.mode === 'stream-up' || outbound.stream.xhttp.mode === 'stream-one'" - > + <a-form-item label="No gRPC Header" + v-if="outbound.stream.xhttp.mode === 'stream-up' || outbound.stream.xhttp.mode === 'stream-one'"> <a-switch v-model="outbound.stream.xhttp.noGRPCHeader"></a-switch> </a-form-item> - <a-form-item - label="Min Upload Interval (Ms)" - v-if="outbound.stream.xhttp.mode === 'packet-up'" - > - <a-input - v-model.trim="outbound.stream.xhttp.scMinPostsIntervalMs" - ></a-input> - </a-form-item> - <a-form-item - label="Max Concurrency" - v-if="!outbound.stream.xhttp.xmux.maxConnections" - > - <a-input - v-model="outbound.stream.xhttp.xmux.maxConcurrency" - ></a-input> - </a-form-item> - <a-form-item - label="Max Connections" - v-if="!outbound.stream.xhttp.xmux.maxConcurrency" - > - <a-input - v-model="outbound.stream.xhttp.xmux.maxConnections" - ></a-input> + <a-form-item label="Min Upload Interval (Ms)" v-if="outbound.stream.xhttp.mode === 'packet-up'"> + <a-input v-model.trim="outbound.stream.xhttp.scMinPostsIntervalMs"></a-input> + </a-form-item> + <a-form-item label="Max Concurrency" v-if="!outbound.stream.xhttp.xmux.maxConnections"> + <a-input v-model="outbound.stream.xhttp.xmux.maxConcurrency"></a-input> + </a-form-item> + <a-form-item label="Max Connections" v-if="!outbound.stream.xhttp.xmux.maxConcurrency"> + <a-input v-model="outbound.stream.xhttp.xmux.maxConnections"></a-input> </a-form-item> <a-form-item label="Max Reuse Times"> - <a-input - v-model="outbound.stream.xhttp.xmux.cMaxReuseTimes" - ></a-input> + <a-input v-model="outbound.stream.xhttp.xmux.cMaxReuseTimes"></a-input> </a-form-item> <a-form-item label="Max Request Times"> - <a-input - v-model="outbound.stream.xhttp.xmux.hMaxRequestTimes" - ></a-input> + <a-input v-model="outbound.stream.xhttp.xmux.hMaxRequestTimes"></a-input> </a-form-item> <a-form-item label="Max Reusable Secs"> - <a-input - v-model="outbound.stream.xhttp.xmux.hMaxReusableSecs" - ></a-input> + <a-input v-model="outbound.stream.xhttp.xmux.hMaxReusableSecs"></a-input> </a-form-item> <a-form-item label="Keep Alive Period"> - <a-input-number - v-model.number="outbound.stream.xhttp.xmux.hKeepAlivePeriod" - ></a-input-number> + <a-input-number v-model.number="outbound.stream.xhttp.xmux.hKeepAlivePeriod"></a-input-number> </a-form-item> </template> @@ -764,88 +499,49 @@ <a-input v-model.trim="outbound.stream.hysteria.auth"></a-input> </a-form-item> <a-form-item label="Congestion"> - <a-select - v-model="outbound.stream.hysteria.congestion" - :dropdown-class-name="themeSwitcher.currentTheme" - > + <a-select v-model="outbound.stream.hysteria.congestion" :dropdown-class-name="themeSwitcher.currentTheme"> <a-select-option value>BBR (Auto)</a-select-option> <a-select-option value="brutal">Brutal</a-select-option> </a-select> </a-form-item> <a-form-item label="Upload Speed"> - <a-input - v-model.trim="outbound.stream.hysteria.up" - placeholder="0 (BBR mode), e.g., 100 mbps" - ></a-input> + <a-input v-model.trim="outbound.stream.hysteria.up" placeholder="0 (BBR mode), e.g., 100 mbps"></a-input> </a-form-item> <a-form-item label="Download Speed"> - <a-input - v-model.trim="outbound.stream.hysteria.down" - placeholder="0 (BBR mode), e.g., 100 mbps" - ></a-input> + <a-input v-model.trim="outbound.stream.hysteria.down" placeholder="0 (BBR mode), e.g., 100 mbps"></a-input> </a-form-item> <a-form-item label="UDP Hop Port"> - <a-input - v-model.trim="outbound.stream.hysteria.udphopPort" - placeholder="e.g., 1145-1919 or 11,13,15-17" - ></a-input> - </a-form-item> - <a-form-item - label="UDP Hop Interval Min (s)" - v-if="outbound.stream.hysteria.udphopPort" - > - <a-input-number - v-model.number="outbound.stream.hysteria.udphopIntervalMin" - :min="5" - ></a-input-number> - </a-form-item> - <a-form-item - label="UDP Hop Interval Max (s)" - v-if="outbound.stream.hysteria.udphopPort" - > - <a-input-number - v-model.number="outbound.stream.hysteria.udphopIntervalMax" - :min="5" - ></a-input-number> + <a-input v-model.trim="outbound.stream.hysteria.udphopPort" + placeholder="e.g., 1145-1919 or 1
|
