#I4MKKW api接口调试支持文件上传,全局参数控制优化

This commit is contained in:
暮光:城中城
2021-12-15 23:20:17 +08:00
parent c176bd7577
commit e2a8c46afb
16 changed files with 206 additions and 61 deletions

View File

@@ -10,7 +10,7 @@
<a-select placeholder="请选择分组" v-model:value="docChoiceId" @change="docChoiceChange" style="width: 100%;">
<a-select-option :value="item.id" v-for="item in docResourceList">{{item.name}}</a-select-option>
</a-select>
<a-input-search v-model:value="searchKeywords" placeholder="搜索文档内容" style="width: 100%;margin-top: 10px;" @search="docChoiceChange"/>
<a-input-search v-model:value="searchKeywords" placeholder="搜索文档内容" style="width: 100%;margin-top: 10px;" @search="searchDoc"/>
</div>
<template v-if="docChoice && docChoice.docType">
<DocTreeSwagger v-if="docChoice.docType === 1 || docChoice.docType === 2" ref="swaggerRef"></DocTreeSwagger>
@@ -102,9 +102,26 @@
openApiRef.value.loadDoc(docChoiceId.value, searchKeywords.value, loadDocCallback);
}
}
zyplayerApi.docApiGlobalParamList({docId: docChoiceId.value}).then(res => {
let docGlobalParam = res.data || [];
store.commit('setDocGlobalParam', docGlobalParam);
});
};
const docChoiceChange = () => {
loadDoc();
};
// 搜索文档
const searchDoc = () => {
// 如果文档是swagger类型
if (docChoice.value.docType === 1 || docChoice.value.docType === 2) {
if (swaggerRef.value) {
swaggerRef.value.loadTreeData(searchKeywords.value);
}
} else if (docChoice.value.docType === 3 || docChoice.value.docType === 4) {
if (openApiRef.value) {
openApiRef.value.loadTreeData(searchKeywords.value);
}
}
};
watch(store.getters.getDocChangedNum, () => {
getApiDocList();
@@ -136,6 +153,7 @@
swaggerRef,
openApiRef,
docChoice,
searchDoc,
docChoiceChange,
};
},

View File

@@ -41,7 +41,6 @@
let treeData = ref([]);
let expandedKeys = ref([]);
let choiceDocId = ref('');
let searchKeywords = ref('');
const docChecked = (val, node) => {
if (node.node.key === 'info') {
@@ -53,11 +52,11 @@
};
const loadDoc = (docId, keyword, callback) => {
choiceDocId.value = docId;
searchKeywords.value = keyword;
zyplayerApi.apiDocApisDetail({id: docId}).then(res => {
let v2Doc = toJsonObj(res.data);
// osdoc.swagger 和 doc.openapi 的区别
if (typeof v2Doc !== 'object' || !v2Doc.openapi) {
callback(false);
message.error('获取文档数据失败请检查文档是否为标准的OpenApi文档格式');
return;
}
@@ -67,13 +66,15 @@
store.commit('setOpenApiUrlMethodMap', treeData.urlMethodMap);
store.commit('setOpenApiMethodStatistic', treeData.methodStatistic);
tagPathMap.value = treeData.tagPathMap;
loadTreeData();
callback();
loadTreeData(keyword);
callback(true);
}).catch(() => {
callback(false);
});
};
const loadTreeData = async () => {
const loadTreeData = async (keyword) => {
let metaInfo = {id: choiceDocId.value};
treeData.value = getTreeDataForTag(openApiDoc.value, tagPathMap.value, searchKeywords.value, metaInfo);
treeData.value = getTreeDataForTag(openApiDoc.value, tagPathMap.value, keyword, metaInfo);
treeData.value.unshift({key: 'info', title: '文档说明信息', isLeaf: true});
await nextTick();
expandedKeys.value = ['main'];
@@ -97,6 +98,7 @@
expandedKeys,
docChecked,
loadDoc,
loadTreeData,
treeData,
};
},

View File

@@ -41,7 +41,6 @@
let treeData = ref([]);
let expandedKeys = ref([]);
let choiceDocId = ref('');
let searchKeywords = ref('');
const docChecked = (val, node) => {
if (node.node.key === 'info') {
@@ -53,7 +52,6 @@
};
const loadDoc = (docId, keyword, callback) => {
choiceDocId.value = docId;
searchKeywords.value = keyword;
zyplayerApi.apiDocApisDetail({id: docId}).then(res => {
let v2Doc = toJsonObj(res.data);
if (typeof v2Doc !== 'object' || !v2Doc.swagger) {
@@ -67,13 +65,15 @@
store.commit('setSwaggerUrlMethodMap', treeData.urlMethodMap);
store.commit('setSwaggerMethodStatistic', treeData.methodStatistic);
tagPathMap.value = treeData.tagPathMap;
loadTreeData();
callback(true);
loadTreeData(keyword);
callback(true);
}).catch(() => {
callback(false);
});
};
const loadTreeData = async () => {
const loadTreeData = async (keyword) => {
let metaInfo = {id: choiceDocId.value};
treeData.value = getTreeDataForTag(swaggerDoc.value, tagPathMap.value, searchKeywords.value, metaInfo);
treeData.value = getTreeDataForTag(swaggerDoc.value, tagPathMap.value, keyword, metaInfo);
treeData.value.unshift({key: 'info', title: '文档说明信息', isLeaf: true});
await nextTick();
expandedKeys.value = ['main'];
@@ -97,6 +97,7 @@
expandedKeys,
docChecked,
loadDoc,
loadTreeData,
treeData,
};
},

View File

@@ -41,7 +41,7 @@
<a-select-option value="true">TRUE</a-select-option>
<a-select-option value="false">FALSE</a-select-option>
</a-select>
<a-upload v-else-if="isFileType(record.type)"
<a-upload v-else-if="isFileType(record)"
:file-list="record.value" name="file" :multiple="record.type === 'array'"
:before-upload="file=>{return beforeUpload(file, record)}"
:remove="file=>{return handleRemove(file, record)}"
@@ -121,11 +121,11 @@
paramListColumns.value.push({title: '参数值', dataIndex: 'value'});
paramListColumns.value.push({title: '', dataIndex: 'action', width: 40});
const beforeUpload = (file, record) => {
if (record.type !== 'array') {
record.value = [file];
} else {
record.value = [...record.value, file];
}
if (record.type !== 'array' || !(record.value instanceof Array) || record.value.length <= 0) {
record.value = [file];
} else {
record.value = [...record.value, file];
}
return false;
};
const handleRemove = (file, record) => {

View File

@@ -78,7 +78,16 @@
}
};
const docSearch = () => {
loadDoc();
// 如果文档是swagger类型
if (docChoice.value.docType === 1 || docChoice.value.docType === 2) {
if (swaggerRef.value) {
swaggerRef.value.loadTreeData(searchKeywords.value);
}
} else if (docChoice.value.docType === 3 || docChoice.value.docType === 4) {
if (openApiRef.value) {
openApiRef.value.loadTreeData(searchKeywords.value);
}
}
};
onMounted(() => {
docChoiceId.value = route.query.uuid;

View File

@@ -36,7 +36,6 @@
let treeData = ref([]);
let expandedKeys = ref([]);
let choiceDocId = ref('');
let searchKeywords = ref('');
const docChecked = (val, node) => {
if (node.node.isLeaf) {
@@ -46,11 +45,11 @@
};
const loadDoc = (docId, keyword, callback) => {
choiceDocId.value = docId;
searchKeywords.value = keyword;
zyplayerApi.apiShareDocApisDetail({shareUuid: docId}).then(res => {
let v2Doc = toJsonObj(res.data);
// osdoc.swagger 和 doc.openapi 的区别
if (typeof v2Doc !== 'object' || !v2Doc.openapi) {
callback(false);
message.error('获取文档数据失败请检查文档是否为标准的OpenApi文档格式');
return;
}
@@ -60,13 +59,15 @@
store.commit('setOpenApiUrlMethodMap', treeData.urlMethodMap);
store.commit('setOpenApiMethodStatistic', treeData.methodStatistic);
tagPathMap.value = treeData.tagPathMap;
loadTreeData();
callback();
loadTreeData(keyword);
callback(true);
}).catch(() => {
callback(false);
});
};
const loadTreeData = async () => {
const loadTreeData = async (keyword) => {
let metaInfo = {uuid: choiceDocId.value};
treeData.value = getTreeDataForTag(openApiDoc.value, tagPathMap.value, searchKeywords.value, metaInfo);
treeData.value = getTreeDataForTag(openApiDoc.value, tagPathMap.value, keyword, metaInfo);
await nextTick();
expandedKeys.value = ['main'];
};
@@ -89,6 +90,7 @@
expandedKeys,
docChecked,
loadDoc,
loadTreeData,
treeData,
};
},

View File

@@ -36,7 +36,6 @@
let treeData = ref([]);
let expandedKeys = ref([]);
let choiceDocId = ref('');
let searchKeywords = ref('');
const docChecked = (val, node) => {
if (node.node.isLeaf) {
@@ -46,7 +45,6 @@
};
const loadDoc = (docId, keyword, callback) => {
choiceDocId.value = docId;
searchKeywords.value = keyword;
zyplayerApi.apiShareDocApisDetail({shareUuid: docId}).then(res => {
let v2Doc = toJsonObj(res.data);
if (typeof v2Doc !== 'object' || !v2Doc.swagger) {
@@ -60,13 +58,15 @@
store.commit('setSwaggerUrlMethodMap', treeData.urlMethodMap);
store.commit('setSwaggerMethodStatistic', treeData.methodStatistic);
tagPathMap.value = treeData.tagPathMap;
loadTreeData();
loadTreeData(keyword);
callback(true);
}).catch(() => {
callback(false);
});
};
const loadTreeData = async () => {
const loadTreeData = async (keyword) => {
let metaInfo = {uuid: choiceDocId.value};
treeData.value = getTreeDataForTag(swaggerDoc.value, tagPathMap.value, searchKeywords.value, metaInfo);
treeData.value = getTreeDataForTag(swaggerDoc.value, tagPathMap.value, keyword, metaInfo);
await nextTick();
expandedKeys.value = ['main'];
};
@@ -89,6 +89,7 @@
expandedKeys,
docChecked,
loadDoc,
loadTreeData,
treeData,
};
},