Commit aba7228d authored by zhengke's avatar zhengke

优化 模版编辑 及销售行程返回调整

parent bfd93671
......@@ -72,7 +72,7 @@ import { reactive, ref, inject, onMounted, watch} from "vue";
import LineService from '@/services/LineService'
import ConfigService from '@/services/ConfigService'
import { useUserStore } from "@/store/user";
import { useSellTemplateStore } from '@/store'
import { useSellTemplateStore,useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
......@@ -86,6 +86,8 @@ import foote from '@/components/footer/index.vue';
import { noDataImg } from "@/utils/common";
const slidesStore = useSlidesStore()
const {
userInfo
} = storeToRefs(useUserStore())
......@@ -204,10 +206,14 @@ const getTemplate = async (item:any) => {
* 页面跳转
*/
const goToTemplate = (item: any) => {
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) slidesStore.ClearSlides()
let url = ''
if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType)
else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempId)
else if(model.value==1) url = managerTemplateLink(item.TempId,item.TemplateType)
else if(model.value==1) {
searchData.value.currentMenu = null
url = managerTemplateLink(item.TempId,item.TemplateType)
}
if(url!='') {
router.push({
path:url
......
......@@ -241,5 +241,20 @@ export const useSlidesStore = defineStore('slides', {
})
this.slides[slideIndex].elements = (elements as PPTElement[])
},
ClearSlides(){
this.slides = [
{
id: 'test-slide-1',
pageType: 1,
elements: [],
background: {
type: 'solid',
color: '#ffffff',
},
}
]
this.thumbnails = []
this.layoutSlides= []
}
},
})
\ No newline at end of file
......@@ -224,12 +224,6 @@ const { market, model, ConfigId, CoverImg, dataLoading, TempId, SourceLoading }
// 返回到首页 type 1 模版列表页 0 销售在线模版页
const goBack = (type:any) =>{
mainBackVisible.value = false
// if(model.value&&model.value!=2) {
// setTimeout(()=>{
// setNewDatas(type,1)
// },200)
// return
// }
ElMessageBox.confirm(
'退出此页面将清空当前数据,请谨慎操作?',
'提示',
......@@ -242,17 +236,16 @@ const goBack = (type:any) =>{
setNewDatas(type,0)
let path ='/'
const t = useSlidesStore().viewportRatio<0?1:2
// if(type!=0){
// if(model.value==2) path = `/market/create/${searchData.value.TemplateType==1?'trip':'ad'}`
// else if(model.value==0) path = `/market/op/${ConfigId.value}/$-{t}`
// else if(model.value==1) path = `/market`
// }
// console.log(path)
// router.push({path})
//console.log(model.value,)
if(model.value==0) {
path = `/market/op/${ConfigId.value}/${t}`
router.push({path})
}else if(model.value&&searchData.value.currentMenu){
if(type) path = `/market/create`
else {
path = `/space/${searchData.value.currentMenu}`
searchData.value.currentMenu = null
}
router.push({path})
}
else window.history.back()
......@@ -260,17 +253,6 @@ const goBack = (type:any) =>{
}
// 返回是否清空数据
const setNewDatas = (type,i) => {
let list = [
{
id: 'test-slide-1',
pageType: 1,
elements: [],
background: {
type: 'solid',
color: '#ffffff',
},
}
]
if(type) {
marketStore.setMarket(true)
if(model.value==2) {
......@@ -281,17 +263,13 @@ const setNewDatas = (type,i) => {
searchData.value.TempId2 = 0
searchData.value.sellId = 0
searchData.value.sellTempId = 0
searchData.value.TemplateType = 0
SalesBackStore.setSalesBack(0)
SalesEditorStore.setSalesEditor(0)
}
searchData.value.TempId = 0
// i 1模版权限 0无模版权限
if(SalesBack.value==0&&model.value!=2){
slidesStore.setSlides(list)
if(!i)slidesStore.setThumbnails([])
layoutsStore.setLayouts([])
CoverImgStore.setCoverImg(null)
}
CoverImgStore.setCoverImg(null)
}
// 导入PSD
const UploadPsdHandler = () => {
......
......@@ -396,6 +396,10 @@ const copySlidHandler = (slideIndex:number)=>{
// 获取行程模版数据
const GetTripTemplate = async () =>{
const loadingObj = ElLoading.service({
text:'正在渲染模版数据',
lock:true
})
// console.log(searchData.value.TempId,searchData.value.TempId2,TempId.value,searchData.value.sellTempId)
if(!searchData.value.TempId&&!searchData.value.TempId2&&!TempId.value&&!searchData.value.sellTempId&&searchData.value.ViewSlideshow) {
let list = [
......@@ -481,9 +485,7 @@ const GetTripTemplate = async () =>{
newSlides = newSlides.filter((x:Slide)=>!x.isTripItems)
}
setTimeout(()=>{
getColorShade(newSlides)
},500)
getColorShade(newSlides)
}
queryObj.value.TempId = dataRes.data.data.TempId
......@@ -508,6 +510,7 @@ const GetTripTemplate = async () =>{
VIEWPORT_SIZE.Value = 1754
VIEWPORT_VER_SIZE.Value = 1240
}
loadingObj.close()
if(ConfigId.value==0) return
if(TempId.value&&!searchData.value.TempId) await GetTripConfig()
if(model.value!=3) await GetTripFiledData()
......@@ -527,16 +530,20 @@ const generateUniqueId = () => {
// 获取是否深色
const getColorShade = async (newSlides:any) => {
let dark = false
let day = 0
// 根据集团渲染logo
if(tempDatas.value.GId!=userInfo.value.gid&&!searchData.value.isTeamManage){
for(let j=0;j<colorList.value.length;j++){
if (getRgbLevel(colorList.value[j].Color) > 50) dark = true
}
for(let i=0;i<newSlides.length;i++){
if(i>colorList.value.length-2) dark = false
if(i>colorList.value.length-2) {
dark = false
day = 1
}
let x = newSlides[i]
let eles = x.elements.filter(y=>y.layerName && y.layerName.indexOf('logo')!=-1)
let newElementsImg = await ResolveTripLogoHandler(eles,i,dark)
let newElementsImg = await ResolveTripLogoHandler(eles,i,dark,day)
let newElements = []
x.elements.forEach(y=>{
if(newElementsImg?.elements){
......@@ -560,7 +567,7 @@ const getColorShade = async (newSlides:any) => {
}
// 替换logo
const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =>{
const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false,day:Number) =>{
let elements = []
let tempNewSlide:any = null
let templateObj = JSON.parse(JSON.stringify(items))
......@@ -575,7 +582,8 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
if(scale==1) url = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) url = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale==6) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3&&!day) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3&&day) url = acquiesceLogo.value[2]
let newTempSize = await FileService.getImageSizeWithoutDownloading(url)
let width = 0
let height = 0
......
......@@ -215,7 +215,7 @@ import { reactive, ref, inject, onMounted, watch} from "vue";
import LineService from '@/services/LineService'
import ConfigService from '@/services/ConfigService'
import { useUserStore } from "@/store/user";
import { useSellTemplateStore } from '@/store'
import { useSellTemplateStore, useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
......@@ -231,6 +231,8 @@ import vipFooter from "@/components/home/vipFooter.vue";
import { noDataImg } from "@/utils/common";
const slidesStore = useSlidesStore()
const {
userInfo
} = storeToRefs(useUserStore())
......@@ -275,6 +277,7 @@ if(router.currentRoute.value.path.includes('create')) {
model.value=2
if(router.currentRoute.value.fullPath.indexOf('/ad')!=-1) TemplateType = 2
else if(router.currentRoute.value.fullPath.indexOf('/trip')!=-1) TemplateType = 1
else if(searchData.value.TemplateType) TemplateType = searchData.value.TemplateType
}else if(router.currentRoute.value.path.includes('op')) {
model.value=0
}
......@@ -375,6 +378,7 @@ const getTemplate = (item:any) => {
* 页面跳转
*/
const goToTemplate = (item: any) => {
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) slidesStore.ClearSlides()
let url = ''
if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType)
else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempId)
......
......@@ -127,16 +127,20 @@ const loadSliders = async ()=>{
// 获取是否深色
const getColorShade = async (newSlides:any) => {
let dark = false
let day = 0
// 根据集团渲染logo
if(tempDatas.value.AuthType<=1){
for(let j=0;j<colorList.value.length;j++){
if (getRgbLevel(colorList.value[j].Color) > 50) dark = true
}
for(let i=0;i<newSlides.length;i++){
if(i>colorList.value.length-2) dark = false
if(i>colorList.value.length-2) {
dark = false
day = 1
}
let x = newSlides[i]
let eles = x.elements.filter(y=>y.layerName && y.layerName.indexOf('logo')!=-1)
let newElementsImg = await ResolveTripLogoHandler(eles,i,dark)
let newElementsImg = await ResolveTripLogoHandler(eles,i,dark,day)
let newElements = []
x.elements.forEach(y=>{
if(newElementsImg?.elements){
......@@ -154,7 +158,7 @@ const getColorShade = async (newSlides:any) => {
}
const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =>{
const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false,day:Number) =>{
let elements = []
let tempNewSlide:any = null
let templateObj = JSON.parse(JSON.stringify(items))
......@@ -169,7 +173,8 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
if(scale==1) url = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) url = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale==6) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3&&!day) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(scale==3&&day) url = acquiesceLogo.value[2]
let newTempSize = await FileService.getImageSizeWithoutDownloading(url)
let width = 0
let height = 0
......
......@@ -42,7 +42,7 @@
<script setup lang="ts">
import { useUserStore } from '@/store/user';
import { storeToRefs } from 'pinia';
import { ref, watch } from 'vue';
import { ref, watch, inject } from 'vue';
import BrowsingHistory from './BrowsingHistory.vue'
import StarTarget from './StarTarget.vue'
import ShareList from './Share.vue';
......@@ -52,6 +52,7 @@ import { Plus,ArrowDown,Clock,Star,Share,Picture,Management,Delete,Setting } fro
import { useRouter } from 'vue-router';
import { openNewBlank } from '@/utils/common';
import { useSellTemplateStore } from '@/store';
import { injectKeyTemplate } from '@/types/injectKey'
const router = useRouter();
const sellStore = useSellTemplateStore()
......@@ -61,7 +62,8 @@ const {SaleSearchPosition} = storeToRefs(sellStore)
const currentMenu = ref<number>(0)
const position = ref<{FileId:number,FileType:1|2,Position:{FileId:number,FileName:string}[]}|null>(null)
const searchData = ref({} as any)
searchData.value = inject(injectKeyTemplate)
const openMarketHandler = (type:string='') =>{
openNewBlank(`/market/create${type}`)
......@@ -69,6 +71,7 @@ const openMarketHandler = (type:string='') =>{
const setCurrentMenuHandler=(i:number)=>{
currentMenu.value=i
searchData.value.currentMenu = i
}
const initPageHandler = ()=>{
......@@ -82,6 +85,7 @@ const initPageHandler = ()=>{
currentMenu.value = parseInt(router.currentRoute.value.params.current.toString())
}
currentMenu.value = currentMenu.value>4||currentMenu.value<-1?0:currentMenu.value
searchData.value.currentMenu = currentMenu.value
}
watch(() => router.currentRoute.value.path, (toPath) => {
......
......@@ -177,7 +177,7 @@ import { reactive, ref, inject, onMounted, watch} from "vue";
import LineService from '@/services/LineService'
import ConfigService from '@/services/ConfigService'
import { useUserStore } from "@/store/user";
import { useSellTemplateStore } from '@/store'
import { useSellTemplateStore,useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
......@@ -191,6 +191,8 @@ import { VIEWPORT_SIZE, VIEWPORT_VER_SIZE } from '@/configs/canvas'
import { noDataImg } from "@/utils/common";
const slidesStore = useSlidesStore()
const {
userInfo
} = storeToRefs(useUserStore())
......@@ -454,16 +456,15 @@ const getTemplate = async (item:any) => {
* 页面跳转
*/
const goToTemplate = (item: any) => {
let url = ''
// if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType)
// else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempId)
// else if(model.value==1) url = managerTemplateLink(item.TempId,item.TemplateType)
url = managerTemplateLink(item.TempId,item.TemplateType)
if(url!='') {
router.push({
path:url
})
}
searchData.value.currentMenu = null
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) slidesStore.ClearSlides()
let url = ''
url = managerTemplateLink(item.TempId,item.TemplateType)
if(url!='') {
router.push({
path:url
})
}
}
const search = () => {
......
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