Commit f518b4da authored by 罗超's avatar 罗超

修复字体上传后无法应用,修复无法重新上传

parent 2c35a49a
......@@ -56,7 +56,7 @@
</div>
<div ref="imgDiskRef" style="height: 420px;padding-top: 20px;">
<div class="CloudDisk-R-Center row" v-loading="loading">
<FileInput v-if="userInfo.it && (userInfo.ia || userInfo.ic)" :multiple="true" @change="files => insertImageElement(files)">
<!-- <FileInput v-if="userInfo.it && (userInfo.ia || userInfo.ic)" :multiple="true" @change="files => insertImageElement(files)">
<div class="CloudDisk-R-Box">
<div class="CloudDisk-R-Plus column items-center cusor-pointer">
<el-icon class="el-input__icon" size="30px" title="">
......@@ -65,7 +65,7 @@
<span>添加图片</span>
</div>
</div>
</FileInput>
</FileInput> -->
<template v-for="(item,index) in dataList">
<div class="CloudDisk-R-Box cursor-pointer"
......
......@@ -59,6 +59,7 @@
/>
</el-select>
<el-upload
ref="uploadFontRef"
v-loading="uploadingIndex==i"
:on-change="(uploadFile:any, uploadFiles:any)=> uploadFontHandler(uploadFile, uploadFiles,x.fontFamily)"
action=""
......@@ -118,6 +119,7 @@ const emit = defineEmits<{
(event: 'closed'): void
}>()
const uploadFontRef = ref()
const visibleStatus = ref(props.visible)
const upload = ref<UploadInstance>()
const isResolving = ref(false)
......@@ -174,7 +176,14 @@ const handleChange: UploadProps['onChange'] = (uploadFile, uploadFiles) => {
}
}
const clearFilesHandle =()=>{
if(uploadFontRef.value){
uploadFontRef.value[0].clearFiles()
}
}
const uploadFontHandler = async (uploadFile:any, uploadFiles:any, fontName:string) => {
const ns = uploadFile.name.toLowerCase().split('.')
const n = ns[ns.length-1]
const acceptFile = ['ttf','otf','woff']
......@@ -182,6 +191,7 @@ const uploadFontHandler = async (uploadFile:any, uploadFiles:any, fontName:strin
ElMessage.error({
message:`不支持此类文件上传,目前只支持${acceptFile.join(',')}等文件上传`
})
clearFilesHandle()
return;
}
uploadingIndex.value = fonts.value?.findIndex(x=>x.fontFamily==fontName)??-1
......@@ -192,6 +202,7 @@ const uploadFontHandler = async (uploadFile:any, uploadFiles:any, fontName:strin
} catch (error) {
ElMessage.error({message:'字体无法识别,请更换'})
uploadingIndex.value=-1
clearFilesHandle()
return
}
......@@ -199,6 +210,7 @@ const uploadFontHandler = async (uploadFile:any, uploadFiles:any, fontName:strin
if(flagIndex>0){
ElMessage.error({message:`${info.name} 字体已存在,请选择使用已有字体`})
uploadingIndex.value=-1
clearFilesHandle()
return
}
let url = await FileService.uploadToFontServerAsync(uploadFile?.raw)
......@@ -238,6 +250,7 @@ const uploadFontHandler = async (uploadFile:any, uploadFiles:any, fontName:strin
})
}
} catch (error) {
clearFilesHandle()
}
uploadingIndex.value=-1
}
......@@ -280,7 +293,8 @@ const resolveToSliderHandler = async()=>{
}
}
const replaceFontFamily = () => {
fonts.value?.forEach(item=>{
const replaceList = fonts.value?.filter(x=>x.selectedFont&&x.selectedFont!='')??[]
replaceList.forEach(item=>{
sliders.value.forEach(x => {
x.elements.forEach((y:any)=>{
if(y.defaultFontName && y.defaultFontName.indexOf(item.fontFamily)!=-1){
......
......@@ -133,7 +133,7 @@ export const useFontStore = defineStore('fonts',{
try {
const response = await FontService.SetFontAsync(data)
if(response.data.resultCode == ApiResult.SUCCESS){
this.fonts.push(item)
this.fonts.push(response.data.data)
this.formatFonts.push({
label:item.label,
value:item.fontFamily,
......
......@@ -150,11 +150,12 @@ export const useSlidesStore = defineStore('slides', {
let iFonts:string[] = []
var regex = /(?<=font-family:\s*).*?(?=;)/g
slides.forEach(x=>{
x.elements&&x.elements.forEach(y=>{
let temp = JSON.parse(JSON.stringify(y))
if(temp.defaultFontName) iFonts.push(temp.defaultFontName)
if(temp.content){
let tempFonts = temp.content.match(regex)
x.elements&&x.elements.forEach((y:any)=>{
if(y.defaultFontName) {
iFonts.push(y.defaultFontName)
}
if(y.content){
let tempFonts = y.content.match(regex)
if(tempFonts){
tempFonts.forEach((item:string) => {
let f = item.replaceAll("'",'').replaceAll('"',"").trim().split(',')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment