Commit 685435b3 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/viitto/pptist

parents bd6b6235 52182e89
......@@ -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({
......@@ -385,7 +384,6 @@ const setTemplate = async () =>{
})
}
if(queryObj.value.Title==''||!queryObj.value.LineId||queryObj.value.LineName==''
||queryObj.value.CoverImg==''
||queryObj.value.CountryName==''||queryObj.value.SeasonName==''
){
datas.loading = false
......@@ -434,9 +432,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&&slideIndex>=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,14 +183,15 @@
const slidesStore = useSlidesStore()
const { slides, slideIndex, viewportRatio } = storeToRefs(slidesStore)
const coverImgStore = useScreenStore()
const isCoverImgStore = useScreenStore()
const { model, ConfigId, TemplateDataSource, TemplateType, CoverImg, isCoverImg } = storeToRefs(useScreenStore())
const { model, ConfigId, TemplateDataSource, TemplateType, CoverImg, isCoverImg, TempId } = storeToRefs(useScreenStore())
const mainStore = useMainStore()
const mainMenuVisible = ref(false)
const FeatureImgRef = ref(null)
const { exportImage } = useExport()
const { exportFeatureImg } = useExport()
watch(() => datas.DataSource.pageType, (n,o) => {
......@@ -262,13 +264,36 @@
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)
queryObj.value.CoverImg = ''
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/${TempId.value}_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