feat: 系统配置-基础配置 logo 及 favicon 改为 base64 存储

This commit is contained in:
kils
2024-07-31 02:21:16 +00:00
committed by Charles7c
parent bad6e30e41
commit 881c1ee1e4
2 changed files with 36 additions and 16 deletions

View File

@@ -261,3 +261,21 @@ export const copyText = (text: any) => {
document.body.removeChild(textarea)
Message.success('复制成功')
}
/** @desc 文件的转换base64 */
export const fileToBase64 = (file: File): Promise<string> => {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = () => {
if (reader.result) {
resolve(reader.result.toString())
} else {
reject(new Error('文件转base64失败'))
}
}
reader.onerror = (error) => {
reject(error)
}
reader.readAsDataURL(file)
})
}

View File

@@ -106,11 +106,11 @@ import {
type SiteConfig,
listOption,
resetOptionValue,
updateOption,
uploadFile
updateOption
} from '@/apis'
import { useAppStore } from '@/stores'
import { useForm } from '@/hooks'
import { fileToBase64 } from '@/utils'
defineOptions({ name: 'BasicSetting' })
@@ -212,15 +212,16 @@ const onResetValue = () => {
// 上传 favicon
const handleUploadFavicon = (options: RequestOption) => {
const controller = new AbortController()
; (async function requestWrap() {
const { onProgress, onError, onSuccess, fileItem, name = 'file' } = options
;(async function requestWrap() {
const { onProgress, onError, onSuccess, fileItem } = options
onProgress(20)
const formData = new FormData()
formData.append(name as string, fileItem.file as Blob)
uploadFile(formData)
if (!fileItem.file) {
return
}
fileToBase64(fileItem.file).then()
.then((res) => {
onSuccess(res)
form.SITE_FAVICON = res.data.url
onSuccess()
form.SITE_FAVICON = res
Message.success('上传成功')
})
.catch((error) => {
@@ -242,15 +243,16 @@ const handleChangeFavicon = (_: any, currentFile: any) => {
// 上传 Logo
const handleUploadLogo = (options: RequestOption) => {
const controller = new AbortController()
; (async function requestWrap() {
const { onProgress, onError, onSuccess, fileItem, name = 'file' } = options
;(async function requestWrap() {
const { onProgress, onError, onSuccess, fileItem } = options
onProgress(20)
const formData = new FormData()
formData.append(name as string, fileItem.file as Blob)
uploadFile(formData)
if (!fileItem.file) {
return
}
fileToBase64(fileItem.file).then()
.then((res) => {
onSuccess(res)
form.SITE_LOGO = res.data.url
onSuccess()
form.SITE_LOGO = res
Message.success('上传成功')
})
.catch((error) => {