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
aba7228d
Commit
aba7228d
authored
May 30, 2024
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化 模版编辑 及销售行程返回调整
parent
bfd93671
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
79 additions
and
58 deletions
+79
-58
temDetails.vue
src/components/home/temDetails.vue
+8
-2
slides.ts
src/store/slides.ts
+15
-0
index.vue
src/views/Editor/EditorHeader/index.vue
+9
-31
index.vue
src/views/Editor/Thumbnails/index.vue
+15
-7
Index.vue
src/views/Market/Index.vue
+5
-1
PreviewCover.vue
src/views/Preview/PreviewCover.vue
+9
-4
Workspace.vue
src/views/SellTemplate/Workspace.vue
+6
-2
Index.vue
src/views/TemplateCenter/Index.vue
+12
-11
No files found.
src/components/home/temDetails.vue
View file @
aba7228d
...
...
@@ -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
...
...
src/store/slides.ts
View file @
aba7228d
...
...
@@ -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
src/views/Editor/EditorHeader/index.vue
View file @
aba7228d
...
...
@@ -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
=
()
=>
{
...
...
src/views/Editor/Thumbnails/index.vue
View file @
aba7228d
...
...
@@ -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
...
...
src/views/Market/Index.vue
View file @
aba7228d
...
...
@@ -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
)
...
...
src/views/Preview/PreviewCover.vue
View file @
aba7228d
...
...
@@ -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
...
...
src/views/SellTemplate/Workspace.vue
View file @
aba7228d
...
...
@@ -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
)
=>
{
...
...
src/views/TemplateCenter/Index.vue
View file @
aba7228d
...
...
@@ -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
=
()
=>
{
...
...
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