Commit 7607aed0 authored by zhengke's avatar zhengke

no message

parent f9a9f0d3
import { fa } from 'element-plus/es/locale';
import { ref } from 'vue'
import { storeToRefs } from 'pinia'
import { trim } from 'lodash'
......@@ -32,7 +31,6 @@ export default () => {
const { isCoverImg } = storeToRefs(useScreenStore())
const exporting = ref(false)
// 导出图片
const exportImage = (domRef: HTMLElement, format: string, quality: number, ignoreWebfont = true) => {
exporting.value = true
......@@ -52,8 +50,9 @@ export default () => {
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('导出图片失败')
......
......@@ -8,6 +8,7 @@ export interface ScreenState {
isModel: boolean,
ConfigId:number,
TemplateType: [],
TemplateDataSource: [],
CoverImg: any,
isCoverImg: boolean,
}
......@@ -17,10 +18,11 @@ export const useScreenStore = defineStore('screen', {
screening: false, // 是否进入放映状态
market: true,
model: 0, // 是否有新增修改模版权限
isModel: false,// 该团是否存在模版
isModel: false, // 该团是否存在模版
ConfigId: 0,
TemplateType: [],
CoverImg: null,
TemplateType: [], // 数据源分类
TemplateDataSource: [], // 所有数据源
CoverImg: null, // 封面图
isCoverImg: false, // 封面
}),
......@@ -47,11 +49,13 @@ export const useScreenStore = defineStore('screen', {
this.TemplateType = TemplateType
},
setCoverImg(CoverImg: any) {
console.log(CoverImg, '-------')
this.CoverImg = CoverImg
},
setIsCoverImg(isCoverImg: boolean) {
this.isCoverImg = isCoverImg
},
setTemplateDataSource(TemplateDataSource: []) {
this.TemplateDataSource = TemplateDataSource
}
},
})
\ No newline at end of file
......@@ -181,7 +181,7 @@ const UploadPsd = () => {
// 新增修改模版
const SetTripTemplateSlide = async () => {
console.log(JSON.parse(queryObj.value.TempData),'--------')
// console.log(JSON.parse(queryObj.value.TempData),'--------')
try {
console.log(queryObj.value,'新增修改模版---')
let TemplateRes = await ConfigService.SetTripTemplateSlide(queryObj.value);
......@@ -218,7 +218,7 @@ const setTemplate = async () =>{
// console.log(JSON.stringify(slides.value),'----保存接口',queryObj.value)
if(model.value&&userInfo.value.IsEditTripTemplate==1){
if(CoverImg&&CoverImg.value) queryObj.value.CoverImg = CoverImg.value
if(queryObj.value.Title==''||!queryObj.value.LineId||!queryObj.value.LtId
||queryObj.value.CoverImg==''
||queryObj.value.CountryName==''||queryObj.value.SeasonName==''
......
......@@ -13,7 +13,7 @@
</div>
<div class="configs">
<div class="row">
<div class="title">导出格式:</div>
<div class="title">{{isCoverImg?'生成格式:':'导出格式:'}}</div>
<RadioGroup
class="config-item"
v-model:value="format"
......@@ -23,7 +23,7 @@
</RadioGroup>
</div>
<div class="row">
<div class="title">导出范围:</div>
<div class="title">{{isCoverImg?'生成范围:':'导出范围:'}}</div>
<RadioGroup
class="config-item"
v-model:value="rangeType"
......@@ -65,18 +65,19 @@
</div>
<div class="btns">
<Button class="btn export" type="primary" @click="expImage()">导出图片</Button>
<Button class="btn export" type="primary" @click="expImage()">
{{isCoverImg?'生成封面':'导出图片'}}</Button>
<Button class="btn close" @click="emit('close')">关闭</Button>
</div>
<FullscreenSpin :loading="exporting" tip="正在导出..." />
<FullscreenSpin :loading="exporting" :tip="isCoverImg?'正在生成...':'正在导出...'" />
</div>
</template>
<script lang="ts" setup>
import { computed, ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useSlidesStore } from '@/store'
import { useSlidesStore, useScreenStore } from '@/store'
import useExport from '@/hooks/useExport'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
......@@ -91,8 +92,9 @@ const emit = defineEmits<{
(event: 'close'): void
}>()
const { slides, currentSlide } = storeToRefs(useSlidesStore())
const { isCoverImg } = storeToRefs(useScreenStore())
const imageThumbnailsRef = ref<HTMLElement>()
const rangeType = ref<'all' | 'current' | 'custom'>('current')
......
......@@ -7,7 +7,7 @@
@update:value="key => setDialogForExport(key as DialogForExportTypes)"
/>
<div class="content">
<component :is="currentDialogComponent" @close="setDialogForExport('')"></component>
<component :is="currentDialogComponent" @close="setDialogForExport(''),setDialogIsCoverImg()"></component>
</div>
</div>
</template>
......@@ -15,7 +15,7 @@
<script lang="ts" setup>
import { computed } from 'vue'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store'
import { useMainStore, useScreenStore } from '@/store'
import type { DialogForExportTypes } from '@/types/export'
import ExportImage from './ExportImage.vue'
......@@ -30,11 +30,17 @@ interface TabItem {
label: string
}
const isCoverImgStore = useScreenStore()
const mainStore = useMainStore()
const { dialogForExport } = storeToRefs(mainStore)
const { isCoverImg } = storeToRefs(isCoverImgStore)
const setDialogForExport = mainStore.setDialogForExport
const setDialogIsCoverImg = () => {
isCoverImgStore.setIsCoverImg(false)
}
const tabs: TabItem[] = [
{ key: 'pptist', label: '导出 pptist 文件' },
{ key: 'pptx', label: '导出 PPTX' },
......@@ -51,8 +57,8 @@ const currentDialogComponent = computed<unknown>(() => {
'pptx': ExportPPTX,
'pptist': ExportSpecificFile,
}
if (dialogForExport.value) return dialogMap[dialogForExport.value] || null
return null
if (dialogForExport.value) return dialogMap[dialogForExport.value] || isCoverImgStore.setIsCoverImg(false)
return isCoverImgStore.setIsCoverImg(false)
})
</script>
......
......@@ -11,7 +11,7 @@
<template #content>
<LayoutPool @select="slide => { createSlideByTemplate(slide); presetLayoutPopoverVisible = false }" />
</template>
<div class="select-btn"><IconDown /></div>
<div class="select-btn" v-if="layoutSlides.length>0"><IconDown /></div>
</Popover>
</div>
......@@ -69,13 +69,13 @@ const slidesStore = useSlidesStore()
const layoutsStore = useSlidesStore()
const keyboardStore = useKeyboardStore()
const { selectedSlidesIndex: _selectedSlidesIndex, thumbnailsFocus } = storeToRefs(mainStore)
const { slides, slideIndex } = storeToRefs(slidesStore)
const { slides, slideIndex, layoutSlides } = storeToRefs(slidesStore)
const { ctrlKeyState, shiftKeyState } = storeToRefs(keyboardStore)
const { slidesLoadLimit } = useLoadSlides()
const TemplateTypeStore = useScreenStore()
const { TemplateType } = storeToRefs(TemplateTypeStore)
const CoverImgStore = useScreenStore()
const { TemplateDataSource, TemplateType } = storeToRefs(TemplateTypeStore)
const selectedSlidesIndex = computed(() => [..._selectedSlidesIndex.value, slideIndex.value])
const presetLayoutPopoverVisible = ref(false)
......@@ -209,6 +209,7 @@ const GetTripTemplate = async () =>{
}
slidesStore.setSlides(newSlides)
layoutsStore.setLayouts(JSON.parse(JSON.stringify(newSlides)))
CoverImgStore.setCoverImg(dataRes.data.data.CoverImg)
queryObj.value.TempId = dataRes.data.data.TempId
queryObj.value.LineId = dataRes.data.data.LineId
queryObj.value.LineName = dataRes.data.data.LineName
......@@ -240,7 +241,7 @@ const changeSlideIndex = (index: number) => {
return index==indexs
})
datas.DataSource.pageType = newElements.pageType
let TemplateList = TemplateType.value.filter(x=>{
let TemplateList = TemplateDataSource.value.filter(x=>{
return x.FiledType==newElements.pageType
})
datas.DataSource.DataSourceList = []
......
......@@ -8,12 +8,16 @@
></div>
<div class="row">
<Button style="flex: 1;" @click="setDialogForExport('image')">
<span class="Required" v-if="!CoverImg">*</span>
{{CoverImg?'重新生成封面图':'生成封面图'}}
</Button>
</div>
</div>
<div class="row q-mt-md">
<Button style="flex: 1;" @click="AllDataSource()">数据源</Button>
<Button style="flex: 1;" @click="AllDataSource()">
<span class="Required" v-if="!CoverImg">*</span>
数据源
</Button>
</div>
<p class="q-mt-md"><span class="Required q-mr-md">*</span>页面类型:</p>
<div class="row wrap q-mt-md">
......@@ -123,7 +127,7 @@
const { slides, slideIndex } = storeToRefs(slidesStore)
const isCoverImgStore = useScreenStore()
const { TemplateType, CoverImg, isCoverImg } = storeToRefs(useScreenStore())
const { TemplateDataSource, TemplateType, CoverImg, isCoverImg } = storeToRefs(useScreenStore())
const mainStore = useMainStore()
const mainMenuVisible = ref(false)
......@@ -169,7 +173,7 @@
return slideIndex.value==indexs
})
datas.DataSource.DataSourceOverlay = !datas.DataSource.DataSourceOverlay
let TemplateList = TemplateType.value.filter(x=>{
let TemplateList = TemplateDataSource.value.filter(x=>{
return x.FiledType==newElements.pageType
})
datas.DataSource.DataSourceList = []
......@@ -184,9 +188,9 @@
FiledTypeStr: FiledTypeStr,
TemplateList: TemplateList,
TemplateDataSource: {
Content: slide.TemplateDataSource.Content?slide.TemplateDataSource.Content:'',
Name: slide.TemplateDataSource.Name?slide.TemplateDataSource.Name:'',
Id: slide.TemplateDataSource.Id?slide.TemplateDataSource.Id:null as Number
Content: slide.TemplateDataSource&&slide.TemplateDataSource.Content?slide.TemplateDataSource.Content:'',
Name: slide.TemplateDataSource&&slide.TemplateDataSource.Name?slide.TemplateDataSource.Name:'',
Id: slide.TemplateDataSource&&slide.TemplateDataSource.Id?slide.TemplateDataSource.Id:null as Number
},
}
if(Obj){
......
......@@ -78,6 +78,7 @@ const datas = reactive({
const slidesStore = useSlidesStore()
const TemplateTypeStore = useScreenStore()
const TempDataSourceStore = useScreenStore()
const { slides, slideIndex } = storeToRefs(slidesStore)
const { TemplateType } = storeToRefs(TemplateTypeStore)
const pageTypesList = ref([] as any)
......@@ -103,6 +104,7 @@ const GetTripFiled = async () =>{
}
})
TemplateTypeStore.setTemplateType(pageTypesList.value)
TempDataSourceStore.setTemplateDataSource(TemplateRes.data.data)
}
} catch (error) {
console.log("TemplateGetTripFiled", error);
......
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