mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 21:42:24 +00:00
fa,zh bug fixed - qrcode for trojan added
This commit is contained in:
parent
145015bf41
commit
c1980277e1
6 changed files with 34 additions and 17 deletions
|
@ -3,7 +3,7 @@
|
|||
:closable="true" width="300px" :ok-text="qrModal.okText"
|
||||
cancel-text='{{ i18n "close" }}' :ok-button-props="{attrs:{id:'qr-modal-ok-btn'}}">
|
||||
<a-tag color="green" style="margin-bottom: 10px;display: block;text-align: center;" >click on QR Code to Copy</a-tag>
|
||||
<canvas v-if="qrModal.inbound.protocol != Protocols.VMESS && qrModal.inbound.protocol != Protocols.VLESS" id="qrCode" style="width: 100%; height: 100%;"></canvas>
|
||||
<canvas v-if="qrModal.inbound.protocol != Protocols.VMESS && qrModal.inbound.protocol != Protocols.VLESS && qrModal.inbound.protocol != Protocols.TROJAN" id="qrCode" style="width: 100%; height: 100%;"></canvas>
|
||||
|
||||
<template v-if="qrModal.inbound.protocol === Protocols.VMESS" v-for="(vmess, index) in qrModal.inbound.settings.vmesses">
|
||||
<a-tag color="red" style="margin-bottom: 10px;display: block;text-align: center;" v-text="vmess.email"></a-tag>
|
||||
|
@ -16,6 +16,12 @@
|
|||
<canvas @click="copyTextToClipboard(`qrCode-vless-${vless.id}`,index)" :id="`qrCode-vless-${vless.id}`" style="width: 100%; height: 100%;"></canvas>
|
||||
<a-divider style="height: 2px; background-color: #7e7e7e" />
|
||||
</template>
|
||||
|
||||
<template v-if="qrModal.inbound.protocol === Protocols.TROJAN" v-for="(trojan, index) in qrModal.inbound.settings.trojans">
|
||||
<a-tag color="red" style="margin-bottom: 10px;display: block;text-align: center;" v-text="trojan.email"></a-tag>
|
||||
<canvas @click="copyTextToClipboard(`qrCode-trojan-${trojan.password}`,index)" :id="`qrCode-trojan-${trojan.password}`" style="width: 100%; height: 100%;"></canvas>
|
||||
<a-divider style="height: 2px; background-color: #7e7e7e" />
|
||||
</template>
|
||||
</a-modal>
|
||||
|
||||
<script>
|
||||
|
@ -110,6 +116,13 @@
|
|||
this.setQrCode("qrCode-vless-" + vlesses[index].id ,index)
|
||||
}
|
||||
break;
|
||||
case Protocols.TROJAN:
|
||||
trojans = qrModal.inbound.settings.trojans
|
||||
|
||||
for (const index in trojans) {
|
||||
this.setQrCode("qrCode-trojan-" + trojans[index].password ,index)
|
||||
}
|
||||
break;
|
||||
default: return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
</template>
|
||||
|
||||
<template v-if="inbound.tls || inbound.xtls">
|
||||
<p v-if="inbound.tls">tls: <a-tag color="green">{{ i18n "turnOn" }}</a-tag></p>
|
||||
<p v-if="inbound.xtls">xtls: <a-tag color="green">{{ i18n "turnOn" }}</a-tag></p>
|
||||
<p v-if="inbound.tls">tls: <a-tag color="green">{{ i18n "enabled" }}</a-tag></p>
|
||||
<p v-if="inbound.xtls">xtls: <a-tag color="green">{{ i18n "enabled" }}</a-tag></p>
|
||||
</template>
|
||||
<template v-else>
|
||||
<p>tls: <a-tag color="red">{{ i18n "closure" }}</a-tag></p>
|
||||
<p>tls: <a-tag color="red">{{ i18n "disabled" }}</a-tag></p>
|
||||
</template>
|
||||
<p v-if="inbound.tls">
|
||||
tls {{ i18n "domainName" }}: <a-tag :color="inbound.serverName ? 'green' : 'orange'">[[ inbound.serverName ? inbound.serverName : '' ]]</a-tag>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<a-tag v-if="client._totalGB === 0" color="blue">{{ i18n "used" }}: [[ sizeFormat(getUpStats(record, client.email) + getDownStats(record, client.email)) ]]</a-tag>
|
||||
<a-tag v-if="client._totalGB > 0 && !isTrafficExhausted(record, client.email)" color="green">{{ i18n "used" }}: [[ sizeFormat(getUpStats(record, client.email) + getDownStats(record, client.email)) ]] / [[client._totalGB]]GB</a-tag>
|
||||
<a-tag v-if="client._totalGB > 0 && isTrafficExhausted(record, client.email)" color="red">{{ i18n "used" }}: [[ sizeFormat(getUpStats(record, client.email) + getDownStats(record, client.email)) ]] / [[client._totalGB]]GB</a-tag>
|
||||
</template>
|
||||
</template>
|
||||
<template slot="expiryTime" slot-scope="text, client, index">
|
||||
<template v-if="client._expiryTime > 0">
|
||||
<a-tag v-if="isExpiry(record, index)" color="red">
|
||||
|
|
|
@ -31,17 +31,18 @@
|
|||
"host" = "host"
|
||||
"path" = "path"
|
||||
"camouflage" = "camouflage"
|
||||
"turnOn" = "turn on"
|
||||
"closure" = "closure"
|
||||
"enabled" = "enabled"
|
||||
"disabled" = "disabled"
|
||||
"domainName" = "domain name"
|
||||
"additional" = "alter"
|
||||
"monitor" = "Listen IP"
|
||||
"certificate" = "certificat"
|
||||
"certificate" = "certificate"
|
||||
"fail" = "fail"
|
||||
"success" = " success"
|
||||
"getVersion" = "get version"
|
||||
"install" = "install"
|
||||
"used" = "used"
|
||||
"clients" = "clients"
|
||||
|
||||
[menu]
|
||||
"dashboard" = "System Status"
|
||||
|
@ -83,7 +84,6 @@
|
|||
"xraySwitchVersionDialogDesc" = "whether to switch the xray version to"
|
||||
"dontRefreshh" = "Installation is in progress, please do not refresh this page"
|
||||
|
||||
|
||||
[pages.inbounds]
|
||||
"title" = "Inbounds"
|
||||
"totalDownUp" = "Total uploads/downloads"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"hour" = "ساعت"
|
||||
"day" = "روز"
|
||||
"check" = "چک کردن"
|
||||
"indefinitely" = "نامحدود"
|
||||
"indefinite" = "نامحدود"
|
||||
"unlimited" = "نامحدود"
|
||||
"none" = "هیچ"
|
||||
"qrCode" = "QR کد"
|
||||
|
@ -31,8 +31,8 @@
|
|||
"host" = "آدرس"
|
||||
"path" = "مسیر"
|
||||
"camouflage" = "استتار"
|
||||
"enabled" = "فعال"
|
||||
"disabled" = "disabled"
|
||||
"enabled" = "فعال شد"
|
||||
"disabled" = "غیرفعال شد"
|
||||
"domainName" = "آدرس دامنه"
|
||||
"additional" = "آی دی جایگزین"
|
||||
"monitor" = "آی پی اتصال"
|
||||
|
@ -41,6 +41,7 @@
|
|||
"success" = " موفق"
|
||||
"getVersion" = "دریافت ورژن"
|
||||
"install" = "نصب"
|
||||
"used" = "استفاده شده"
|
||||
"clients" = "کاربران"
|
||||
|
||||
[menu]
|
||||
|
@ -123,7 +124,8 @@
|
|||
"publicKeyContent" = "محتوای Certificate.crt"
|
||||
"keyPath" = "مسیر فایل Private.key"
|
||||
"keyContent" = "محتوای Private.key"
|
||||
"clickOnQRcode" = "برای کپی بر روی کد تصویری کلیک کنید"
|
||||
"client" = "کاربر"
|
||||
"uid" = "UID"
|
||||
|
||||
[pages.inbounds.toasts]
|
||||
"obtain" = "Obtain"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"hour" = "小时"
|
||||
"day" = "天"
|
||||
"check" = "查看"
|
||||
"indefinitely" = "无限期"
|
||||
"indefinite" = "无限期"
|
||||
"unlimited" = "无限制"
|
||||
"none" = "无"
|
||||
"qrCode" = "二维码"
|
||||
|
@ -41,6 +41,7 @@
|
|||
"success" = "成功"
|
||||
"getVersion" = "获取版本"
|
||||
"install" = "安装"
|
||||
"used" = "用过的"
|
||||
"clients" = "客户端"
|
||||
|
||||
[menu]
|
||||
|
@ -122,7 +123,9 @@
|
|||
"publicKeyContent" = "公钥内容"
|
||||
"keyPath" = "密钥文件路径"
|
||||
"keyContent" = "密钥内容"
|
||||
"clickOnQRcode" = "click on QR Code to Copy"
|
||||
"client" = "客户"
|
||||
"uid" = "UID"
|
||||
|
||||
|
||||
[pages.inbounds.toasts]
|
||||
"obtain" = "获取"
|
||||
|
@ -187,5 +190,4 @@
|
|||
"getSetting" = "获取设置"
|
||||
"modifyUser" = "修改用户"
|
||||
"originalUserPassIncorrect" = "原用户名或原密码错误"
|
||||
"userPassMustBeNotEmpty" = "新用户名和新密码不能为空"
|
||||
|
||||
"userPassMustBeNotEmpty" = "新用户名和新密码不能为空"
|
Loading…
Reference in a new issue