From e80b769e120e8a623623e8c714e4c7e98c7954c8 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Mon, 31 Aug 2020 20:48:22 +0800 Subject: [PATCH] feat: update configuration --- src/api/file.js | 55 +++++++++++-------- src/assets/scripts/util.js | 4 +- .../CodemirrorEditor/uploadImgDialog.vue | 30 +++++----- 3 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/api/file.js b/src/api/file.js index c68d946..397c16b 100644 --- a/src/api/file.js +++ b/src/api/file.js @@ -1,5 +1,7 @@ import fetch from './fetch'; -import { v4 as uuidv4 } from 'uuid'; +import { + v4 as uuidv4 +} from 'uuid'; const fileUploadConfig = { username: 'filess', repo: 'images', @@ -15,32 +17,41 @@ const fileUploadConfig = { ] } +function getConfiguration() { + const imgHost = localStorage.getItem("ImgHost") || 'default' + + // default + let token = fileUploadConfig.accessToken[Math.floor(Math.random() * fileUploadConfig.accessToken.length)].replace('doocsmd', '') + let username = fileUploadConfig.username + let repo = fileUploadConfig.repo + + // GitHub + if (imgHost === 'github' && localStorage.getItem("GitHubConfig")) { + const githubConfg = JSON.parse(localStorage.getItem("GitHubConfig")) + const repoUrl = githubConfg.repo.replace("https://github.com/", "").replace("http://github.com/", "").replace("github.com/", "").split("/") + token = githubConfg.accessToken + username = repoUrl[0] + repo = repoUrl[1] + } + return { + username, + repo, + token + } +} + function fileUpload(content, filename) { const date = new Date(); const dir = date.getFullYear() + '/' + (date.getMonth() + 1).toString().padStart(2, '0') + '/' + date.getDate().toString().padStart(2, '0'); const uuid = uuidv4(); const dateFilename = new Date().getTime() + '-' + uuid + '.' + filename.split('.')[1]; - const imgHost = localStorage.getItem("ImgHost") || 'default' - - let token = '' - let username = '' - let repo = '' - - if (imgHost === 'default') { - token = fileUploadConfig.accessToken[Math.floor(Math.random() * fileUploadConfig.accessToken.length)].replace('doocsmd', ''); - username = fileUploadConfig.username - repo = fileUploadConfig.repo - } - - if (imgHost === 'github' && localStorage.getItem("GitHubConfig")) { - const githubConfg = JSON.parse(localStorage.getItem("GitHubConfig")); - token = githubConfg.accessToken - username = githubConfg.username - repo = githubConfg.repo - } - - const url = `https://api.github.com/repos/${username}/${repo}/contents/${dir}/${dateFilename}`; + const { + username, + repo, + token + } = getConfiguration() + const url = `https://api.github.com/repos/${username}/${repo}/contents/${dir}/${dateFilename}` return fetch({ url, @@ -58,4 +69,4 @@ function fileUpload(content, filename) { export default { fileUpload -}; \ No newline at end of file +}; diff --git a/src/assets/scripts/util.js b/src/assets/scripts/util.js index 18339cf..9273229 100644 --- a/src/assets/scripts/util.js +++ b/src/assets/scripts/util.js @@ -179,7 +179,6 @@ export function css2json(css) { */ export function saveEditorContent(editor, name) { const content = editor.getValue(0) - if (content) { localStorage.setItem(name, content) } else { @@ -198,7 +197,6 @@ export function formatDoc(content) { export function fixCodeWhiteSpace(value = 'pre') { const preDomList = document.getElementsByClassName('code__pre'); - if (preDomList.length > 0) { preDomList.forEach(pre => { pre.style.whiteSpace = value; @@ -217,4 +215,4 @@ export function downLoadMD(doc) { document.body.appendChild(downLink); downLink.click(); document.body.removeChild(downLink); -} \ No newline at end of file +} diff --git a/src/components/CodemirrorEditor/uploadImgDialog.vue b/src/components/CodemirrorEditor/uploadImgDialog.vue index 767dd24..d4cbb45 100644 --- a/src/components/CodemirrorEditor/uploadImgDialog.vue +++ b/src/components/CodemirrorEditor/uploadImgDialog.vue @@ -26,7 +26,6 @@ 将文件拖到此处,或 点击上传 - @@ -35,21 +34,15 @@ ref="form" :model="formGitHub" label-position="right" - label-width="80px" + label-width="100px" > - - - - - + + 如何获取 GitHub token? - 保存配置 @@ -72,10 +65,8 @@ export default { data() { return { formGitHub: { - username: "", repo: "", accessToken: "", - // useCDN: true, }, options: [ { @@ -105,8 +96,17 @@ export default { localStorage.setItem("ImgHost", this.imgHost); }, onSubmit() { - console.log("submit github params:", this.formGitHub); + if (!(this.formGitHub.repo && this.formGitHub.accessToken)) { + const blankElement = this.formGitHub.repo ? "token" : "GitHub 仓库" + this.$message({ + showClose: true, + message: `参数「​${blankElement}」不能为空`, + type: "error", + }); + return; + } localStorage.setItem("GitHubConfig", JSON.stringify(this.formGitHub)); + console.log("submit github params:", this.formGitHub); this.$message({ message: "保存成功", type: "success", @@ -137,8 +137,8 @@ export default { validateConfig() { switch (this.imgHost) { case "github": - const { username, repo, accessToken } = this.formGitHub; - if (!username || !repo || !accessToken) { + const { repo, accessToken } = this.formGitHub; + if (!repo || !accessToken) { this.$message.error("未配置 GitHub 参数"); return false; }