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 () => { ...@@ -38,7 +38,7 @@ export default () => {
const toImage = format === 'png' ? toPng : toJpeg const toImage = format === 'png' ? toPng : toJpeg
const foreignObjectSpans = domRef.querySelectorAll('foreignObject [xmlns]') const foreignObjectSpans = domRef.querySelectorAll('foreignObject [xmlns]')
foreignObjectSpans.forEach(spanRef => spanRef.removeAttribute('xmlns')) foreignObjectSpans.forEach(spanRef => spanRef.removeAttribute('xmlns'))
return new Promise<boolean>((resolve)=>{ return new Promise<any>((resolve)=>{
setTimeout(() => { setTimeout(() => {
const config: ExportImageConfig = { const config: ExportImageConfig = {
quality, quality,
...@@ -47,13 +47,18 @@ export default () => { ...@@ -47,13 +47,18 @@ export default () => {
if (ignoreWebfont) config.fontEmbedCSS = '' if (ignoreWebfont) config.fontEmbedCSS = ''
toImage(domRef, config).then(dataUrl => { toImage(domRef, config).then(dataUrl => {
const obj = { if (isCoverImg.value) {
index: i, coverImgStore.setCoverImg('')
url: dataUrl 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(() => { }).catch(() => {
// message.error('导出图片失败') // message.error('导出图片失败')
resolve(false) resolve(false)
...@@ -63,7 +68,6 @@ export default () => { ...@@ -63,7 +68,6 @@ export default () => {
} }
// 导出图片 // 导出图片
const exportImage = (domRef: HTMLElement, format: string, quality: number, ignoreWebfont = true) => { const exportImage = (domRef: HTMLElement, format: string, quality: number, ignoreWebfont = true) => {
...@@ -81,12 +85,7 @@ export default () => { ...@@ -81,12 +85,7 @@ export default () => {
toImage(domRef, config).then(dataUrl => { toImage(domRef, config).then(dataUrl => {
exporting.value = false exporting.value = false
if (isCoverImg.value) { saveAs(dataUrl, `${title.value}.${format}`)
coverImgStore.setCoverImg(dataUrl)
isCoverImgStore.setIsCoverImg(false)
} else {
saveAs(dataUrl, `${title.value}.${format}`)
}
}).catch(() => { }).catch(() => {
exporting.value = false exporting.value = false
message.error('导出图片失败') message.error('导出图片失败')
......
...@@ -374,8 +374,7 @@ const setTemplate = async () =>{ ...@@ -374,8 +374,7 @@ const setTemplate = async () =>{
delete y.TemplateList delete y.TemplateList
}) })
}) })
if(CoverImg&&CoverImg.value) queryObj.value.CoverImg = CoverImg.value if(queryObj.value.CoverImg=='') {
else {
datas.loading = false datas.loading = false
mainStore.setToolbarState(ToolbarStates.EL_TEMPLATEDATA) mainStore.setToolbarState(ToolbarStates.EL_TEMPLATEDATA)
return ElMessage({ return ElMessage({
...@@ -385,7 +384,6 @@ const setTemplate = async () =>{ ...@@ -385,7 +384,6 @@ const setTemplate = async () =>{
}) })
} }
if(queryObj.value.Title==''||!queryObj.value.LineId||queryObj.value.LineName=='' if(queryObj.value.Title==''||!queryObj.value.LineId||queryObj.value.LineName==''
||queryObj.value.CoverImg==''
||queryObj.value.CountryName==''||queryObj.value.SeasonName=='' ||queryObj.value.CountryName==''||queryObj.value.SeasonName==''
){ ){
datas.loading = false datas.loading = false
...@@ -434,9 +432,9 @@ const testHandler = async ()=>{ ...@@ -434,9 +432,9 @@ const testHandler = async ()=>{
for (let i = 0; i < FeatureImgRef.value.length; i++) { for (let i = 0; i < FeatureImgRef.value.length; i++) {
let result = await exportFeatureImg(FeatureImgRef.value[i], 'jpeg', 1, false, i) let result = await exportFeatureImg(FeatureImgRef.value[i], 'jpeg', 1, false, i)
if(!result){ if(!result){
// console.log('异常') console.log('异常')
// datas.loading = false datas.loading = false
// break break
} }
} }
setFeatureImgList() setFeatureImgList()
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="q-mt-xs bg-white q-pa-xs rounded ElementTemplateData"> <div class="q-mt-xs bg-white q-pa-xs rounded ElementTemplateData">
<div class="column text-mdall"> <div class="column text-mdall">
<div class="column"> <div class="column">
<template v-if="CoverImg"> <template v-if="CoverImg&&!isCoverImg">
<p>封面图:</p> <p>封面图:</p>
<div <div
class="origin-image q-mt-md" class="origin-image q-mt-md"
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
<!-- 生成封面图 --> <!-- 生成封面图 -->
<div style="opacity: 0;position: absolute;left: 100px;top: 0;bottom: 0;z-index: -1;" <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="export-img-dialog">
<div class="thumbnails-view"> <div class="thumbnails-view">
<div class="thumbnails" ref="FeatureImgRef"> <div class="thumbnails" ref="FeatureImgRef">
...@@ -157,6 +157,7 @@ ...@@ -157,6 +157,7 @@
import { getHtmlPlainText } from '@/utils/common' import { getHtmlPlainText } from '@/utils/common'
import useExport from '@/hooks/useExport' import useExport from '@/hooks/useExport'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue' import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
import AliyunUpload from '@/utils/upload/aliyun'
const datas = reactive({ const datas = reactive({
DataSource:{}, DataSource:{},
...@@ -182,14 +183,15 @@ ...@@ -182,14 +183,15 @@
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { slides, slideIndex, viewportRatio } = storeToRefs(slidesStore) const { slides, slideIndex, viewportRatio } = storeToRefs(slidesStore)
const coverImgStore = useScreenStore()
const isCoverImgStore = 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 mainStore = useMainStore()
const mainMenuVisible = ref(false) const mainMenuVisible = ref(false)
const FeatureImgRef = ref(null) const FeatureImgRef = ref(null)
const { exportImage } = useExport() const { exportFeatureImg } = useExport()
watch(() => datas.DataSource.pageType, (n,o) => { watch(() => datas.DataSource.pageType, (n,o) => {
...@@ -262,13 +264,36 @@ ...@@ -262,13 +264,36 @@
inputValue.value = '' 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) // mainStore.setDialogForExport(type)
queryObj.value.CoverImg = ''
mainMenuVisible.value = false mainMenuVisible.value = false
isCoverImgStore.setIsCoverImg(true) isCoverImgStore.setIsCoverImg(true)
setTimeout(()=>{ let datas = await exportFeatureImg(FeatureImgRef.value, 'jpeg', 1, false,0)
exportImage(FeatureImgRef.value, 'png', 1, false) if(datas){
},300) 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 = () =>{ 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