Commit 8ce7b529 authored by zhengke's avatar zhengke

优化 销售 返回上一页

parent 88d6c117
import { fa } from 'element-plus/es/locale'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
export interface SalesState { export interface SalesState {
SalesEditor: number, SalesEditor: number,
SalesBack: number,
} }
export const useSellTemplate = defineStore('sales', { export const useSellTemplate = defineStore('sales', {
state: (): SalesState => ({ state: (): SalesState => ({
SalesEditor: 0, // 1 新增 2编辑 SalesEditor: 0, // 1 新增 2编辑
SalesBack: 0,// 0
}), }),
actions: { actions: {
setSalesEditor(SalesEditor: number) { setSalesEditor(SalesEditor: number) {
this.SalesEditor = SalesEditor this.SalesEditor = SalesEditor
}, },
setSalesBack(SalesBack: number) {
this.SalesBack = SalesBack
},
}, },
}) })
\ No newline at end of file
...@@ -39,16 +39,16 @@ ...@@ -39,16 +39,16 @@
<Input <Input
class="title-input" class="title-input"
ref="titleInputRef" ref="titleInputRef"
v-model:value="queryObj.Title" v-model:value="titleValue"
@blur="handleUpdateTitle()" @blur="handleUpdateTitle()"
v-if="editingTitle" v-if="editingTitle"
></Input> ></Input>
<div <div
class="title-text" class="title-text"
@click="startEditTitle()" @click="startEditTitle()"
:title="queryObj.Title" :title="title"
v-else v-else
>{{ queryObj.Title }}</div> >{{ title }}</div>
</div> </div>
</div> </div>
...@@ -139,8 +139,9 @@ const mainStore = useMainStore() ...@@ -139,8 +139,9 @@ const mainStore = useMainStore()
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const layoutsStore = useSlidesStore() const layoutsStore = useSlidesStore()
const { title, slides, slideIndex, viewportRatio } = storeToRefs(slidesStore) const { title, slides, slideIndex, viewportRatio } = storeToRefs(slidesStore)
const { SalesEditor } = storeToRefs(useSellTemplate()) const { SalesEditor, SalesBack } = storeToRefs(useSellTemplate())
const SalesEditorStore = useSellTemplate() const SalesEditorStore = useSellTemplate()
const SalesBackStore = useSellTemplate()
const { enterScreening, enterScreeningFromStart } = useScreening() const { enterScreening, enterScreeningFromStart } = useScreening()
const { importSpecificFile, importPPTXFile, exporting } = useImport() const { importSpecificFile, importPPTXFile, exporting } = useImport()
const { resetSlides } = useSlideHandler() const { resetSlides } = useSlideHandler()
...@@ -190,14 +191,24 @@ const goBack = (type:any) =>{ ...@@ -190,14 +191,24 @@ const goBack = (type:any) =>{
}, },
} }
] ]
if((model.value&&model.value!=2)||!type) { if(model.value) {
setTimeout(()=>{ setTimeout(()=>{
searchData.value.TempId = 0
if(type) marketStore.setMarket(true) if(type) {
if(!type) SalesEditorStore.setSalesEditor(0) searchData.value.TempId2 = searchData.value.TempId
slidesStore.setSlides(list) searchData.value.TempId = 0
layoutsStore.setLayouts([]) marketStore.setMarket(true)
CoverImgStore.setCoverImg(null) SalesBackStore.setSalesBack(1)
}else {
searchData.value.TempId = 0
SalesBackStore.setSalesBack(0)
SalesEditorStore.setSalesEditor(0)
}
if(SalesBack.value==0){
slidesStore.setSlides(list)
layoutsStore.setLayouts([])
CoverImgStore.setCoverImg(null)
}
},200) },200)
return return
} }
...@@ -211,12 +222,22 @@ const goBack = (type:any) =>{ ...@@ -211,12 +222,22 @@ const goBack = (type:any) =>{
} }
).then(() => { ).then(() => {
searchData.value.TempId = 0 searchData.value.TempId = 0
if(type) marketStore.setMarket(true) if(type) {
if(!type) SalesEditorStore.setSalesEditor(0) searchData.value.TempId2 = searchData.value.TempId
slidesStore.setSlides(list) searchData.value.TempId = 0
slidesStore.setThumbnails([]) marketStore.setMarket(true)
layoutsStore.setLayouts([]) SalesBackStore.setSalesBack(1)
CoverImgStore.setCoverImg(null) }else {
searchData.value.TempId = 0
SalesBackStore.setSalesBack(0)
SalesEditorStore.setSalesEditor(0)
}
if(SalesBack.value==0){
slidesStore.setSlides(list)
slidesStore.setThumbnails([])
layoutsStore.setLayouts([])
CoverImgStore.setCoverImg(null)
}
}).catch(() => {}) }).catch(() => {})
} }
...@@ -383,6 +404,7 @@ const SetTripTemplateConfig = async () => { ...@@ -383,6 +404,7 @@ const SetTripTemplateConfig = async () => {
} }
// 保存 // 保存
const setTemplate = async () =>{ const setTemplate = async () =>{
queryObj.value.Title = title.value
datas.loading = true datas.loading = true
if(SourceLoading.value) setNewDatasList(datas.DataSource) if(SourceLoading.value) setNewDatasList(datas.DataSource)
...@@ -464,6 +486,7 @@ const startEditTitle = () => { ...@@ -464,6 +486,7 @@ const startEditTitle = () => {
const handleUpdateTitle = () => { const handleUpdateTitle = () => {
slidesStore.setTitle(titleValue.value) slidesStore.setTitle(titleValue.value)
editingTitle.value = false editingTitle.value = false
queryObj.value.Title = titleValue.value
} }
const goLink = (url: string) => { const goLink = (url: string) => {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { computed, nextTick, ref, reactive, watch, inject } from 'vue' import { computed, nextTick, ref, reactive, watch, inject } from 'vue'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore, useKeyboardStore, useScreenStore } from '@/store' import { useMainStore, useSlidesStore, useKeyboardStore, useScreenStore, useSellTemplate } from '@/store'
import { fillDigit } from '@/utils/common' import { fillDigit } from '@/utils/common'
import { isElementInViewport } from '@/utils/element' import { isElementInViewport } from '@/utils/element'
import type { ContextmenuItem } from '@/components/Contextmenu/types' import type { ContextmenuItem } from '@/components/Contextmenu/types'
...@@ -78,6 +78,7 @@ const keyboardStore = useKeyboardStore() ...@@ -78,6 +78,7 @@ const keyboardStore = useKeyboardStore()
const { selectedSlidesIndex: _selectedSlidesIndex, thumbnailsFocus } = storeToRefs(mainStore) const { selectedSlidesIndex: _selectedSlidesIndex, thumbnailsFocus } = storeToRefs(mainStore)
const { slides, currentSlide, slideIndex, layoutSlides } = storeToRefs(slidesStore) const { slides, currentSlide, slideIndex, layoutSlides } = storeToRefs(slidesStore)
const { ctrlKeyState, shiftKeyState } = storeToRefs(keyboardStore) const { ctrlKeyState, shiftKeyState } = storeToRefs(keyboardStore)
const { SalesEditor, SalesBack } = storeToRefs(useSellTemplate())
const { slidesLoadLimit } = useLoadSlides() const { slidesLoadLimit } = useLoadSlides()
const TemplateTypeStore = useScreenStore() const TemplateTypeStore = useScreenStore()
...@@ -336,7 +337,7 @@ const ResolveTripDaysHandler = (items)=>{ ...@@ -336,7 +337,7 @@ const ResolveTripDaysHandler = (items)=>{
// 获取行程模版数据 // 获取行程模版数据
const GetTripTemplate = async () =>{ const GetTripTemplate = async () =>{
if(!searchData.value.TempId&&!TempId.value&&!searchData.value.sellTempId) { if(!searchData.value.TempId&&!searchData.value.TempId2&&!TempId.value&&!searchData.value.sellTempId) {
let list = [ let list = [
{ {
id: 'test-slide-1', id: 'test-slide-1',
...@@ -355,42 +356,48 @@ const GetTripTemplate = async () =>{ ...@@ -355,42 +356,48 @@ const GetTripTemplate = async () =>{
TempId: 0 TempId: 0
} }
if(searchData.value.TempId) queryMsg.TempId = searchData.value.TempId if(searchData.value.TempId) queryMsg.TempId = searchData.value.TempId
else if(searchData.value.TempId2&&!searchData.value.TempId) queryMsg.TempId = searchData.value.TempId2
else if(searchData.value.sellTempId) queryMsg.TempId = searchData.value.sellTempId else if(searchData.value.sellTempId) queryMsg.TempId = searchData.value.sellTempId
else if(TempId.value) queryMsg.TempId = TempId.value else if(TempId.value) queryMsg.TempId = TempId.value
let dataRes = await ConfigService.GetTripTemplateSlide(queryMsg); let dataRes = await ConfigService.GetTripTemplateSlide(queryMsg);
if (dataRes.data.resultCode == 1) { if (dataRes.data.resultCode == 1) {
let viewportRatio = 1.414 if(SalesBack.value==0||(SalesBack.value==1&&searchData.value.TempId)){
if(dataRes.data.data.TempType==1) viewportRatio = 0.7069 let viewportRatio = 1.414
slidesStore.setViewportRatio(viewportRatio) if(dataRes.data.data.TempType==1) viewportRatio = 0.7069
slidesStore.setViewportRatio(viewportRatio)
let SlidesData = JSON.parse(dataRes.data.data.TempData) let SlidesData = JSON.parse(dataRes.data.data.TempData)
let newSlides = [] let newSlides = []
if(typeof SlidesData=='object'&&!SlidesData.length){ if(typeof SlidesData=='object'&&!SlidesData.length){
let obj = { let obj = {
pageType: 1, pageType: 1,
...SlidesData ...SlidesData
}
newSlides.push(obj)
}else if(SlidesData.length>0){
newSlides = SlidesData
}
newSlides.forEach(x=>{
x.elements.forEach(y=>{
if(x.pageType!=1&&y.TemplateDataSource&&y.TemplateDataSource.index==null){
Reflect.set(y.TemplateDataSource, 'index', null)
} }
newSlides.push(obj)
}else if(SlidesData.length>0){
newSlides = SlidesData
}
newSlides.forEach(x=>{
x.elements.forEach(y=>{
if(x.pageType!=1&&y.TemplateDataSource&&y.TemplateDataSource.index==null){
Reflect.set(y.TemplateDataSource, 'index', null)
}
})
}) })
}) console.log(newSlides,'=======模版数据newSlides')
console.log(newSlides,'=======模版数据newSlides') slidesStore.setSlides(newSlides)
slidesStore.setSlides(newSlides) layoutsStore.setLayouts(JSON.parse(JSON.stringify(newSlides)))
layoutsStore.setLayouts(JSON.parse(JSON.stringify(newSlides))) CoverImgStore.setCoverImg(dataRes.data.data.CoverImg)
CoverImgStore.setCoverImg(dataRes.data.data.CoverImg) slidesStore.updateSlideIndex(0)
datas.DataSource.pageType = newSlides[0].pageType
slidesStore.setTitle(dataRes.data.data.Title)
}
queryObj.value.TempId = dataRes.data.data.TempId queryObj.value.TempId = dataRes.data.data.TempId
queryObj.value.LineId = dataRes.data.data.LineId queryObj.value.LineId = dataRes.data.data.LineId
queryObj.value.LineName = dataRes.data.data.LineName queryObj.value.LineName = dataRes.data.data.LineName
queryObj.value.LtId = dataRes.data.data.LtId queryObj.value.LtId = dataRes.data.data.LtId
queryObj.value.Title = dataRes.data.data.Title
queryObj.value.TempData = dataRes.data.data.TempData queryObj.value.TempData = dataRes.data.data.TempData
queryObj.value.CoverImg = dataRes.data.data.CoverImg queryObj.value.CoverImg = dataRes.data.data.CoverImg
queryObj.value.CountryName = dataRes.data.data.CountryName queryObj.value.CountryName = dataRes.data.data.CountryName
...@@ -398,8 +405,8 @@ const GetTripTemplate = async () =>{ ...@@ -398,8 +405,8 @@ const GetTripTemplate = async () =>{
queryObj.value.ColorName = dataRes.data.data.ColorName queryObj.value.ColorName = dataRes.data.data.ColorName
queryObj.value.ColorStr = dataRes.data.data.ColorStr queryObj.value.ColorStr = dataRes.data.data.ColorStr
queryObj.value.TempType = dataRes.data.data.TempType queryObj.value.TempType = dataRes.data.data.TempType
slidesStore.updateSlideIndex(0)
datas.DataSource.pageType = newSlides[0].pageType
if(searchData.value.sellId) sellGetTripTemplate() if(searchData.value.sellId) sellGetTripTemplate()
if(ConfigId.value==0) return if(ConfigId.value==0) return
if(TempId.value&&!searchData.value.TempId) await GetTripConfig() if(TempId.value&&!searchData.value.TempId) await GetTripConfig()
...@@ -421,8 +428,8 @@ const sellGetTripTemplate = async () =>{ ...@@ -421,8 +428,8 @@ const sellGetTripTemplate = async () =>{
let dataRes = await ConfigService.sellGetTemplateDetails(queryMsg); let dataRes = await ConfigService.sellGetTemplateDetails(queryMsg);
if (dataRes.data.resultCode == 1) { if (dataRes.data.resultCode == 1) {
let dataObj = dataRes.data.data let dataObj = dataRes.data.data
queryObj.value.Title = dataRes.data.data.Title slidesStore.setTitle(dataRes.data.data.Title)
if(!searchData.value.TempId){ if(SalesBack.value==0&&searchData.value.sellTempId){
let SlidesData = JSON.parse(dataObj.TempData) let SlidesData = JSON.parse(dataObj.TempData)
let newSlides = [] let newSlides = []
await SlidesData.forEach((x,i)=>{ await SlidesData.forEach((x,i)=>{
...@@ -623,7 +630,6 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => { ...@@ -623,7 +630,6 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => {
}, },
] ]
} }
GetTripTemplate() GetTripTemplate()
</script> </script>
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
<p class="q-mt-md"><span class="Required q-mr-md">*</span>模版名称:</p> <p class="q-mt-md"><span class="Required q-mr-md">*</span>模版名称:</p>
<div class="row wrap q-mt-md"> <div class="row wrap q-mt-md">
<el-input v-model="queryObj.Title" placeholder="输入模板名称" class="input-with-select"></el-input> <el-input v-model="titleValue" @blur="handleUpdateTitle()"
placeholder="输入模板名称" class="input-with-select"></el-input>
</div> </div>
<p class="q-mt-md"><span class="Required q-mr-md">*</span>国家:</p> <p class="q-mt-md"><span class="Required q-mr-md">*</span>国家:</p>
<div class="row wrap q-mt-md"> <div class="row wrap q-mt-md">
...@@ -237,8 +238,9 @@ ...@@ -237,8 +238,9 @@
} }
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { slides, slideIndex, viewportRatio } = storeToRefs(slidesStore) const { title, slides, slideIndex, viewportRatio } = storeToRefs(slidesStore)
const titleValue = ref('')
titleValue.value = title.value
const coverImgStore = useScreenStore() const coverImgStore = useScreenStore()
const isCoverImgStore = useScreenStore() const isCoverImgStore = useScreenStore()
const { model, ConfigId, TemplateDataSource, TemplateType, CoverImg, isCoverImg, TempId, SourceLoading } = storeToRefs(useScreenStore()) const { model, ConfigId, TemplateDataSource, TemplateType, CoverImg, isCoverImg, TempId, SourceLoading } = storeToRefs(useScreenStore())
...@@ -254,6 +256,11 @@ ...@@ -254,6 +256,11 @@
}) })
const handleUpdateTitle = () => {
slidesStore.setTitle(titleValue.value)
queryObj.value.Title = titleValue.value
}
const CancelAddColor = () =>{ const CancelAddColor = () =>{
datas.addColorsShow = false datas.addColorsShow = false
datas.addColor = { datas.addColor = {
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
size="small" icon="Plus" size="small" icon="Plus"
@click="addTemplate()" style="color: #ffff;"></el-button> @click="addTemplate()" style="color: #ffff;"></el-button>
<el-button v-if="SalesEditor>0" <el-button v-if="SalesEditor>0"
v-tooltip="'返回到首页'" type="primary" v-tooltip="SalesBack==1?'返回到上页':'返回到首页'" type="primary"
size="small" size="small"
@click="CloseTemplate()" style="color: #ffff;">返回 @click="CloseTemplate()" style="color: #ffff;">返回
<el-icon class="el-icon--right"><ArrowRightBold /></el-icon> <el-icon class="el-icon--right"><ArrowRightBold /></el-icon>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
class="text-small q-mr-md" v-for="x in lines" :key="x.LineID">{{x.LineName}}</el-check-tag> class="text-small q-mr-md" v-for="x in lines" :key="x.LineID">{{x.LineName}}</el-check-tag>
</div> </div>
<el-divider style="margin:12px 0;border-top-color:#f3f6fb;"></el-divider> <el-divider style="margin:12px 0;border-top-color:#f3f6fb;"></el-divider>
<div class="row wrap q-pb-md"> <div class="row wrap items-center q-pb-md">
<div class="q-pb-md"> <div class="q-pb-md">
<div class="row text-small items-center wrap"> <div class="row text-small items-center wrap">
<span style="margin-right: 50px;">适用国家:</span> <span style="margin-right: 50px;">适用国家:</span>
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
import LineService from '@/services/LineService' import LineService from '@/services/LineService'
import ConfigService from '@/services/ConfigService' import ConfigService from '@/services/ConfigService'
import { userStore } from "@/store/user"; import { userStore } from "@/store/user";
import { useSlidesStore,useSellTemplate } from '@/store' import { useSlidesStore, useSellTemplate } from '@/store'
import { useScreenStore } from "@/store/screen"; import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey' import { injectKeyTemplate } from '@/types/injectKey'
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
const { screening, market, model, isModel, ConfigId, TempId} = storeToRefs(useScreenStore()) const { screening, market, model, isModel, ConfigId, TempId} = storeToRefs(useScreenStore())
const SalesEditorStore = useSellTemplate() const SalesEditorStore = useSellTemplate()
const { SalesEditor } = storeToRefs(useSellTemplate()) const { SalesEditor, SalesBack } = storeToRefs(useSellTemplate())
const addTemplate = () =>{ const addTemplate = () =>{
marketStore.setMarket(!market) marketStore.setMarket(!market)
...@@ -238,7 +238,11 @@ ...@@ -238,7 +238,11 @@
} }
const CloseTemplate = () => { const CloseTemplate = () => {
SalesEditorStore.setSalesEditor(0) if(SalesBack.value==1){
marketStore.setMarket(false)
SalesEditorStore.setSalesEditor(SalesEditor.value)
}else SalesEditorStore.setSalesEditor(0)
} }
// 删除模版 // 删除模版
const deleteTemplate = (item:any) => { const deleteTemplate = (item:any) => {
......
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