Commit 745bc7a1 authored by zhengke's avatar zhengke

封面图上传调整

parent a64bb7a7
......@@ -38,7 +38,7 @@ export default () => {
const toImage = format === 'png' ? toPng : toJpeg
const foreignObjectSpans = domRef.querySelectorAll('foreignObject [xmlns]')
foreignObjectSpans.forEach(spanRef => spanRef.removeAttribute('xmlns'))
return new Promise<boolean>((resolve)=>{
return new Promise<any>((resolve)=>{
setTimeout(() => {
const config: ExportImageConfig = {
quality,
......@@ -47,13 +47,18 @@ export default () => {
if (ignoreWebfont) config.fontEmbedCSS = ''
toImage(domRef, config).then(dataUrl => {
const obj = {
index: i,
url: dataUrl
if (isCoverImg.value) {
coverImgStore.setCoverImg('')
resolve(dataUrl)
}else{
const obj = {
index: i,
url: dataUrl
}
FeatureImg.value.push(obj)
FeatureImgStore.setFeatureImg(JSON.parse(JSON.stringify(FeatureImg.value)))
resolve(true)
}
FeatureImg.value.push(obj)
FeatureImgStore.setFeatureImg(JSON.parse(JSON.stringify(FeatureImg.value)))
resolve(true)
}).catch(() => {
// message.error('导出图片失败')
resolve(false)
......@@ -63,7 +68,6 @@ export default () => {
}
// 导出图片
const exportImage = (domRef: HTMLElement, format: string, quality: number, ignoreWebfont = true) => {
......@@ -81,12 +85,7 @@ export default () => {
toImage(domRef, config).then(dataUrl => {
exporting.value = false
if (isCoverImg.value) {
coverImgStore.setCoverImg(dataUrl)
isCoverImgStore.setIsCoverImg(false)
} else {
saveAs(dataUrl, `${title.value}.${format}`)
}
saveAs(dataUrl, `${title.value}.${format}`)
}).catch(() => {
exporting.value = false
message.error('导出图片失败')
......
......@@ -374,8 +374,7 @@ const setTemplate = async () =>{
delete y.TemplateList
})
})
if(CoverImg&&CoverImg.value) queryObj.value.CoverImg = CoverImg.value
else {
if(!queryObj.value.CoverImg) {
datas.loading = false
mainStore.setToolbarState(ToolbarStates.EL_TEMPLATEDATA)
return ElMessage({
......@@ -434,9 +433,9 @@ const testHandler = async ()=>{
for (let i = 0; i < FeatureImgRef.value.length; i++) {
let result = await exportFeatureImg(FeatureImgRef.value[i], 'jpeg', 1, false, i)
if(!result){
// console.log('异常')
// datas.loading = false
// break
console.log('异常')
datas.loading = false
break
}
}
setFeatureImgList()
......
......@@ -2,7 +2,7 @@
<div class="q-mt-xs bg-white q-pa-xs rounded ElementTemplateData">
<div class="column text-mdall">
<div class="column">
<template v-if="CoverImg">
<template v-if="CoverImg&&!isCoverImg">
<p>封面图:</p>
<div
class="origin-image q-mt-md"
......@@ -129,7 +129,7 @@
<!-- 生成封面图 -->
<div style="opacity: 0;position: absolute;left: 100px;top: 0;bottom: 0;z-index: -1;"
v-if="isCoverImg">
v-if="model&&slides.length>0">
<div class="export-img-dialog">
<div class="thumbnails-view">
<div class="thumbnails" ref="FeatureImgRef">
......@@ -157,6 +157,7 @@
import { getHtmlPlainText } from '@/utils/common'
import useExport from '@/hooks/useExport'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
import AliyunUpload from '@/utils/upload/aliyun'
const datas = reactive({
DataSource:{},
......@@ -182,6 +183,7 @@
const slidesStore = useSlidesStore()
const { slides, slideIndex, viewportRatio } = storeToRefs(slidesStore)
const coverImgStore = useScreenStore()
const isCoverImgStore = useScreenStore()
const { model, ConfigId, TemplateDataSource, TemplateType, CoverImg, isCoverImg } = storeToRefs(useScreenStore())
......@@ -189,7 +191,7 @@
const mainMenuVisible = ref(false)
const FeatureImgRef = ref(null)
const { exportImage } = useExport()
const { exportFeatureImg } = useExport()
watch(() => datas.DataSource.pageType, (n,o) => {
......@@ -262,13 +264,35 @@
inputValue.value = ''
}
const setDialogForExport = (type: DialogForExportTypes) => {
const dataURLtoFile = (dataurl:string, filename:string) => {
let arr = dataurl.split(",")
let mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
const setDialogForExport = async (type: DialogForExportTypes) => {
// mainStore.setDialogForExport(type)
mainMenuVisible.value = false
isCoverImgStore.setIsCoverImg(true)
setTimeout(()=>{
exportImage(FeatureImgRef.value, 'png', 1, false)
},300)
let datas = await exportFeatureImg(FeatureImgRef.value, 'jpeg', 1, false,0)
if(datas){
let name = new Date().getTime()+".jpg"
const file = dataURLtoFile(datas, name)
let result = AliyunUpload.UploadAsync(file,`Feature/CoverImg`)
result.then(res=>{
if(res) {
coverImgStore.setCoverImg(res)
isCoverImgStore.setIsCoverImg(false)
queryObj.value.CoverImg = CoverImg.value
}
})
}
}
const setCountryValue = () =>{
......
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