Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pptist
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
viitto
pptist
Commits
d63299d0
Commit
d63299d0
authored
Dec 02, 2023
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复导出行程特色img,修改数据源并更新
parent
8fd06b25
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
69 deletions
+62
-69
index.ts
src/utils/Editor/index.ts
+47
-0
index.vue
src/views/Editor/Canvas/index.vue
+1
-1
index.vue
src/views/Editor/DataaSource/index.vue
+4
-32
index.vue
src/views/Editor/EditorHeader/index.vue
+5
-3
index.vue
src/views/Editor/Thumbnails/index.vue
+5
-33
No files found.
src/utils/Editor/index.ts
0 → 100644
View file @
d63299d0
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
{
useSlidesStore
,
useScreenStore
}
from
'@/store'
export
default
()
=>
{
const
slidesStore
=
useSlidesStore
()
const
sourceLoadingStore
=
useScreenStore
()
const
{
slides
,
slideIndex
}
=
storeToRefs
(
slidesStore
)
const
{
SourceLoading
}
=
storeToRefs
(
useScreenStore
())
// 数据源更新
const
setNewDatasList
=
(
DataSource
:
any
)
=>
{
sourceLoadingStore
.
setSourceLoading
(
false
)
const
slidesData
=
slides
.
value
// 更新Slides数据
let
savelides
=
[]
as
any
let
newSlides
=
[]
as
any
const
obj
=
slidesData
.
find
((
x
,
index
)
=>
{
return
slideIndex
.
value
==
index
})
if
(
obj
){
obj
.
elements
.
forEach
(
x
=>
{
let
dataObj
=
DataSource
.
DataSourceList
.
find
((
y
:
any
)
=>
{
return
y
.
id
==
x
.
id
})
if
(
dataObj
){
x
=
dataObj
}
savelides
.
push
(
x
)
})
obj
.
elements
=
JSON
.
parse
(
JSON
.
stringify
(
savelides
))
slidesData
.
forEach
((
x
:
any
,
index
)
=>
{
if
(
slideIndex
.
value
==
index
){
x
.
pgaeType
=
DataSource
.
pgaeType
x
.
elements
=
obj
.
elements
}
newSlides
.
push
(
x
)
})
slidesStore
.
setSlides
(
newSlides
)
}
}
return
{
setNewDatasList
,
}
}
\ No newline at end of file
src/views/Editor/Canvas/index.vue
View file @
d63299d0
...
...
@@ -94,7 +94,7 @@
<LinkDialog
@
close=
"linkDialogVisible = false"
/>
</Modal>
</div>
<div
style=
"
position: relative;z-index: -1
;"
v-if=
"!model&&ConfigId&&slides.length>0"
>
<div
style=
"
opacity: 0;position: absolute;left: 100px;top: 0
;"
v-if=
"!model&&ConfigId&&slides.length>0"
>
<div
class=
"export-img-dialog"
>
<div
class=
"thumbnails-view"
>
<div
class=
"thumbnails"
v-for=
"slide in slides"
ref=
"FeatureImgRef"
>
...
...
src/views/Editor/DataaSource/index.vue
View file @
d63299d0
...
...
@@ -78,6 +78,7 @@
import
{
useSlidesStore
,
useScreenStore
}
from
'@/store'
import
{
injectKeyDataSource
}
from
'@/types/injectKey'
import
{
getHtmlPlainText
}
from
'@/utils/common'
import
useEditor
from
'@/utils/Editor/index'
const
datas
=
reactive
({
sortList
:[],
...
...
@@ -91,6 +92,7 @@
const
slidesStore
=
useSlidesStore
()
const
sourceLoadingStore
=
useScreenStore
()
const
{
slides
,
slideIndex
}
=
storeToRefs
(
slidesStore
)
const
{
setNewDatasList
}
=
useEditor
()
watch
(()
=>
datas
.
DataSource
.
DataSourceOverlay
,
(
n
,
o
)
=>
{
if
(
n
){
...
...
@@ -98,8 +100,7 @@
sourceLoadingStore
.
setSourceLoading
(
false
)
}
if
(
!
n
&&
datas
.
loading
){
setNewDatas
()
sourceLoadingStore
.
setSourceLoading
(
true
)
setNewDatasList
(
datas
.
DataSource
)
}
})
const
setType
=
(
x
)
=>
{
...
...
@@ -109,37 +110,8 @@
return
x
.
TemplateList
.
filter
(
item
=>
{
return
item
.
Name
.
indexOf
(
'图'
)
==-
1
})
}
}
const
setNewDatas
=
()
=>
{
const
slidesData
=
slides
.
value
// 更新Slides数据
const
savelides
=
[]
const
newSlides
=
[]
let
obj
=
slidesData
.
find
((
x
,
index
)
=>
{
return
slideIndex
.
value
==
index
})
if
(
obj
){
obj
.
elements
.
forEach
(
x
=>
{
let
dataObj
=
datas
.
DataSource
.
DataSourceList
.
find
(
y
=>
{
return
y
.
id
==
x
.
id
})
if
(
dataObj
){
x
=
dataObj
}
savelides
.
push
(
x
)
})
obj
.
elements
=
JSON
.
parse
(
JSON
.
stringify
(
savelides
))
slidesData
.
forEach
((
x
,
index
)
=>
{
if
(
slideIndex
.
value
==
index
){
x
.
pgaeType
=
datas
.
DataSource
.
pgaeType
x
.
elements
=
obj
.
elements
}
newSlides
.
push
(
x
)
})
slidesStore
.
setSlides
(
JSON
.
parse
(
JSON
.
stringify
(
newSlides
)))
}
}
// 数据源关键数据赋值
const
setTemplateDataSource
=
(
Id
,
index
,
type
)
=>
{
sourceLoadingStore
.
setSourceLoading
(
true
)
datas
.
loading
=
true
if
(
type
)
return
datas
.
DataSource
.
DataSourceList
.
forEach
((
x
,
indexs
)
=>
{
...
...
src/views/Editor/EditorHeader/index.vue
View file @
d63299d0
...
...
@@ -118,7 +118,7 @@ import { svg2Base64 } from '@/utils/svg2Base64'
import
UploadService
from
'@/services/UploadService'
import
{
domainManager
}
from
'@/utils/domainManager'
import
{
ToolbarStates
}
from
'@/types/toolbar'
import
useEditor
from
'@/utils/Editor/index'
import
HotkeyDoc
from
'./HotkeyDoc.vue'
...
...
@@ -136,7 +136,7 @@ import { ElLoading, ElMessage } from 'element-plus'
const
mainStore
=
useMainStore
()
const
slidesStore
=
useSlidesStore
()
const
layoutsStore
=
useSlidesStore
()
const
{
title
,
slides
}
=
storeToRefs
(
slidesStore
)
const
{
title
,
slides
,
slideIndex
}
=
storeToRefs
(
slidesStore
)
const
{
enterScreening
,
enterScreeningFromStart
}
=
useScreening
()
const
{
importSpecificFile
,
importPPTXFile
,
exporting
}
=
useImport
()
const
{
resetSlides
}
=
useSlideHandler
()
...
...
@@ -147,6 +147,7 @@ const hotkeyDrawerVisible = ref(false)
const
editingTitle
=
ref
(
false
)
const
titleInputRef
=
ref
<
InstanceType
<
typeof
Input
>>
()
const
titleValue
=
ref
(
''
)
const
{
setNewDatasList
}
=
useEditor
()
const
{
userInfo
}
=
storeToRefs
(
userStore
())
...
...
@@ -170,7 +171,7 @@ const FeatureImgStore = useScreenStore()
const
ConfigIdStore
=
useScreenStore
()
const
psdVisibleStatus
=
ref
(
false
)
const
{
market
,
model
,
ConfigId
,
CoverImg
,
dataLoading
,
TempId
,
FeatureImg
}
=
storeToRefs
(
useScreenStore
())
const
{
market
,
model
,
ConfigId
,
CoverImg
,
dataLoading
,
TempId
,
FeatureImg
,
SourceLoading
}
=
storeToRefs
(
useScreenStore
())
// 返回到首页
const
goBack
=
()
=>
{
...
...
@@ -330,6 +331,7 @@ const SetTripTemplateConfig = async () => {
}
// 保存
const
setTemplate
=
async
()
=>
{
if
(
SourceLoading
.
value
)
setNewDatasList
(
datas
.
DataSource
)
await
uploadImageHandler
()
let
arr
=
JSON
.
parse
(
JSON
.
stringify
(
slides
.
value
))
if
(
dataLoading
.
value
){
...
...
src/views/Editor/Thumbnails/index.vue
View file @
d63299d0
...
...
@@ -59,6 +59,7 @@ import useLoadSlides from '@/hooks/useLoadSlides'
import
{
injectKeyDataSource
,
injectKeyTemplate
}
from
'@/types/injectKey'
import
ConfigService
from
'@/services/ConfigService'
import
{
getHtmlPlainText
}
from
'@/utils/common'
import
useEditor
from
'@/utils/Editor/index'
import
ThumbnailSlide
from
'@/views/components/ThumbnailSlide/index.vue'
import
LayoutPool
from
'./LayoutPool.vue'
...
...
@@ -79,6 +80,7 @@ const CoverImgStore = useScreenStore()
const
dataLoadingStore
=
useScreenStore
()
const
{
ConfigId
,
TemplateDataSource
,
TemplateType
,
dataLoading
,
TempId
,
SourceLoading
}
=
storeToRefs
(
TemplateTypeStore
)
const
selectedSlidesIndex
=
computed
(()
=>
[...
_selectedSlidesIndex
.
value
,
slideIndex
.
value
])
const
{
setNewDatasList
}
=
useEditor
()
const
presetLayoutPopoverVisible
=
ref
(
false
)
...
...
@@ -131,7 +133,7 @@ watch(() => dataLoading.value, (n,o) =>{
// 监听数据源是否更新
watch
(()
=>
SourceLoading
.
value
,
(
n
,
o
)
=>
{
if
(
n
){
setNewDatas
()
}
})
...
...
@@ -299,43 +301,12 @@ const GetTripTemplate = async () =>{
}
}
// 切换页面前保存数据源
const
setNewDatas
=
()
=>
{
const
slidesData
=
slides
.
value
// 更新Slides数据
const
savelides
=
[]
const
newSlides
=
[]
let
obj
=
slidesData
.
find
((
x
,
index
)
=>
{
return
slideIndex
.
value
==
index
})
if
(
obj
){
obj
.
elements
.
forEach
(
x
=>
{
let
dataObj
=
datas
.
DataSource
.
DataSourceList
.
find
(
y
=>
{
return
y
.
id
==
x
.
id
})
if
(
dataObj
){
x
=
dataObj
}
savelides
.
push
(
x
)
})
obj
.
elements
=
JSON
.
parse
(
JSON
.
stringify
(
savelides
))
slidesData
.
forEach
((
x
,
index
)
=>
{
if
(
slideIndex
.
value
==
index
){
x
.
pgaeType
=
datas
.
DataSource
.
pgaeType
x
.
elements
=
obj
.
elements
}
newSlides
.
push
(
x
)
})
slidesStore
.
setSlides
(
JSON
.
parse
(
JSON
.
stringify
(
newSlides
)))
}
}
// 页面被切换时
const
thumbnailsRef
=
ref
<
InstanceType
<
typeof
Draggable
>>
()
// 切换页面
const
changeSlideIndex
=
(
index
:
number
)
=>
{
if
(
SourceLoading
.
value
)
setNewDatasList
(
datas
.
DataSource
)
mainStore
.
setActiveElementIdList
([])
// 绑定数据源
const
newElements
=
slides
.
value
.
find
((
slide
,
indexs
)
=>
{
...
...
@@ -372,6 +343,7 @@ const changeSlideIndex = (index: number) => {
}
})
if
(
slideIndex
.
value
===
index
)
return
slidesStore
.
updateSlideIndex
(
index
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment