Bind history state and query params of requests
This commit is contained in:
@@ -532,9 +532,24 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
setRouteQuerieState () {
|
||||||
|
const flat = key => this[key] !== '' ? `${key}=${this[key]}&` : ''
|
||||||
|
const deep = key => {
|
||||||
|
const haveItems = [...this[key]].length
|
||||||
|
if(haveItems && this[key]['value'] !== '') {
|
||||||
|
return `${key}=${JSON.stringify(this[key])}&`
|
||||||
|
}
|
||||||
|
else return ''
|
||||||
|
}
|
||||||
|
let flats = [ 'method', 'url', 'path', 'auth', 'httpUser', 'httpPassword', 'bearerToken','contentType'].map(item => flat(item))
|
||||||
|
let deeps = ['headers', 'params', 'bodyParams'].map(item => deep(item))
|
||||||
|
this.$router.replace('/?'+ flats.concat(deeps).join('').slice(0,-1))
|
||||||
|
},
|
||||||
setRouteQueries(queries) {
|
setRouteQueries(queries) {
|
||||||
|
if(typeof(queries) !== 'object') throw new Error('Route query parameters must be a Object')
|
||||||
for (const key in queries) {
|
for (const key in queries) {
|
||||||
if (this[key]) this[key] = queries[key];
|
if(key === 'headers' || key === 'params' || key ==='bodyParams') this[key] = JSON.parse(queries[key])
|
||||||
|
else if (typeof(this[key]) === 'string') this[key] = queries[key];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
observeRequestButton() {
|
observeRequestButton() {
|
||||||
@@ -549,11 +564,26 @@
|
|||||||
observer.observe(requestElement);
|
observer.observe(requestElement);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
|
||||||
if (Object.keys(this.$route.query).length) this.setRouteQueries(this.$route.query);
|
|
||||||
},
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.observeRequestButton();
|
this.observeRequestButton();
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (Object.keys(this.$route.query).length) this.setRouteQueries(this.$route.query);
|
||||||
|
this.$watch(vm => [
|
||||||
|
vm.method,
|
||||||
|
vm.url,
|
||||||
|
vm.auth,
|
||||||
|
vm.path,
|
||||||
|
vm.httpUser,
|
||||||
|
vm.httpPassword,
|
||||||
|
vm.bearerToken,
|
||||||
|
vm.headers,
|
||||||
|
vm.params,
|
||||||
|
vm.bodyParams,
|
||||||
|
vm.contentType
|
||||||
|
], val => {
|
||||||
|
this.setRouteQuerieState()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user