17 changed files with 137 additions and 18 deletions
@ -1,16 +1,16 @@ |
|||||||
import { defHttp } from '@/utils/http/axios' |
import { defHttp } from '@/utils/http/axios' |
||||||
|
|
||||||
// 导出Html
|
// 导出Html
|
||||||
export const exportHtmlApi = () => { |
export const exportHtmlApi = async () => { |
||||||
return defHttp.get({ url: '/infra/db-doc/export-html' }) |
return defHttp.get({ url: '/infra/db-doc/export-html', responseType: 'blob' }) |
||||||
} |
} |
||||||
|
|
||||||
// 导出Word
|
// 导出Word
|
||||||
export const exportWordApi = () => { |
export const exportWordApi = () => { |
||||||
return defHttp.get({ url: '/infra/db-doc/export-word' }) |
return defHttp.get({ url: '/infra/db-doc/export-word', responseType: 'blob' }) |
||||||
} |
} |
||||||
|
|
||||||
// 导出Markdown
|
// 导出Markdown
|
||||||
export const exportMarkdownApi = () => { |
export const exportMarkdownApi = () => { |
||||||
return defHttp.get({ url: '/infra/db-doc/export-markdown' }) |
return defHttp.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' }) |
||||||
} |
} |
||||||
|
@ -0,0 +1,5 @@ |
|||||||
|
import { withInstall } from '@/utils' |
||||||
|
|
||||||
|
import iFrame from './src/IFrame.vue' |
||||||
|
|
||||||
|
export const IFrame = withInstall(iFrame) |
@ -0,0 +1,25 @@ |
|||||||
|
<template> |
||||||
|
<div v-loading="loading" :style="'height:' + height"> |
||||||
|
<iframe :src="props.src" style="width: 100%; height: 100%" frameborder="no" scrolling="auto" ref="frameRef"></iframe> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script setup lang="ts"> |
||||||
|
import { propTypes } from '@/utils/propTypes' |
||||||
|
import { onMounted, ref } from 'vue' |
||||||
|
|
||||||
|
const props = defineProps({ |
||||||
|
src: propTypes.string.def('') |
||||||
|
}) |
||||||
|
const loading = ref(true) |
||||||
|
const height = ref('') |
||||||
|
const frameRef = ref<HTMLElement | null>(null) |
||||||
|
const init = () => { |
||||||
|
height.value = document.documentElement.clientHeight - 94.5 + 'px' |
||||||
|
loading.value = false |
||||||
|
} |
||||||
|
onMounted(() => { |
||||||
|
setTimeout(() => { |
||||||
|
init() |
||||||
|
}, 300) |
||||||
|
}) |
||||||
|
</script> |
@ -1,3 +1,47 @@ |
|||||||
<template> |
<template> |
||||||
<div>开发中</div> |
<PageWrapper> |
||||||
|
<div class="mb-3"> |
||||||
|
<a-button type="primary" size="small" class="mr-1" @click="handleExport('HTML')">{{ t('action.export') + 'Html' }}</a-button> |
||||||
|
<a-button type="primary" size="small" class="mr-1" @click="handleExport('Word')">{{ t('action.export') + 'Word' }}</a-button> |
||||||
|
<a-button type="primary" size="small" @click="handleExport('Markdown')">{{ t('action.export') + 'Markdown' }}</a-button> |
||||||
|
</div> |
||||||
|
<IFrame :src="src" /> |
||||||
|
</PageWrapper> |
||||||
</template> |
</template> |
||||||
|
<script setup lang="ts" name="Swagger"> |
||||||
|
import { PageWrapper } from '@/components/Page' |
||||||
|
import { onMounted, ref } from 'vue' |
||||||
|
import { useI18n } from '@/hooks/web/useI18n' |
||||||
|
import { IFrame } from '@/components/IFrame' |
||||||
|
import * as DbDocApi from '@/api/infra/dbDoc' |
||||||
|
import { downloadByData } from '@/utils/file/download' |
||||||
|
|
||||||
|
const { t } = useI18n() |
||||||
|
// const src = ref(BASE_URL + '/doc.html') |
||||||
|
const src = ref('') |
||||||
|
/** 页面加载 */ |
||||||
|
const init = async () => { |
||||||
|
const res = await DbDocApi.exportHtmlApi() |
||||||
|
let blob = new Blob([res], { type: 'text/html' }) |
||||||
|
let blobUrl = window.URL.createObjectURL(blob) |
||||||
|
src.value = blobUrl |
||||||
|
} |
||||||
|
/** 处理导出 */ |
||||||
|
const handleExport = async (type: string) => { |
||||||
|
if (type === 'HTML') { |
||||||
|
const res = await DbDocApi.exportHtmlApi() |
||||||
|
downloadByData(res, '数据库文档.html') |
||||||
|
} |
||||||
|
if (type === 'Word') { |
||||||
|
const res = await DbDocApi.exportWordApi() |
||||||
|
downloadByData(res, '数据库文档.doc') |
||||||
|
} |
||||||
|
if (type === 'Markdown') { |
||||||
|
const res = await DbDocApi.exportMarkdownApi() |
||||||
|
downloadByData(res, '数据库文档.md') |
||||||
|
} |
||||||
|
} |
||||||
|
onMounted(async () => { |
||||||
|
await init() |
||||||
|
}) |
||||||
|
</script> |
||||||
|
@ -1,3 +1,13 @@ |
|||||||
<template> |
<template> |
||||||
<div>开发中</div> |
<div> |
||||||
|
<IFrame :src="src" /> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
<script setup lang="ts" name="Swagger"> |
||||||
|
import { ref } from 'vue' |
||||||
|
import { IFrame } from '@/components/IFrame' |
||||||
|
|
||||||
|
const BASE_URL = import.meta.env.VITE_GLOB_BASE_URL |
||||||
|
// const src = ref(BASE_URL + '/doc.html') |
||||||
|
const src = ref(BASE_URL + '/druid/index.html') |
||||||
|
</script> |
||||||
|
@ -1,3 +1,13 @@ |
|||||||
<template> |
<template> |
||||||
<div>开发中</div> |
<div> |
||||||
|
<IFrame :src="src" /> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
<script setup lang="ts" name="Swagger"> |
||||||
|
import { ref } from 'vue' |
||||||
|
import { IFrame } from '@/components/IFrame' |
||||||
|
|
||||||
|
const BASE_URL = import.meta.env.VITE_GLOB_BASE_URL |
||||||
|
// const src = ref(BASE_URL + '/doc.html') |
||||||
|
const src = ref(BASE_URL + '/admin/applications') |
||||||
|
</script> |
||||||
|
@ -1,3 +1,11 @@ |
|||||||
<template> |
<template> |
||||||
<div>开发中</div> |
<div> |
||||||
|
<IFrame :src="src" /> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
<script setup lang="ts" name="Swagger"> |
||||||
|
import { ref } from 'vue' |
||||||
|
import { IFrame } from '@/components/IFrame' |
||||||
|
|
||||||
|
const src = ref('http://skywalking.shop.iocoder.cn') |
||||||
|
</script> |
||||||
|
@ -1,3 +1,13 @@ |
|||||||
<template> |
<template> |
||||||
<div>开发中</div> |
<div> |
||||||
|
<IFrame :src="src" /> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
<script setup lang="ts" name="Swagger"> |
||||||
|
import { ref } from 'vue' |
||||||
|
import { IFrame } from '@/components/IFrame' |
||||||
|
|
||||||
|
const BASE_URL = import.meta.env.VITE_GLOB_BASE_URL |
||||||
|
// const src = ref(BASE_URL + '/doc.html') |
||||||
|
const src = ref(BASE_URL + '/swagger-ui') |
||||||
|
</script> |
||||||
|
Reference in new issue