mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-04-28 10:25:49 +00:00
Minor changes
This commit is contained in:
parent
b56db67759
commit
03393c9f52
3 changed files with 72 additions and 49 deletions
|
|
@ -1027,14 +1027,18 @@ type kcpShareFields struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f kcpShareFields) applyToParams(params map[string]string) {
|
func (f kcpShareFields) applyToParams(params map[string]string) {
|
||||||
params["headerType"] = f.headerType
|
if f.headerType != "" && f.headerType != "none" {
|
||||||
|
params["headerType"] = f.headerType
|
||||||
|
}
|
||||||
setStringParam(params, "seed", f.seed)
|
setStringParam(params, "seed", f.seed)
|
||||||
setIntParam(params, "mtu", f.mtu)
|
setIntParam(params, "mtu", f.mtu)
|
||||||
setIntParam(params, "tti", f.tti)
|
setIntParam(params, "tti", f.tti)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f kcpShareFields) applyToObj(obj map[string]any) {
|
func (f kcpShareFields) applyToObj(obj map[string]any) {
|
||||||
obj["type"] = f.headerType
|
if f.headerType != "" && f.headerType != "none" {
|
||||||
|
obj["type"] = f.headerType
|
||||||
|
}
|
||||||
setStringField(obj, "path", f.seed)
|
setStringField(obj, "path", f.seed)
|
||||||
setIntField(obj, "mtu", f.mtu)
|
setIntField(obj, "mtu", f.mtu)
|
||||||
setIntField(obj, "tti", f.tti)
|
setIntField(obj, "tti", f.tti)
|
||||||
|
|
|
||||||
|
|
@ -938,19 +938,23 @@
|
||||||
<template v-if="mask.type === 'header-custom'">
|
<template v-if="mask.type === 'header-custom'">
|
||||||
<!-- Clients -->
|
<!-- Clients -->
|
||||||
<a-form-item label="Clients">
|
<a-form-item label="Clients">
|
||||||
<a-icon type="plus" @click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" />
|
<a-button
|
||||||
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
|
||||||
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
|
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
Clients Group [[ gi + 1 ]]
|
Clients Group [[ gi + 1 ]]
|
||||||
<a-icon type="delete" @click="mask.settings.clients.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
<a-icon
|
||||||
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" />
|
type="delete"
|
||||||
|
@click="mask.settings.clients.splice(gi, 1)"
|
||||||
|
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
|
||||||
|
></a-icon>
|
||||||
</a-divider>
|
</a-divider>
|
||||||
<template v-for="(item, ii) in group" :key="'ci'+ii">
|
<template v-for="(item, ii) in group" :key="'ci'+ii">
|
||||||
<a-divider :style="{ margin: '0', fontSize: '12px' }">
|
|
||||||
Item [[ ii + 1 ]]
|
|
||||||
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.clients.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
|
||||||
</a-divider>
|
|
||||||
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
||||||
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
||||||
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
||||||
|
|
@ -979,19 +983,23 @@
|
||||||
|
|
||||||
<!-- Servers -->
|
<!-- Servers -->
|
||||||
<a-form-item label="Servers">
|
<a-form-item label="Servers">
|
||||||
<a-icon type="plus" @click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" />
|
<a-button
|
||||||
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
|
||||||
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
|
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
Servers Group [[ gi + 1 ]]
|
Servers Group [[ gi + 1 ]]
|
||||||
<a-icon type="delete" @click="mask.settings.servers.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
<a-icon
|
||||||
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" />
|
type="delete"
|
||||||
|
@click="mask.settings.servers.splice(gi, 1)"
|
||||||
|
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
|
||||||
|
></a-icon>
|
||||||
</a-divider>
|
</a-divider>
|
||||||
<template v-for="(item, ii) in group" :key="'si'+ii">
|
<template v-for="(item, ii) in group" :key="'si'+ii">
|
||||||
<a-divider :style="{ margin: '0', fontSize: '12px' }">
|
|
||||||
Item [[ ii + 1 ]]
|
|
||||||
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.servers.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
|
||||||
</a-divider>
|
|
||||||
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
||||||
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
||||||
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
||||||
|
|
@ -1126,12 +1134,12 @@
|
||||||
<a-input-number v-model.number="mask.settings.reset" :min="0" />
|
<a-input-number v-model.number="mask.settings.reset" :min="0" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="Noise">
|
<a-form-item label="Noise">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.noise.push({rand: 0, randRange: '0-255', type: 'array', packet: [], delay: ''})"
|
@click="mask.settings.noise.push({rand: 0, randRange: '0-255', type: 'array', packet: [], delay: ''})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(n, index) in mask.settings.noise" :key="index">
|
<template v-for="(n, index) in mask.settings.noise" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
@ -1175,11 +1183,12 @@
|
||||||
</template>
|
</template>
|
||||||
<template v-if="mask.type === 'header-custom'">
|
<template v-if="mask.type === 'header-custom'">
|
||||||
<a-form-item label="Client">
|
<a-form-item label="Client">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(c, index) in mask.settings.client" :key="index">
|
<template v-for="(c, index) in mask.settings.client" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
@ -1216,11 +1225,12 @@
|
||||||
</template>
|
</template>
|
||||||
<a-divider :style="{ margin: '0' }"></a-divider>
|
<a-divider :style="{ margin: '0' }"></a-divider>
|
||||||
<a-form-item label="Server">
|
<a-form-item label="Server">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(s, index) in mask.settings.server" :key="index">
|
<template v-for="(s, index) in mask.settings.server" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
|
||||||
|
|
@ -94,19 +94,23 @@
|
||||||
<template v-if="mask.type === 'header-custom'">
|
<template v-if="mask.type === 'header-custom'">
|
||||||
<!-- Clients -->
|
<!-- Clients -->
|
||||||
<a-form-item label="Clients">
|
<a-form-item label="Clients">
|
||||||
<a-icon type="plus" @click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" />
|
<a-button
|
||||||
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
|
||||||
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
|
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
Clients Group [[ gi + 1 ]]
|
Clients Group [[ gi + 1 ]]
|
||||||
<a-icon type="delete" @click="mask.settings.clients.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
<a-icon
|
||||||
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" />
|
type="delete"
|
||||||
|
@click="mask.settings.clients.splice(gi, 1)"
|
||||||
|
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
|
||||||
|
></a-icon>
|
||||||
</a-divider>
|
</a-divider>
|
||||||
<template v-for="(item, ii) in group" :key="'ci'+ii">
|
<template v-for="(item, ii) in group" :key="'ci'+ii">
|
||||||
<a-divider :style="{ margin: '0', fontSize: '12px' }">
|
|
||||||
Item [[ ii + 1 ]]
|
|
||||||
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.clients.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
|
||||||
</a-divider>
|
|
||||||
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
||||||
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
||||||
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
||||||
|
|
@ -139,20 +143,23 @@
|
||||||
|
|
||||||
<!-- Servers -->
|
<!-- Servers -->
|
||||||
<a-form-item label="Servers">
|
<a-form-item label="Servers">
|
||||||
<a-icon type="plus" @click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" />
|
<a-button
|
||||||
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
|
||||||
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
|
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
Servers Group [[ gi + 1 ]]
|
Servers Group [[ gi + 1 ]]
|
||||||
<a-icon type="delete" @click="mask.settings.servers.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
<a-icon
|
||||||
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" />
|
type="delete"
|
||||||
|
@click="mask.settings.servers.splice(gi, 1)"
|
||||||
|
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
|
||||||
|
></a-icon>
|
||||||
</a-divider>
|
</a-divider>
|
||||||
<template v-for="(item, ii) in group" :key="'si'+ii">
|
<template v-for="(item, ii) in group" :key="'si'+ii">
|
||||||
<a-divider :style="{ margin: '0', fontSize: '12px' }">
|
|
||||||
Item [[ ii + 1 ]]
|
|
||||||
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.servers.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
|
|
||||||
</a-divider>
|
|
||||||
|
|
||||||
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
|
||||||
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
|
||||||
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
|
||||||
|
|
@ -283,12 +290,12 @@
|
||||||
<a-input-number v-model.number="mask.settings.reset" :min="0" />
|
<a-input-number v-model.number="mask.settings.reset" :min="0" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="Noise">
|
<a-form-item label="Noise">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.noise.push({rand: '1-8192', randRange: '0-255', type: 'array', packet: [], delay: '10-20'})"
|
@click="mask.settings.noise.push({rand: '1-8192', randRange: '0-255', type: 'array', packet: [], delay: '10-20'})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(n, index) in mask.settings.noise" :key="index">
|
<template v-for="(n, index) in mask.settings.noise" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
@ -333,11 +340,12 @@
|
||||||
</template>
|
</template>
|
||||||
<template v-if="mask.type === 'header-custom'">
|
<template v-if="mask.type === 'header-custom'">
|
||||||
<a-form-item label="Client">
|
<a-form-item label="Client">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(c, index) in mask.settings.client" :key="index">
|
<template v-for="(c, index) in mask.settings.client" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
@ -378,11 +386,12 @@
|
||||||
</template>
|
</template>
|
||||||
<a-divider :style="{ margin: '0' }"></a-divider>
|
<a-divider :style="{ margin: '0' }"></a-divider>
|
||||||
<a-form-item label="Server">
|
<a-form-item label="Server">
|
||||||
<a-icon
|
<a-button
|
||||||
type="plus"
|
icon="plus"
|
||||||
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
|
||||||
/>
|
></a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<template v-for="(s, index) in mask.settings.server" :key="index">
|
<template v-for="(s, index) in mask.settings.server" :key="index">
|
||||||
<a-divider :style="{ margin: '0' }">
|
<a-divider :style="{ margin: '0' }">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue