|
@@ -15,16 +15,8 @@
|
|
|
confirmLoading: false,
|
|
|
title: '',
|
|
|
okText: '',
|
|
|
- group: {
|
|
|
- canGroup: true,
|
|
|
- isGroup: false,
|
|
|
- currentClient: null,
|
|
|
- inbounds: [],
|
|
|
- clients: [],
|
|
|
- editIds: []
|
|
|
- },
|
|
|
+ isEdit: false,
|
|
|
dbInbound: new DBInbound(),
|
|
|
- dbInbounds: null,
|
|
|
inbound: new Inbound(),
|
|
|
clients: [],
|
|
|
clientStats: [],
|
|
@@ -33,137 +25,33 @@
|
|
|
clientIps: null,
|
|
|
delayedStart: false,
|
|
|
ok() {
|
|
|
- if (clientModal.group.isGroup && clientModal.group.canGroup) {
|
|
|
- const currentClient = clientModal.group.currentClient;
|
|
|
-
|
|
|
- clientModal.group.clients.forEach((client, index) => {
|
|
|
- const { email, limitIp, totalGB, expiryTime, reset, enable, subId, tgId, flow } = currentClient;
|
|
|
-
|
|
|
- const match = email.match(/^(.*?)__/);
|
|
|
- const new_email = match ? match[1] : email;
|
|
|
-
|
|
|
- client.email = `${new_email}__${index + 1}`;
|
|
|
- client.limitIp = limitIp;
|
|
|
- client.totalGB = totalGB;
|
|
|
- client.expiryTime = expiryTime;
|
|
|
- client.reset = reset;
|
|
|
- client.enable = enable;
|
|
|
-
|
|
|
- if (subId) {
|
|
|
- client.subId = subId;
|
|
|
- }
|
|
|
- if (tgId) {
|
|
|
- client.tgId = tgId;
|
|
|
- }
|
|
|
- if (flow) {
|
|
|
- client.flow = flow;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (clientModal.isEdit) {
|
|
|
- ObjectUtil.execute(clientModal.confirm, clientModal.group.clients, clientModal.group.inbounds, clientModal.group.editIds);
|
|
|
- }else{
|
|
|
- ObjectUtil.execute(clientModal.confirm, clientModal.group.clients, clientModal.group.inbounds);
|
|
|
- }
|
|
|
+ if (clientModal.isEdit) {
|
|
|
+ ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id, clientModal.oldClientId);
|
|
|
} else {
|
|
|
- if (clientModal.isEdit){
|
|
|
- ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id, clientModal.oldClientId);
|
|
|
- }else{
|
|
|
- ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id);
|
|
|
- }
|
|
|
+ ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id);
|
|
|
}
|
|
|
},
|
|
|
- show({ title = '', okText = '{{ i18n "sure" }}', index = null, dbInbound = null, dbInbounds = null, confirm = () => { }, isEdit = false }) {
|
|
|
- this.group = {
|
|
|
- canGroup: true,
|
|
|
- isGroup: false,
|
|
|
- currentClient: null,
|
|
|
- inbounds: [],
|
|
|
- clients: [],
|
|
|
- editIds: []
|
|
|
- }
|
|
|
- this.dbInbounds = dbInbounds;
|
|
|
+ show({ title = '', okText = '{{ i18n "sure" }}', index = null, dbInbound = null, confirm = () => { }, isEdit = false }) {
|
|
|
this.visible = true;
|
|
|
this.title = title;
|
|
|
this.okText = okText;
|
|
|
this.isEdit = isEdit;
|
|
|
- if (dbInbounds !== null && Array.isArray(dbInbounds)) {
|
|
|
- if (isEdit) {
|
|
|
- this.showProcess(dbInbound, index);
|
|
|
- let processSingleEdit = true
|
|
|
- if (this.group.canGroup){
|
|
|
- this.group.currentClient = this.clients[this.index]
|
|
|
- const response = this.getGroupInboundsClients(dbInbounds,this.group.currentClient)
|
|
|
- if (response.clients.length > 1){
|
|
|
- this.group.isGroup = true;
|
|
|
- this.group.inbounds = response.inbounds
|
|
|
- this.group.clients = response.clients
|
|
|
- this.group.editIds = response.editIds
|
|
|
- if (this.clients[index].expiryTime < 0) {
|
|
|
- this.delayedStart = true;
|
|
|
- }
|
|
|
- processSingleEdit = false
|
|
|
- }
|
|
|
- }
|
|
|
- if(processSingleEdit){
|
|
|
- this.singleEditClientProcess(index)
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.group.isGroup = true;
|
|
|
- dbInbounds.forEach((dbInboundItem) => {
|
|
|
- this.showProcess(dbInboundItem);
|
|
|
- this.addClient(this.inbound.protocol, this.clients);
|
|
|
- this.group.inbounds.push(dbInboundItem.id)
|
|
|
- this.group.clients.push(this.clients[this.index])
|
|
|
- })
|
|
|
- this.group.currentClient = this.clients[this.index]
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.showProcess(dbInbound, index);
|
|
|
- if (isEdit) {
|
|
|
- this.singleEditClientProcess(index)
|
|
|
- } else {
|
|
|
- this.addClient(this.inbound.protocol, this.clients);
|
|
|
- }
|
|
|
- }
|
|
|
- this.clientStats = this.dbInbound.clientStats.find(row => row.email === this.clients[this.index].email);
|
|
|
- this.confirm = confirm;
|
|
|
- },
|
|
|
- showProcess(dbInbound, index = null) {
|
|
|
this.dbInbound = new DBInbound(dbInbound);
|
|
|
this.inbound = dbInbound.toInbound();
|
|
|
this.clients = this.inbound.clients;
|
|
|
this.index = index === null ? this.clients.length : index;
|
|
|
this.delayedStart = false;
|
|
|
- },
|
|
|
- singleEditClientProcess(index) {
|
|
|
- if (this.clients[index].expiryTime < 0) {
|
|
|
- this.delayedStart = true;
|
|
|
- }
|
|
|
- this.oldClientId = this.getClientId(this.dbInbound.protocol, this.clients[index]);
|
|
|
- },
|
|
|
- getGroupInboundsClients(dbInbounds, currentClient) {
|
|
|
- const response = {
|
|
|
- inbounds: [],
|
|
|
- clients: [],
|
|
|
- editIds: []
|
|
|
- }
|
|
|
- dbInbounds.forEach((dbInboundItem) => {
|
|
|
- const dbInbound = new DBInbound(dbInboundItem);
|
|
|
- const inbound = dbInbound.toInbound();
|
|
|
- const clients = inbound.clients;
|
|
|
- if (clients.length > 0){
|
|
|
- clients.forEach((client) => {
|
|
|
- if (client['subId'] === currentClient['subId']){
|
|
|
- response.inbounds.push(dbInboundItem.id)
|
|
|
- response.clients.push(client)
|
|
|
- response.editIds.push(this.getClientId(dbInbound.protocol, client))
|
|
|
- }
|
|
|
- })
|
|
|
+ if (isEdit) {
|
|
|
+ if (this.clients[index].expiryTime < 0) {
|
|
|
+ this.delayedStart = true;
|
|
|
}
|
|
|
- })
|
|
|
- return response;
|
|
|
- },
|
|
|
+ this.oldClientId = this.getClientId(dbInbound.protocol, clients[index]);
|
|
|
+ } else {
|
|
|
+ this.addClient(this.inbound.protocol, this.clients);
|
|
|
+ }
|
|
|
+ this.clientStats = this.dbInbound.clientStats.find(row => row.email === this.clients[this.index].email);
|
|
|
+ this.confirm = confirm;
|
|
|
+ },
|
|
|
getClientId(protocol, client) {
|
|
|
switch (protocol) {
|
|
|
case Protocols.TROJAN: return client.password;
|
|
@@ -206,18 +94,6 @@
|
|
|
get isEdit() {
|
|
|
return this.clientModal.isEdit;
|
|
|
},
|
|
|
- get isGroup() {
|
|
|
- return this.clientModal.group.isGroup;
|
|
|
- },
|
|
|
- get isGroupEdit() {
|
|
|
- return this.clientModal.group.canGroup;
|
|
|
- },
|
|
|
- set isGroupEdit(value) {
|
|
|
- this.clientModal.group.canGroup = value;
|
|
|
- if (!value){
|
|
|
- this.clientModal.singleEditClientProcess(this.clientModal.index)
|
|
|
- }
|
|
|
- },
|
|
|
get datepicker() {
|
|
|
return app.datepicker;
|
|
|
},
|