Commit 3c4c15c8 authored by zhengke's avatar zhengke

no message

parent 7750e3ba
...@@ -26,10 +26,30 @@ const searchData = ref({} as any) ...@@ -26,10 +26,30 @@ const searchData = ref({} as any)
provide(injectKeyTemplate,searchData) provide(injectKeyTemplate,searchData)
const isFinish = ref(false) const isFinish = ref(false)
const _isPC = isPC()
const mainStore = useMainStore()
const snapshotStore = useSnapshotStore()
const modelStore = useScreenStore()
const ConfigIdStore = useScreenStore()
const { databaseId } = storeToRefs(mainStore)
const { screening, market, model, ConfigId } = storeToRefs(useScreenStore())
if (process.env.NODE_ENV === 'production') {
window.onbeforeunload = () => false
}
const userLoginHandler = async ()=>{ const userLoginHandler = async ()=>{
let param = query() let param = query()
let userId = 1 let userId = 1
let ConfigId = 9117
let model = 1
if(param.uid) userId=parseInt(param.uid) if(param.uid) userId=parseInt(param.uid)
if(ConfigId) ConfigIdStore.setMarket(ConfigId)
if(model) modelStore.setModel(model)
try { try {
await userStore().setUserLoginAsync(userId) await userStore().setUserLoginAsync(userId)
} catch (error) { } catch (error) {
...@@ -39,17 +59,6 @@ const userLoginHandler = async ()=>{ ...@@ -39,17 +59,6 @@ const userLoginHandler = async ()=>{
} }
userLoginHandler() userLoginHandler()
const _isPC = isPC()
const mainStore = useMainStore()
const snapshotStore = useSnapshotStore()
const { databaseId } = storeToRefs(mainStore)
const { screening, market } = storeToRefs(useScreenStore())
if (process.env.NODE_ENV === 'production') {
window.onbeforeunload = () => false
}
onMounted(async () => { onMounted(async () => {
await deleteDiscardedDB() await deleteDiscardedDB()
snapshotStore.initSnapshotDatabase() snapshotStore.initSnapshotDatabase()
......
...@@ -4,6 +4,13 @@ import Api,{ HttpResponse, Result } from './../utils/request'; ...@@ -4,6 +4,13 @@ import Api,{ HttpResponse, Result } from './../utils/request';
* 配置相关方法 * 配置相关方法
*/ */
class ConfigService{ class ConfigService{
/**
* 根据ConfigId获取行程配置相关数据
*/
static async triptemplateGetTripFiledData(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_GetTripFiledData",params)
}
/** /**
* 根据团期配置编号获取行程详情 * 根据团期配置编号获取行程详情
*/ */
...@@ -14,6 +21,13 @@ class ConfigService{ ...@@ -14,6 +21,13 @@ class ConfigService{
/** /**
* 新增修改模版数据 * 新增修改模版数据
*/ */
static async SetSetTripConfig(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_SetTripConfig",params)
}
/**
* 新增修改模版
*/
static async SetTripTemplateSlide(params : any):Promise<HttpResponse>{ static async SetTripTemplateSlide(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_SetTripTemplate",params) return Api.Post("triptemplate_SetTripTemplate",params)
} }
......
import { fa } from 'element-plus/es/locale'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
export interface ScreenState { export interface ScreenState {
screening: boolean, screening: boolean,
market:boolean market:boolean,
model:number,
ConfigId:number
} }
export const useScreenStore = defineStore('screen', { export const useScreenStore = defineStore('screen', {
state: (): ScreenState => ({ state: (): ScreenState => ({
screening: false, // 是否进入放映状态 screening: false, // 是否进入放映状态
market: true market: true,
model: 0, //是否有新增模版权限
ConfigId: 0,
}), }),
actions: { actions: {
...@@ -20,6 +25,13 @@ export const useScreenStore = defineStore('screen', { ...@@ -20,6 +25,13 @@ export const useScreenStore = defineStore('screen', {
}, },
setMarket(market: boolean){ setMarket(market: boolean){
this.market = market this.market = market
},
setModel(model: number){
console.log(model,'=====')
this.model = model
},
setConfigId(ConfigId: number){
this.ConfigId = ConfigId
} }
}, },
}) })
\ No newline at end of file
...@@ -62,7 +62,8 @@ ...@@ -62,7 +62,8 @@
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { slides, slideIndex } = storeToRefs(slidesStore) const { slides, slideIndex } = storeToRefs(slidesStore)
const slidesData = slides.value const slidesData = slides.value
watch(datas.DataSource, (n, o) => {
const setNewDatas = () => {
// 更新Slides数据 // 更新Slides数据
const savelides = [] const savelides = []
const newSlides = [] const newSlides = []
...@@ -79,7 +80,7 @@ ...@@ -79,7 +80,7 @@
} }
savelides.push(x) savelides.push(x)
}) })
obj.elements = savelides obj.elements = JSON.parse(JSON.stringify(savelides))
slidesData.forEach((x,index)=>{ slidesData.forEach((x,index)=>{
if(slideIndex.value == index){ if(slideIndex.value == index){
x.pgaeType = datas.DataSource.pgaeType x.pgaeType = datas.DataSource.pgaeType
...@@ -87,16 +88,10 @@ ...@@ -87,16 +88,10 @@
} }
newSlides.push(x) newSlides.push(x)
}) })
if(obj&&obj.TemplateDataSource&&obj.TemplateDataSource.Id){ console.log(newSlides,'=====-----')
slidesStore.setSlides(newSlides) slidesStore.setSlides(newSlides)
} }
} }
})
watch(datas.DataSource, (n, o) => {
})
// 数据源关键数据赋值 // 数据源关键数据赋值
const setTemplateDataSource = (Id,index) => { const setTemplateDataSource = (Id,index) => {
datas.DataSource.DataSourceList.forEach((x,indexs)=>{ datas.DataSource.DataSourceList.forEach((x,indexs)=>{
...@@ -108,6 +103,7 @@ ...@@ -108,6 +103,7 @@
x.TemplateDataSource.Name = obj.Name x.TemplateDataSource.Name = obj.Name
} }
}) })
setNewDatas()
} }
const OffDataSource = () =>{ const OffDataSource = () =>{
...@@ -138,12 +134,13 @@ ...@@ -138,12 +134,13 @@
padding: 40px; padding: 40px;
border-radius: 10px; border-radius: 10px;
background: #fff; background: #fff;
overflow: auto;
} }
.DataaSourceList{ .DataaSourceList{
height: 100%;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
padding: 20px; padding: 20px;
border-radius: 5px; border-radius: 5px;
overflow: auto;
} }
.DataaSourceL{ .DataaSourceL{
font-weight: bold; font-weight: bold;
......
<template> <template>
<div class="editor-header"> <div class="editor-header">
<div class="left"> <div class="left">
<div class="menu-item" v-tooltip="'去首页'" @click="goBack()">首页</div>
<Popover trigger="click" placement="bottom-start" v-model:value="mainMenuVisible"> <Popover trigger="click" placement="bottom-start" v-model:value="mainMenuVisible">
<template #content> <template #content>
<FileInput accept=".pptist" @change="files => { <FileInput accept=".pptist" @change="files => {
...@@ -54,7 +55,7 @@ ...@@ -54,7 +55,7 @@
<div class="arrow-btn"><IconDown class="arrow" /></div> <div class="arrow-btn"><IconDown class="arrow" /></div>
</Popover> </Popover>
</div> --> </div> -->
<div class="group-menu-item" v-if="userInfo.IsEditTripTemplate==1"> <div class="group-menu-item" v-if="userInfo.IsEditTripTemplate==1&&model">
<div class="menu-item" v-tooltip="'导入PSD'" @click="UploadPsd()"> <div class="menu-item" v-tooltip="'导入PSD'" @click="UploadPsd()">
<IconUpload class="icon" /> <IconUpload class="icon" />
</div> </div>
...@@ -91,8 +92,9 @@ import useImport from '@/hooks/useImport' ...@@ -91,8 +92,9 @@ import useImport from '@/hooks/useImport'
import useSlideHandler from '@/hooks/useSlideHandler' import useSlideHandler from '@/hooks/useSlideHandler'
import type { DialogForExportTypes } from '@/types/export' import type { DialogForExportTypes } from '@/types/export'
import { userStore } from "@/store/user"; import { userStore } from "@/store/user";
import { useScreenStore } from "@/store/screen";
import ConfigService from '@/services/ConfigService' import ConfigService from '@/services/ConfigService'
import { injectKeyDataSource } from '@/types/injectKey' import { injectKeyDataSource, injectKeyTemplate } from '@/types/injectKey'
import HotkeyDoc from './HotkeyDoc.vue' import HotkeyDoc from './HotkeyDoc.vue'
import FileInput from '@/components/FileInput.vue' import FileInput from '@/components/FileInput.vue'
...@@ -122,17 +124,55 @@ const datas = reactive({ ...@@ -122,17 +124,55 @@ const datas = reactive({
loading: false loading: false
}) })
const queryObj = ref({} as any) const queryObj = ref({} as any)
const searchData = ref({} as any)
datas.DataSource = inject(injectKeyDataSource) datas.DataSource = inject(injectKeyDataSource)
queryObj.value = inject(injectKeyDataSource).queryObj queryObj.value = inject(injectKeyDataSource).queryObj
searchData.value = inject(injectKeyTemplate)
const marketStore = useScreenStore()
const { market, model, ConfigId } = storeToRefs(useScreenStore())
const goBack = () =>{
marketStore.setMarket(true)
}
// 导入PSD // 导入PSD
const UploadPsd = () => { const UploadPsd = () => {
} }
// 保存 // 保存
// 新增修改模版
const SetTripTemplateSlide = async () => {
try {
let TemplateRes = await ConfigService.SetTripTemplateSlide(queryObj.value);
if (TemplateRes.data.resultCode == 1) {
}
datas.loading = false
} catch (error) {
datas.loading = false
console.log("TemplateGetTripFiled", error);
}
}
// 用户新增修改数据
const SetTripTemplateConfig = async () => {
try {
let queryMsg = {
ConfigId: ConfigId,
TempId: queryObj.value.TempId,
}
let TemplateRes = await ConfigService.SetSetTripConfig(queryMsg);
if (TemplateRes.data.resultCode == 1) {
}
datas.loading = false
} catch (error) {
datas.loading = false
console.log("TemplateGetTripFiled", error);
}
}
const setTemplate = async () =>{ const setTemplate = async () =>{
// console.log(JSON.stringify(slides.value),'----保存接口',queryObj.value) // console.log(JSON.stringify(slides.value),'----保存接口',queryObj.value)
console.log(slides.value,'-------')
if(queryObj.value.Title==''||!queryObj.value.LineId||!queryObj.value.LtId if(queryObj.value.Title==''||!queryObj.value.LineId||!queryObj.value.LtId
// ||queryObj.value.CoverImg=='' // ||queryObj.value.CoverImg==''
||queryObj.value.CountryName==''||queryObj.value.SeasonName=='' ||queryObj.value.CountryName==''||queryObj.value.SeasonName==''
...@@ -165,20 +205,15 @@ const setTemplate = async () =>{ ...@@ -165,20 +205,15 @@ const setTemplate = async () =>{
} }
} }
queryObj.value.TempData = JSON.stringify(slides.value) queryObj.value.TempData = JSON.stringify(slides.value)
return
datas.loading = true datas.loading = true
try { if(model&&userInfo.IsEditTripTemplate==1){
let TemplateRes = await ConfigService.SetTripTemplateSlide(queryObj.value); await SetTripTemplateSlide()
if (TemplateRes.data.resultCode == 1) { }else{
await SetTripTemplateConfig()
}
datas.loading = false
} catch (error) {
datas.loading = false
console.log("TemplateGetTripFiled", error);
} }
} }
const startEditTitle = () => { const startEditTitle = () => {
titleValue.value = title.value titleValue.value = title.value
editingTitle.value = true editingTitle.value = true
......
...@@ -56,7 +56,7 @@ import type { ContextmenuItem } from '@/components/Contextmenu/types' ...@@ -56,7 +56,7 @@ import type { ContextmenuItem } from '@/components/Contextmenu/types'
import useSlideHandler from '@/hooks/useSlideHandler' import useSlideHandler from '@/hooks/useSlideHandler'
import useScreening from '@/hooks/useScreening' import useScreening from '@/hooks/useScreening'
import useLoadSlides from '@/hooks/useLoadSlides' import useLoadSlides from '@/hooks/useLoadSlides'
import { injectKeyDataSource } from '@/types/injectKey' import { injectKeyDataSource, injectKeyTemplate } from '@/types/injectKey'
import ConfigService from '@/services/ConfigService' import ConfigService from '@/services/ConfigService'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue' import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
...@@ -93,26 +93,142 @@ const datas = reactive({ ...@@ -93,26 +93,142 @@ const datas = reactive({
DataSource:{} DataSource:{}
}) })
const queryObj = ref({} as any) const queryObj = ref({} as any)
const searchData = ref({} as any)
datas.DataSource = inject(injectKeyDataSource) datas.DataSource = inject(injectKeyDataSource)
searchData.value = inject(injectKeyTemplate)
// 模版市场分页数据
const SearchqueryObj = reactive({
pageIndex: 1,
pageSize: 10,
LineId: 0, //线路Id
Title: '', //模板名称
CountryName: '', //国家名称
SeasonName: '', //季节名称
ColorName: '', //颜色名称
totalCount: 0, //总调试
pageCount: 0, //总页数
})
watch(() => slideIndex.value, () => {
// 清除多选状态的幻灯片
if (selectedSlidesIndex.value.length) {
mainStore.updateSelectedSlidesIndex([])
}
// 检查当前页缩略图是否在可视范围,不在的话需要滚动到对应的位置
nextTick(() => {
const activeThumbnailRef: HTMLElement = thumbnailsRef.value?.$el?.querySelector('.thumbnail-item.active')
if (thumbnailsRef.value && activeThumbnailRef && !isElementInViewport(activeThumbnailRef, thumbnailsRef.value.$el)) {
setTimeout(() => {
activeThumbnailRef.scrollIntoView({ behavior: 'smooth' })
}, 100)
}
})
})
//提取字符串中的文字
const getHtmlPlainText = (html_str) => {
let re = new RegExp('<[^<>]+>', 'g')
if (html_str) {
let text = html_str.replace(re, '')
return text
} else {
return ''
}
}
queryObj.value = inject(injectKeyDataSource).queryObj
/***
* 获取模板市场分页列表
*/
const queryTemplateBySearchHandler = async () => {
try {
let pageRes = await ConfigService.GetTemplagePageAsync(SearchqueryObj);
console.log("queryTemplateBySearchHandler", pageRes);
if (pageRes.data.resultCode == 1) {
datas.DataSource.dataList = pageRes.data.data.pageData;
SearchqueryObj.totalCount = pageRes.data.data.count;
SearchqueryObj.pageCount = pageRes.data.data.pageCount;
}
} catch (error) {
console.log("queryTemplateBySearchHandler", error);
}
}
// 获取行程团数据
const GetTripFiledData = async () =>{
if(queryObj.value.TempId) return
const slidesData = slides.value
try {
let queryMsg = {
ConfigId:datas.DataSource.ConfigId
}
let dataRes = await ConfigService.triptemplateGetTripFiledData(queryMsg);
if (dataRes.data.resultCode == 1) {
if(!dataRes.data.data) return
const travel = dataRes.data.data
const cursors = [] as Array<any>
slidesData.forEach((x,index)=>{
x.elements.forEach(y=>{
if(y.TemplateDataSource && y.TemplateDataSource.Content){
let dataPath = y.TemplateDataSource.Content.split('.')
let value=JSON.parse(JSON.stringify(travel));
dataPath.forEach((oo,i)=>{
if(value && value[oo]){
if(i==0 && Array.isArray(value[oo])){
let temp = cursors.find(item=>item.key==oo)
if(temp){
temp.index++
}else{
temp={key:oo,index:0}
cursors.push(temp)
}
if(value[oo].length>temp.index) value=value[oo][temp.index]
else value=value[oo]
}else{
value=value[oo]
}
}else{
value = null
}
})
if(value && typeof(value) == 'string'){
//替换
y.content= y.content.replace(getHtmlPlainText(y.content),value)
}else if(value && Array.isArray(value)){
//替换
y.content=value[0]
}
}
})
})
slidesStore.setSlides(slidesData)
}
} catch (error) {
console.log("triptemplateGetTripFiledData", error);
}
}
// 获取行程模版数据 // 获取行程模版数据
const GetTripTemplate = async () =>{ const GetTripTemplate = async () =>{
// if(!datas.DataSource.queryObj.TempId) { if(!queryObj.value.TempId) {
// let list = [ let list = [
// { {
// id: 'test-slide-1', id: 'test-slide-1',
// pageType: 1, pageType: 1,
// elements: [], elements: [],
// background: { background: {
// type: 'solid', type: 'solid',
// color: '#ffffff', color: '#ffffff',
// }, },
// } }
// ] ]
// return slidesStore.setSlides(list) return slidesStore.setSlides(list)
// } }
try { try {
let queryMsg = { let queryMsg = {
TempId:datas.DataSource.queryObj.TempId TempId:queryObj.value.TempId
} }
let dataRes = await ConfigService.GetTripTemplateSlide(queryMsg); let dataRes = await ConfigService.GetTripTemplateSlide(queryMsg);
if (dataRes.data.resultCode == 1) { if (dataRes.data.resultCode == 1) {
...@@ -141,48 +257,17 @@ const GetTripTemplate = async () =>{ ...@@ -141,48 +257,17 @@ 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
await GetTripFiledData()
} }
} catch (error) { } catch (error) {
console.log("GetTripTemplateSlide", error); console.log("GetTripTemplateSlide", error);
} }
} }
GetTripTemplate()
// 页面被切换时 // 页面被切换时
const thumbnailsRef = ref<InstanceType<typeof Draggable>>() const thumbnailsRef = ref<InstanceType<typeof Draggable>>()
watch(() => slideIndex.value, () => {
// 清除多选状态的幻灯片
if (selectedSlidesIndex.value.length) {
mainStore.updateSelectedSlidesIndex([])
}
// 检查当前页缩略图是否在可视范围,不在的话需要滚动到对应的位置
nextTick(() => {
const activeThumbnailRef: HTMLElement = thumbnailsRef.value?.$el?.querySelector('.thumbnail-item.active')
if (thumbnailsRef.value && activeThumbnailRef && !isElementInViewport(activeThumbnailRef, thumbnailsRef.value.$el)) {
setTimeout(() => {
activeThumbnailRef.scrollIntoView({ behavior: 'smooth' })
}, 100)
}
})
})
//提取字符串中的文字
const getHtmlPlainText = (html_str) => {
let re = new RegExp('<[^<>]+>', 'g')
if (html_str) {
let text = html_str.replace(re, '')
return text
} else {
return ''
}
}
queryObj.value = inject(injectKeyDataSource).queryObj
let pageObj = slides.value.find((slide,indexs) => {
return slideIndex.value==indexs
})
// pageType.value = pageObj.pageType
// 切换页面 // 切换页面
const changeSlideIndex = (index: number) => { const changeSlideIndex = (index: number) => {
mainStore.setActiveElementIdList([]) mainStore.setActiveElementIdList([])
...@@ -191,37 +276,31 @@ const changeSlideIndex = (index: number) => { ...@@ -191,37 +276,31 @@ const changeSlideIndex = (index: number) => {
return index==indexs return index==indexs
}) })
datas.DataSource.pageType = newElements.pageType datas.DataSource.pageType = newElements.pageType
let TemplateList let TemplateList = datas.DataSource.TemplateDataSource.filter(x=>{
if(newElements.pageType==1) TemplateList = datas.DataSource.jc return x.FiledType==newElements.pageType
else if(newElements.pageType==2) TemplateList = datas.DataSource.jd })
else if(newElements.pageType==3) TemplateList = datas.DataSource.jq
else if(newElements.pageType==4) TemplateList = datas.DataSource.cs
datas.DataSource.DataSourceList = [] datas.DataSource.DataSourceList = []
newElements&&newElements.elements&&newElements.elements.forEach(slide=>{ newElements&&newElements.elements&&newElements.elements.forEach(slide=>{
if(slide.type!="text"&&slide.type!="image") return if(slide.type=="text"||slide.type=="image") {
let FiledTypeStr let FiledTypeStr
if(slide.type=="text") FiledTypeStr = getHtmlPlainText(slide.content) if(slide.type=="text") FiledTypeStr = getHtmlPlainText(slide.content)
if(slide.type=="image") FiledTypeStr = slide.src if(slide.type=="image") FiledTypeStr = slide.src
let Obj = {} let Obj = {}
if(slide.FiledTypeStr){
Obj = {
...slide,
}
}else{
Obj = { Obj = {
...slide, ...slide,
FiledTypeStr: FiledTypeStr, FiledTypeStr: FiledTypeStr,
TemplateList: TemplateList, TemplateList: TemplateList,
TemplateDataSource: { TemplateDataSource: {
Content: '', Content: slide.TemplateDataSource.Content?slide.TemplateDataSource.Content:'',
Name: '', Name: slide.TemplateDataSource.Name?slide.TemplateDataSource.Name:'',
Id: null as Number Id: slide.TemplateDataSource.Id?slide.TemplateDataSource.Id:null as Number
},
} }
} }
if(Obj){ if(Obj){
datas.DataSource.DataSourceList.push(Obj) datas.DataSource.DataSourceList.push(Obj)
} }
}
}) })
if (slideIndex.value === index) return if (slideIndex.value === index) return
slidesStore.updateSlideIndex(index) slidesStore.updateSlideIndex(index)
...@@ -366,6 +445,10 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => { ...@@ -366,6 +445,10 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => {
}, },
] ]
} }
queryTemplateBySearchHandler()
GetTripTemplate()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
placeholder="请页面类型"> placeholder="请页面类型">
<el-option <el-option
v-for="item in pageTypesList" v-for="item in pageTypesList"
:key="item.key" :key="item.FiledType"
:label="item.label" :label="item.Name"
:value="item.key" :value="item.FiledType"
/> />
</el-select> </el-select>
</div> </div>
...@@ -104,13 +104,18 @@ ...@@ -104,13 +104,18 @@
const lines = ref([] as Array < any > ) //线路 const lines = ref([] as Array < any > ) //线路
const Series = ref([] as Array < any > ) //系列 const Series = ref([] as Array < any > ) //系列
const pageTypesList = ref([ const cursors = [] as Array<any>
{ label: '基础', key: 1 },
{ label: '酒店', key: 2 },
{ label: '景', key: 3 },
{ label: '餐', key: 4 },
])
const pageTypesList = ref([] as any)
let TemplateList = datas.DataSource.TemplateDataSource.filter(x=>{
let obj = pageTypesList.value.findIndex(z=>{
return z.FiledType==x.FiledType
})
if(obj==-1){
pageTypesList.value.push(x)
}
})
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { slides, slideIndex } = storeToRefs(slidesStore) const { slides, slideIndex } = storeToRefs(slidesStore)
const setCountryValue = () =>{ const setCountryValue = () =>{
...@@ -157,35 +162,30 @@ ...@@ -157,35 +162,30 @@
return slideIndex.value==indexs return slideIndex.value==indexs
}) })
datas.DataSource.DataSourceOverlay = !datas.DataSource.DataSourceOverlay datas.DataSource.DataSourceOverlay = !datas.DataSource.DataSourceOverlay
let TemplateList let TemplateList = datas.DataSource.TemplateDataSource.filter(x=>{
if(newElements.pageType==1) TemplateList = datas.DataSource.jc return x.FiledType==newElements.pageType
else if(newElements.pageType==2) TemplateList = datas.DataSource.jd })
else if(newElements.pageType==3) TemplateList = datas.DataSource.jq
else if(newElements.pageType==4) TemplateList = datas.DataSource.cs
datas.DataSource.DataSourceList = [] datas.DataSource.DataSourceList = []
newElements.elements.forEach(slide=>{ newElements.elements.forEach(slide=>{
if(slide.type!="text"&&slide.type!="image") return if(slide.type=="text"||slide.type=="image") {
let FiledTypeStr let FiledTypeStr
if(slide.type=="text") FiledTypeStr = getHtmlPlainText(slide.content) if(slide.type=="text") FiledTypeStr = getHtmlPlainText(slide.content)
if(slide.type=="image") FiledTypeStr = slide.src if(slide.type=="image") FiledTypeStr = slide.src
let Obj = {} let Obj = {}
if(slide.FiledTypeStr){
Obj = {
...slide,
}
}else{
Obj = { Obj = {
...slide, ...slide,
FiledTypeStr: FiledTypeStr, FiledTypeStr: FiledTypeStr,
TemplateList: TemplateList, TemplateList: TemplateList,
TemplateDataSource: { TemplateDataSource: {
Content: '', Content: slide.TemplateDataSource.Content?slide.TemplateDataSource.Content:'',
Name: '', Name: slide.TemplateDataSource.Name?slide.TemplateDataSource.Name:'',
Id: null as Number Id: slide.TemplateDataSource.Id?slide.TemplateDataSource.Id:null as Number
}, },
} }
} if(Obj){
datas.DataSource.DataSourceList.push(Obj) datas.DataSource.DataSourceList.push(Obj)
}
}
}) })
} }
......
...@@ -52,17 +52,14 @@ import Modal from '@/components/Modal.vue' ...@@ -52,17 +52,14 @@ import Modal from '@/components/Modal.vue'
import DataaSource from './DataaSource/index.vue' import DataaSource from './DataaSource/index.vue'
import ConfigService from '@/services/ConfigService' import ConfigService from '@/services/ConfigService'
// inject(injectKeyTemplate).TempId?inject(injectKeyTemplate).TempId:
const datas = reactive({ const datas = reactive({
DataSource:{ DataSource:{
dataList: [],
ConfigId: inject(injectKeyTemplate).ConfigId?inject(injectKeyTemplate).ConfigId:0,
pageType: 1,//1基础 2酒店 3景 4餐 pageType: 1,//1基础 2酒店 3景 4餐
DataSourceOverlay: false, DataSourceOverlay: false,
DataSourceList:[], DataSourceList:[],
TemplateDataSource:[], TemplateDataSource:[],// 所有模版类型 1基础 2酒店 3景 4餐
jc:[],//基础
jd:[],//酒店
jq:[],//景区
cs:[],//餐食
queryObj:{ queryObj:{
TempId: inject(injectKeyTemplate).TempId?inject(injectKeyTemplate).TempId:0,//编号(新增传0) 是 [int] TempId: inject(injectKeyTemplate).TempId?inject(injectKeyTemplate).TempId:0,//编号(新增传0) 是 [int]
LineId: null,//线路Id 是 [int] LineId: null,//线路Id 是 [int]
...@@ -94,18 +91,6 @@ const GetTripFiled = async () =>{ ...@@ -94,18 +91,6 @@ const GetTripFiled = async () =>{
let TemplateRes = await ConfigService.TemplateGetTripFiled(); let TemplateRes = await ConfigService.TemplateGetTripFiled();
if (TemplateRes.data.resultCode == 1) { if (TemplateRes.data.resultCode == 1) {
datas.DataSource.TemplateDataSource = TemplateRes.data.data datas.DataSource.TemplateDataSource = TemplateRes.data.data
datas.DataSource.jc = datas.DataSource.TemplateDataSource.filter(x => {
return x.FiledType==1
})
datas.DataSource.jd = datas.DataSource.TemplateDataSource.filter(x => {
return x.FiledType==2
})
datas.DataSource.jq = datas.DataSource.TemplateDataSource.filter(x => {
return x.FiledType==3
})
datas.DataSource.cs = datas.DataSource.TemplateDataSource.filter(x => {
return x.FiledType==4
})
} }
} catch (error) { } catch (error) {
console.log("TemplateGetTripFiled", error); console.log("TemplateGetTripFiled", error);
...@@ -124,6 +109,7 @@ useGlobalHotkey() ...@@ -124,6 +109,7 @@ useGlobalHotkey()
usePasteEvent() usePasteEvent()
provide(injectKeyDataSource,datas.DataSource) provide(injectKeyDataSource,datas.DataSource)
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="q-mt-lg row wrap bg-white rounded" style="padding: 30px 10px;"> <div class="q-mt-lg row wrap bg-white rounded" style="padding: 30px 10px 0 10px;">
<template v-for="(item,index) in dataList"> <template v-for="(item,index) in dataList">
<div class="MarketIndexListBox"> <div class="MarketIndexListBox">
<div class="MarketIndexList bg-white rounded" @click="goToTemplate(item)"> <div class="MarketIndexList bg-white rounded" @click="goToTemplate(item)">
...@@ -76,6 +76,20 @@ ...@@ -76,6 +76,20 @@
</div> </div>
</template> </template>
</div> </div>
<div class="q-mt-lg row" style="justify-content: center;">
<el-pagination
background
v-model:current-page="currentPage"
v-model:page-size="queryObj.pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100]"
:small="small"
layout="sizes, prev, pager, next"
:total="queryObj.totalCount"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
hide-on-single-page
/>
</div>
</div> </div>
</div> </div>
...@@ -98,6 +112,8 @@ ...@@ -98,6 +112,8 @@
const colorArr = ref([] as Array < any > ); //颜色 const colorArr = ref([] as Array < any > ); //颜色
const seasonArr = ref([] as Array < any > ); //季节 const seasonArr = ref([] as Array < any > ); //季节
const dataList = ref([] as Array < any > ); //模板数据列表 const dataList = ref([] as Array < any > ); //模板数据列表
const currentPage = ref(1 as Number);
const queryObj = reactive({ const queryObj = reactive({
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
...@@ -113,7 +129,7 @@ ...@@ -113,7 +129,7 @@
const searchData = ref({} as any) const searchData = ref({} as any)
searchData.value = inject(injectKeyTemplate) searchData.value = inject(injectKeyTemplate)
const marketStore = useScreenStore() const marketStore = useScreenStore()
const { screening, market } = storeToRefs(useScreenStore()) const { screening, market, model, ConfigId} = storeToRefs(useScreenStore())
const addTemplate = () => { const addTemplate = () => {
marketStore.setMarket(!market) marketStore.setMarket(!market)
...@@ -124,18 +140,14 @@ ...@@ -124,18 +140,14 @@
*/ */
const GetTripConfig = async () =>{ const GetTripConfig = async () =>{
try { try {
// console.log('','-----http://localhost:8080?ConfigId=11') if(!ConfigId) return
let locations = window.location.search.split('?')
let ConfigId = locations[1].split('=')[1]
console.log(ConfigId,'=====')
let queryMsg = { let queryMsg = {
ConfigId: 0 ConfigId: ConfigId
} }
if(!queryMsg.ConfigId) return
let datasRes = await ConfigService.triptemplateGetTripConfig(queryMsg); let datasRes = await ConfigService.triptemplateGetTripConfig(queryMsg);
if (datasRes.data.resultCode == 1) { if (datasRes.data.resultCode == 1) {
if(datasRes.data.data&&datasRes.data.data.length>0&&datasRes.data.data[0].TempId){ if(datasRes.data.data&&datasRes.data.data.length>0&&datasRes.data.data[0].TempId){
searchData.value.TempId = item.TempId searchData.value.TempId = datasRes.data.data[0].TempId
marketStore.setMarket(!market) marketStore.setMarket(!market)
} }
} }
...@@ -160,16 +172,22 @@ ...@@ -160,16 +172,22 @@
const queryTemplateBySearchHandler = async () => { const queryTemplateBySearchHandler = async () => {
try { try {
let pageRes = await ConfigService.GetTemplagePageAsync(queryObj); let pageRes = await ConfigService.GetTemplagePageAsync(queryObj);
console.log("queryTemplateBySearchHandler", pageRes);
if (pageRes.data.resultCode == 1) { if (pageRes.data.resultCode == 1) {
dataList.value = pageRes.data.data.pageData; dataList.value = pageRes.data.data.pageData;
queryObj.totalCount = pageRes.data.data.count; queryObj.totalCount = pageRes.data.data.count;
queryObj.pageCount = pageRes.data.data.pageCount; queryObj.pageCount = pageRes.data.data.pageCount;
} }
} catch (error) { } catch (error) {
console.log("queryTemplateBySearchHandler", error);
} }
} }
const handleSizeChange = (val: number) => {
queryObj.pageSize = val
queryTemplateBySearchHandler()
}
const handleCurrentChange = (val: number) => {
queryObj.pageIndex = val
queryTemplateBySearchHandler()
}
//线路切换 //线路切换
const onLineChangeHandler = (lineId: number) => { const onLineChangeHandler = (lineId: number) => {
......
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