subjson and multidomain
This commit is contained in:
@@ -10,10 +10,11 @@ const Data = defineStore('Data', {
|
||||
reloadItems: localStorage.getItem("reloadItems")?.split(',')?? <string[]>[],
|
||||
subURI: "",
|
||||
onlines: {inbound: <string[]>[], outbound: <string[]>[], user: <string[]>[]},
|
||||
oldData: <{config: any, clients: any[], tlsConfigs: any[]}>{},
|
||||
config: {},
|
||||
oldData: <{config: any, clients: any[], tlsConfigs: any[], inData: any[]}>{},
|
||||
config: <any>{},
|
||||
clients: [],
|
||||
tlsConfigs: [],
|
||||
inData: [],
|
||||
}),
|
||||
actions: {
|
||||
async loadData() {
|
||||
@@ -25,6 +26,7 @@ const Data = defineStore('Data', {
|
||||
if (msg.obj.config) this.oldData.config = msg.obj.config
|
||||
if (msg.obj.clients) this.oldData.clients = msg.obj.clients
|
||||
if (msg.obj.tls) this.oldData.tlsConfigs = msg.obj.tls
|
||||
if (msg.obj.inData) this.oldData.inData = msg.obj.inData
|
||||
this.onlines = msg.obj.onlines
|
||||
if (msg.obj.lastLog) {
|
||||
push.error({
|
||||
@@ -41,31 +43,51 @@ const Data = defineStore('Data', {
|
||||
if (data.config) this.config = data.config
|
||||
if (data.clients) this.clients = data.clients
|
||||
if (data.tls) this.tlsConfigs = data.tls
|
||||
if (data.inData) this.inData = data.inData
|
||||
}
|
||||
}
|
||||
},
|
||||
async pushData() {
|
||||
const diff = {
|
||||
config: JSON.stringify(FindDiff.Config(this.config,this.oldData.config)),
|
||||
clients: JSON.stringify(FindDiff.Clients(this.clients,this.oldData.clients)),
|
||||
tls: JSON.stringify(FindDiff.Clients(this.tlsConfigs,this.oldData.tlsConfigs)),
|
||||
config: JSON.stringify(FindDiff.Config(this.config,this.oldData.config), null, 2),
|
||||
clients: JSON.stringify(FindDiff.ArrObj(this.clients,this.oldData.clients, "clients"), null, 2),
|
||||
tls: JSON.stringify(FindDiff.ArrObj(this.tlsConfigs,this.oldData.tlsConfigs, "tls"), null, 2),
|
||||
inData: JSON.stringify(FindDiff.ArrObj(this.inData,this.oldData.inData, "inData"), null, 2),
|
||||
}
|
||||
const msg = await HttpUtils.post('api/save',diff)
|
||||
if(msg.success) {
|
||||
this.lastLoad = 0
|
||||
this.loadData()
|
||||
}
|
||||
},
|
||||
async delInbound(index: number) {
|
||||
const diff = {
|
||||
config: JSON.stringify([{key: "inbounds", action: "del", index: index, obj: null}]),
|
||||
clients: JSON.stringify(FindDiff.Clients(this.clients,this.oldData.clients)),
|
||||
tls: JSON.stringify(FindDiff.Clients(this.tlsConfigs,this.oldData.tlsConfigs)),
|
||||
clients: JSON.stringify(FindDiff.ArrObj(this.clients,this.oldData.clients, "clients"), null, 2),
|
||||
tls: JSON.stringify(FindDiff.ArrObj(this.tlsConfigs,this.oldData.tlsConfigs, "tls"), null, 2),
|
||||
inData: <string|undefined> undefined,
|
||||
}
|
||||
|
||||
// Validate inData
|
||||
let invalidInData = <any[]>[]
|
||||
this.inData.forEach((d:any) => {
|
||||
const inboundIndex = this.config.inbounds.findIndex((i:any) => i.tag == d.tag)
|
||||
if (inboundIndex == -1) invalidInData.push({key: "inData", action: "del", index: d.id, obj: null})
|
||||
})
|
||||
if (invalidInData.length>0) {
|
||||
diff.inData = JSON.stringify(invalidInData)
|
||||
}
|
||||
const msg = await HttpUtils.post('api/save',diff)
|
||||
if(msg.success) {
|
||||
this.loadData()
|
||||
}
|
||||
},
|
||||
async delInData(id: number) {
|
||||
const diff = {
|
||||
inData: JSON.stringify([{key: "inData", action: "del", index: id, obj: null}])
|
||||
}
|
||||
await HttpUtils.post('api/save',diff)
|
||||
},
|
||||
async delOutbound(index: number) {
|
||||
const diff = {
|
||||
config: JSON.stringify([{key: "outbounds", action: "del", index: index, obj: null}]),
|
||||
|
||||
Reference in New Issue
Block a user