Jelajahi Sumber

feat:数据库文档

zhengnaiwen_citu 1 tahun lalu
induk
melakukan
62ff33642f
2 mengubah file dengan 75 tambahan dan 0 penghapusan
  1. 16 0
      src/api/system/infra/dbDoc.ts
  2. 59 0
      src/views/system/infra/dbDoc.vue

+ 16 - 0
src/api/system/infra/dbDoc.ts

@@ -0,0 +1,16 @@
+import request from '@/config/axios'
+
+// 导出Html
+export const exportHtml = () => {
+  return request.download({ url: '/infra/db-doc/export-html' })
+}
+
+// 导出Word
+export const exportWord = () => {
+  return request.download({ url: '/infra/db-doc/export-word' })
+}
+
+// 导出Markdown
+export const exportMarkdown = () => {
+  return request.download({ url: '/infra/db-doc/export-markdown' })
+}

+ 59 - 0
src/views/system/infra/dbDoc.vue

@@ -0,0 +1,59 @@
+<template>
+  <doc-alert title="数据库文档" url="https://doc.iocoder.cn/db-doc/" />
+
+  <ContentWrap title="数据库文档">
+    <div class="mb-10px">
+      <el-button type="primary" plain @click="handleExport('HTML')">
+        <Icon icon="ep:download" /> 导出 HTML
+      </el-button>
+      <el-button type="primary" plain @click="handleExport('Word')">
+        <Icon icon="ep:download" /> 导出 Word
+      </el-button>
+      <el-button type="primary" plain @click="handleExport('Markdown')">
+        <Icon icon="ep:download" /> 导出 Markdown
+      </el-button>
+    </div>
+    <IFrame v-if="!loading" v-loading="loading" :src="src" />
+  </ContentWrap>
+</template>
+<script lang="ts" setup>
+import download from '@/utils/download'
+import * as DbDocApi from '@/api/infra/dbDoc'
+
+defineOptions({ name: 'InfraDBDoc' })
+
+const loading = ref(true) // 是否加载中
+const src = ref('') // HTML 的地址
+
+/** 页面加载 */
+const init = async () => {
+  try {
+    const data = await DbDocApi.exportHtml()
+    const blob = new Blob([data], { type: 'text/html' })
+    src.value = window.URL.createObjectURL(blob)
+  } finally {
+    loading.value = false
+  }
+}
+
+/** 处理导出  */
+const handleExport = async (type: string) => {
+  if (type === 'HTML') {
+    const res = await DbDocApi.exportHtml()
+    download.html(res, '数据库文档.html')
+  }
+  if (type === 'Word') {
+    const res = await DbDocApi.exportWord()
+    download.word(res, '数据库文档.doc')
+  }
+  if (type === 'Markdown') {
+    const res = await DbDocApi.exportMarkdown()
+    download.markdown(res, '数据库文档.md')
+  }
+}
+
+/** 初始化 */
+onMounted(async () => {
+  await init()
+})
+</script>