87 lines
2.1 KiB
JavaScript
87 lines
2.1 KiB
JavaScript
var app = new Vue({
|
|
el: '#apiApp',
|
|
data: {
|
|
header: [],
|
|
queryP: [],
|
|
body: [],
|
|
params: "",
|
|
response: "",
|
|
defaultHeader: {field: '', required: '', desc: ''},
|
|
attrType: '',
|
|
},
|
|
created() {
|
|
this.header.push({...this.defaultHeader});
|
|
this.queryP.push({...this.defaultHeader});
|
|
},
|
|
watch: {
|
|
header: {
|
|
handler() {
|
|
this.setParams();
|
|
},
|
|
deep: true
|
|
},
|
|
queryP: {
|
|
handler() {
|
|
this.setParams();
|
|
},
|
|
deep: true
|
|
},
|
|
body: {
|
|
handler() {
|
|
this.setParams();
|
|
},
|
|
deep: true
|
|
},
|
|
attrType: {
|
|
handler() {
|
|
this.setParams()
|
|
},
|
|
deep: true
|
|
}
|
|
},
|
|
methods: {
|
|
changeAttr(val) {
|
|
this.body = val;
|
|
},
|
|
changeType(val) {
|
|
this.attrType = val
|
|
},
|
|
changeRes(val) {
|
|
val = this.filterParams(val)
|
|
this.response = JSON.stringify(val);
|
|
},
|
|
setParams() {
|
|
const header = this.filterParams(this.header)
|
|
const body = this.filterParams(this.body)
|
|
const queryP = this.filterParams(this.queryP)
|
|
const params = {
|
|
header: header,
|
|
params: body,
|
|
paramsType: this.attrType,
|
|
query: queryP,
|
|
}
|
|
this.params = JSON.stringify(params);
|
|
},
|
|
filterParams(data) {
|
|
const res = []
|
|
data.forEach(item => {
|
|
if (item.field && item.field.length > 0) {
|
|
res.push(item)
|
|
}
|
|
})
|
|
return res
|
|
},
|
|
del(data, key) {
|
|
if (data.length <= 1) {
|
|
return;
|
|
}
|
|
data.splice(key, 1);
|
|
},
|
|
add(data, key, t) {
|
|
if (t == "header" || t == 'query') {
|
|
data.splice(key + 1, 0, {...this.defaultHeader})
|
|
}
|
|
}
|
|
}
|
|
})
|