2023-05-16 10:47:08 +08:00

106 lines
2.8 KiB
JavaScript

$(function()
{
$('#top-submit').click(function()
{
$(this).addClass('disabled');
$('form').submit();
})
})
var app = new Vue({
el: '#apiApp',
data: {
header: [],
queryP: [],
body: "",
response: "",
params: "",
defaultHeader: {field: '', required: '', desc: ''},
attr: [],
attrType: 'formData',
api
},
created() {
this.header.push({...this.defaultHeader})
this.queryP.push({...this.defaultHeader})
if(api) {
if(api.params.header && api.params.header.length > 0) this.header = api.params.header
if(api.params.query && api.params.query.length > 0) this.queryP = api.params.query
if(api.params.params && api.params.params.length > 0) this.attr = api.params.params
if(api.params.paramsType) this.attrType = api.params.paramsType
this.setParams();
}
},
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 = []
if(data && data.length > 0) {
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})
}
}
}
})