Support markdown import.

pull/25/head
ruibaby 2019-05-29 23:43:59 +08:00
parent 0f5f1bec0f
commit b314cdb41f
3 changed files with 40 additions and 18 deletions

18
src/api/backup.js Normal file
View File

@ -0,0 +1,18 @@
import service from '@/utils/service'
const baseUrl = '/api/admin/backups'
const backupApi = {}
backupApi.importMarkdown = (formData, uploadProgress, cancelToken) => {
return service({
url: `${baseUrl}/import/markdowns`,
timeout: 8640000, // 24 hours
data: formData, // form data
onUploadProgress: uploadProgress,
cancelToken: cancelToken,
method: 'post'
})
}
export default backupApi

View File

@ -178,12 +178,12 @@ export const asyncRouterMap = [
// component: () => import('@/views/system/BackupList'), // component: () => import('@/views/system/BackupList'),
// meta: { title: '博客备份', hiddenHeaderContent: false } // meta: { title: '博客备份', hiddenHeaderContent: false }
// }, // },
// { {
// path: '/system/tools', path: '/system/tools',
// name: 'ToolList', name: 'ToolList',
// component: () => import('@/views/system/ToolList'), component: () => import('@/views/system/ToolList'),
// meta: { title: '小工具', hiddenHeaderContent: false } meta: { title: '小工具', hiddenHeaderContent: false }
// }, },
{ {
path: '/system/about', path: '/system/about',
name: 'About', name: 'About',

View File

@ -14,11 +14,11 @@
:bordered="false" :bordered="false"
:bodyStyle="{ padding: '16px' }" :bodyStyle="{ padding: '16px' }"
> >
<p>支持 Hexo/Jekyll 导入并解析元数据</p> <p>支持 Hexo/Jekyll 文章导入并解析元数据</p>
<a-button <a-button
type="primary" type="primary"
style="float:right" style="float:right"
@click="importMarkDown" @click="handleImportMarkdown"
>导入</a-button> >导入</a-button>
</a-card> </a-card>
</a-col> </a-col>
@ -28,31 +28,35 @@
v-model="markdownUpload" v-model="markdownUpload"
:footer="null" :footer="null"
> >
<a-upload-dragger <upload
name="file" name="files"
:multiple="true" multiple
action="//jsonplaceholder.typicode.com/posts/" accept="application/markdown"
:uploadHandler="uploadHandler"
@change="handleChange" @change="handleChange"
> >
<p class="ant-upload-drag-icon"> <p class="ant-upload-drag-icon">
<a-icon type="inbox" /> <a-icon type="inbox" />
</p> </p>
<p class="ant-upload-text">拖拽或点击选择 MarkDown 文件到此处</p> <p class="ant-upload-text">拖拽或点击选择 Markdown 文件到此处</p>
</a-upload-dragger> <p class="ant-upload-hint">支持多个文件同时上传</p>
</upload>
</a-modal> </a-modal>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import backupApi from '@/api/backup'
export default { export default {
data() { data() {
return { return {
markdownUpload: false markdownUpload: false,
uploadHandler: backupApi.importMarkdown
} }
}, },
methods: { methods: {
importMarkDown() { handleImportMarkdown() {
this.markdownUpload = true this.markdownUpload = true
}, },
handleChange(info) { handleChange(info) {
@ -61,9 +65,9 @@ export default {
console.log(info.file, info.fileList) console.log(info.file, info.fileList)
} }
if (status === 'done') { if (status === 'done') {
this.$message.success(`${info.file.name} file uploaded successfully.`) this.$message.success(`${info.file.name} 导入成功`)
} else if (status === 'error') { } else if (status === 'error') {
this.$message.error(`${info.file.name} file upload failed.`) this.$message.error(`${info.file.name} 导入失败`)
} }
} }
} }