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
798f2bc5
Commit
798f2bc5
authored
Jun 05, 2024
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
云盘 优化
parent
71493e12
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
164 additions
and
90 deletions
+164
-90
index.vue
src/components/CloudDisk/index.vue
+47
-42
temDetails.vue
src/components/home/temDetails.vue
+31
-10
aliyun.ts
src/utils/upload/aliyun.ts
+25
-3
UploadPicture.vue
src/views/Editor/CanvasTool/UploadPicture.vue
+3
-3
index.vue
src/views/Editor/Thumbnails/index.vue
+7
-0
Index.vue
src/views/Market/Index.vue
+24
-3
Share.vue
src/views/SellTemplate/Share.vue
+0
-23
Index.vue
src/views/TemplateCenter/Index.vue
+27
-6
No files found.
src/components/CloudDisk/index.vue
View file @
798f2bc5
...
...
@@ -4,11 +4,11 @@
<div
class=
"row CloudDisk-L-inquire"
>
<el-input
v-model=
"GName"
placeholder=
"搜索分组名称"
@
keyup
.
enter=
"querySearchGroup"
@
change
=
"SearchGroup"
>
@
input
=
"SearchGroup"
>
</el-input>
<el-button
type=
"primary"
@
click=
"addEditGroup"
>
添加
</el-button>
</div>
<div
class=
"CloudDisk-L-Center fz14"
>
<div
class=
"CloudDisk-L-Center fz14"
v-loading=
"deleteLoading"
>
<div
class=
"CloudDisk-L-Title row flex-between cusor-pointer"
v-for=
"(item,index) in GroupList"
:key=
"index"
@
click
.
stop=
"Search(item)"
:class=
"[queryObj.CloudGroupId==item.Id?'active':'']"
>
...
...
@@ -24,7 +24,7 @@
<el-dropdown-item
@
click
.
stop=
"EditGroup(item)"
>
<el-button
type=
"default"
link
:icon=
"Edit"
size=
"small"
>
重命名
</el-button>
</el-dropdown-item>
<el-dropdown-item
@
click
.
stop=
"deleteGroup(item)"
>
<el-dropdown-item
v-if=
"!item.IsCanDelete"
@
click
.
stop=
"deleteGroup(item)"
>
<el-button
type=
"default"
link
:icon=
"Delete"
size=
"small"
>
删除分组
</el-button>
</el-dropdown-item>
</el-dropdown-menu>
...
...
@@ -32,8 +32,8 @@
</el-dropdown>
</template>
<div
v-else
></div>
<span>
{{item.RecordNum?item.RecordNum:''}}
<
template
v-if=
"!item.RecordNum"
>
</
template
>
<span
v-if=
"item.RecordNum>0"
>
{{item.RecordNum?item.RecordNum:''}}
<
!-- <template v-if="!item.RecordNum"> </template> --
>
</span>
</div>
...
...
@@ -43,7 +43,8 @@
<div
class=
"CloudDisk-R grow"
>
<div
class=
"row CloudDisk-R-inquire"
>
<el-input
v-model=
"queryObj.FileName"
placeholder=
"请输入图片名称搜索"
@
keyup
.
enter=
"Search"
>
placeholder=
"请输入图片名称搜索"
@
keyup
.
enter=
"Search"
@
input=
"SearchImg"
>
</el-input>
</div>
<div
ref=
"imgDiskRef"
style=
"height: 420px;padding-top: 20px;"
>
...
...
@@ -63,7 +64,7 @@
<div
class=
"CloudDisk-R-Box cursor-pointer"
:class=
"[ImgId==item.DetailsId?'active':'']"
@
click=
"setImg(item)"
>
<div
class=
"CloudDisk-R-Img"
>
<el-image
:src=
"item.FilePath"
style=
"width: 80px; height: 80px"
<el-image
:src=
"item.FilePath"
style=
"width: 80px; height: 80px
;
"
fit=
"cover"
/>
<!--
<el-image
style=
"width: 80px; height: 80px"
...
...
@@ -80,7 +81,11 @@
<IconClose
:size=
"10"
></IconClose>
</span>
</div>
<span
class=
"title block"
>
{{
item
.
FileName
}}
</span>
<span
class=
"title block"
>
<el-tooltip
effect=
"dark"
:content=
"item.FileName"
placement=
"top"
>
{{
item
.
FileName
}}
</el-tooltip>
</span>
</div>
</
template
>
...
...
@@ -130,6 +135,7 @@ import { getImageDataURL } from '@/utils/image'
import
AliyunUpload
from
'@/utils/upload/aliyun'
import
{
useUserStore
}
from
"@/store"
;
import
{
storeToRefs
}
from
'pinia'
import
{
ApiResult
}
from
"@/configs/axios"
;
const
{
token
,
userInfo
}
=
storeToRefs
(
useUserStore
())
...
...
@@ -157,12 +163,15 @@ const loading = ref(false)
const
GroupList
=
ref
([]
as
any
)
const
setLoading
=
ref
(
false
)
const
deleteLoading
=
ref
<
any
>
(
null
)
const
deleteLoading
=
ref
(
false
)
const
deleteImgLoading
=
ref
<
any
>
(
null
)
const
props
=
defineProps
({
active
:
''
as
any
,
show
:
false
as
Boolean
})
const
GroupObj
=
ref
({}
as
any
)
const
emit
=
defineEmits
<
{
(
event
:
'setImg'
):
void
}
>
()
...
...
@@ -186,7 +195,7 @@ const insertImageElement = async (files: FileList) => {
let
parms
=
{
isppt
:
'1'
,
uid
:
token
.
value
,
gid
:
GroupId
.
value
gid
:
queryObj
.
CloudGroupId
}
let
filePath
=
"tripImg/"
;
console
.
log
(
"ssss"
);
...
...
@@ -199,8 +208,11 @@ const insertImageElement = async (files: FileList) => {
// 删除
const
deleteImg
=
(
item
:
any
)
=>
{
let
text
if
(
item
.
IsCanDelete
)
text
=
'删除此图会影响模板正常使用,将无法恢复,是否确定?'
else
text
=
'此操作将删除该图,是否确定?'
ElMessageBox
.
confirm
(
`
此操作将删除该图,是否确定?
`
,
`
${
text
}
`
,
'提示'
,
{
confirmButtonText
:
'确定'
,
...
...
@@ -209,16 +221,12 @@ const deleteImg = (item:any) => {
}
).
then
(
async
()
=>
{
try
{
deleteLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
'正在处理'
})
loading
.
value
=
true
let
dataRes
=
await
CloudDiskService
.
RemovePPTCloudInfo
(
item
.
DetailsId
)
if
(
dataRes
.
data
.
resultCode
==
1
)
{
if
(
dataRes
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
querySearchHandler
()
}
deleteLoading
.
value
.
close
()
deleteLoading
.
value
=
null
loading
.
value
=
false
}
catch
(
error
)
{}
}).
catch
(()
=>
{})
...
...
@@ -237,7 +245,7 @@ const setGroup = async () =>{
})
setLoading
.
value
=
true
let
pageRes
=
await
CloudDiskService
.
SetPPTCloudGroup
(
addEditMsg
);
if
(
pageRes
.
data
.
resultCode
==
1
)
{
if
(
pageRes
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
dialogFormVisible
.
value
=
false
querySearchGroup
()
}
...
...
@@ -274,16 +282,12 @@ const deleteGroup = (item:any) => {
let
queryMsg
=
{
TempId
:
item
.
TempId
}
deleteLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
'正在处理'
})
deleteLoading
.
value
=
true
let
dataRes
=
await
CloudDiskService
.
RemovePPTCloudGroup
(
item
.
Id
)
if
(
dataRes
.
data
.
resultCode
==
1
)
{
querySearchGroup
()
}
deleteLoading
.
value
.
close
()
deleteLoading
.
value
=
null
deleteLoading
.
value
=
false
}
catch
(
error
)
{}
}).
catch
(()
=>
{})
...
...
@@ -295,27 +299,26 @@ const SearchGroup = () => {
const
querySearchGroup
=
async
()
=>
{
try
{
let
datasRes
=
await
CloudDiskService
.
GetPPTCloudList
(
GName
.
value
);
if
(
datasRes
.
data
.
resultCode
==
1
)
{
GroupList
.
value
=
datasRes
.
data
.
data
let
total
=
0
console
.
log
(
datasRes
.
data
.
data
.
length
)
for
(
let
i
=
0
;
i
<
datasRes
.
data
.
data
.
length
;
i
++
){
total
+=
datasRes
.
data
.
data
[
i
].
RecordNum
}
if
(
datasRes
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
GroupList
.
value
=
datasRes
.
data
.
data
.
list
GroupList
.
value
.
unshift
({
Id
:
''
,
GName
:
'全部'
,
RecordNum
:
0
RecordNum
:
datasRes
.
data
.
data
.
TotalNum
})
querySearchHandler
()
}
}
catch
(
error
)
{
}
}
const
SearchImg
=
()
=>
{
if
(
queryObj
.
FileName
==
''
)
Search
()
}
const
Search
=
(
item
:
any
)
=>
{
if
(
item
)
queryObj
.
CloudGroupId
=
item
.
Id
if
(
item
)
{
queryObj
.
CloudGroupId
=
item
.
Id
GroupObj
.
value
=
item
}
queryObj
.
pageIndex
=
1
querySearchHandler
()
}
...
...
@@ -325,7 +328,7 @@ const querySearchHandler = async () =>{
try
{
if
(
queryObj
.
pageIndex
==
1
)
dataList
.
value
=
[]
let
pageRes
=
await
CloudDiskService
.
GetPPTCloudInfoPage
(
queryObj
);
if
(
pageRes
.
data
.
resultCode
==
1
)
{
if
(
pageRes
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
let
arrList
=
function
(
list
){
list
.
forEach
(
x
=>
{
x
.
checked
=
false
...
...
@@ -335,7 +338,6 @@ const querySearchHandler = async () =>{
dataList
.
value
=
pageRes
.
data
.
data
.
pageData
//dataList.value.concat(pageRes.data.data.pageData);
queryObj
.
pageCount
=
pageRes
.
data
.
data
.
pageCount
;
queryObj
.
total
=
pageRes
.
data
.
data
.
count
;
if
(
!
GName
.
value
&&!
GroupList
.
value
[
0
].
RecordNum
)
GroupList
.
value
[
0
].
RecordNum
=
pageRes
.
data
.
data
.
count
}
setTimeout
(()
=>
{
loading
.
value
=
false
...
...
@@ -365,6 +367,7 @@ const handleCurrentChange = (val: number) => {
}
querySearchGroup
()
querySearchHandler
()
onMounted
(()
=>
{
// imgDiskRef.value.addEventListener("scroll", scrollingHandler);
})
...
...
@@ -372,7 +375,7 @@ onMounted(()=>{
<
style
lang=
"scss"
scoped
>
.CloudDisk-L
{
border-right
:
1px
solid
#E9E9E9
;
padding
:
0
2
2
px
22px
0
;
padding
:
0
2
0
px
22px
0
;
}
.CloudDisk-L-inquire
{
margin-bottom
:
20px
;
...
...
@@ -477,8 +480,9 @@ onMounted(()=>{
font-size
:
14px
;
color
:
#000000
;
}
.CloudDisk-L-Center
,
.CloudDisk-R-Center
{
/* max-height: 100px; */
.CloudDisk-L-Center
{
max-height
:
420px
;
overflow-y
:
scroll
;
}
.CloudDisk-R-Box.active
.CloudDisk-R-Img
{
width
:
80px
;
...
...
@@ -491,9 +495,10 @@ onMounted(()=>{
.CloudDisk-R-Box
.close-btn
{
position
:
absolute
;
top
:
-10px
;
right
:
-
10
px
;
right
:
-
2
px
;
width
:
20px
;
height
:
20px
;
background
:
#fff
;
border
:
1px
solid
#AFAFAF
;
text-align
:
center
;
color
:
#AFAFAF
;
...
...
src/components/home/temDetails.vue
View file @
798f2bc5
...
...
@@ -55,13 +55,21 @@
<div
class=
"MarketAdd MarketAddw140 pointer"
@
click=
"goToTemplate(showCurrentTemplate)"
>
立即使用
</div>
</div>
</div>
<
template
v-if=
"showCurrentTemplate.PageImageList.length>1"
>
<
!-- <
template v-if="showCurrentTemplate.PageImageList.length>1">
<div class="MarketDetaSw MarketDetaSwL" v-if="datas.currentImg!=0">
<div class="cursor-pointer" @click="ToggleImg('left')"></div>
</div>
<div class="MarketDetaSw MarketDetaSwR" v-if="datas.currentImg<showCurrentTemplate.PageImageList.length-1">
<div class="cursor-pointer" @click="ToggleImg('right')"></div>
</div>
</template> -->
<
template
v-if=
"props.Total>0"
>
<div
class=
"MarketDetaSw MarketDetaSwL"
v-if=
"props.TemCurrent!=0"
>
<div
class=
"cursor-pointer"
@
click=
"ToggleImg('left')"
></div>
</div>
<div
class=
"MarketDetaSw MarketDetaSwR"
v-if=
"props.TemCurrent
<props
.
Total-1
"
>
<div
class=
"cursor-pointer"
@
click=
"ToggleImg('right')"
></div>
</div>
</
template
>
</div>
</el-dialog>
...
...
@@ -128,10 +136,20 @@ const props = defineProps({
Details
:{
type
:
Object
,
default
:
{},
}
},
TemCurrent
:{
type
:
Number
,
default
:
0
,
},
Total
:{
type
:
Number
,
default
:
0
,
},
})
const
emit
=
defineEmits
<
{
(
event
:
'close'
):
void
,
(
event
:
'previous'
):
void
,
(
event
:
'next'
):
void
,
}
>
()
// 删除监听滚动
...
...
@@ -142,16 +160,19 @@ const CloseDetails = () => {
const
ToggleImg
=
(
text
:
String
)
=>
{
if
(
text
==
'left'
){
if
(
datas
.
currentImg
>
0
)
{
datas
.
currentImg
--
scrollContainer
.
value
.
scrollTop
=
imgList
.
value
[
datas
.
currentImg
].
imgTop
}
props
.
TemCurrent
emit
(
'previous'
)
// if(datas.currentImg>0) {
// datas.currentImg--
// scrollContainer.value.scrollTop = imgList.value[datas.currentImg].imgTop
// }
}
if
(
text
==
'right'
){
if
(
datas
.
currentImg
<
imgList
.
value
.
length
-
1
)
{
datas
.
currentImg
++
scrollContainer
.
value
.
scrollTop
=
imgList
.
value
[
datas
.
currentImg
].
imgTop
}
emit
(
'next'
)
// if(datas.currentImg
<
imgList
.
value
.
length
-
1
)
{
// datas.currentImg++
// scrollContainer.value.scrollTop = imgList.value[datas.currentImg].imgTop
// }
}
}
...
...
src/utils/upload/aliyun.ts
View file @
798f2bc5
import
{
domainManager
}
from
"../domainManager"
;
import
{
useUserStore
}
from
"@/store"
;
import
{
storeToRefs
}
from
'pinia'
import
{
ElMessage
}
from
"element-plus"
;
const
{
token
}
=
storeToRefs
(
useUserStore
())
class
AliyunUpload
{
static
UploadAsync
=
async
(
file
:
any
,
name
:
string
)
=>
{
try
{
const
formData
=
new
FormData
();
formData
.
append
(
'file'
,
file
);
let
parms
=
{
istemp
:
1
,
isppt
:
1
,
uid
:
token
.
value
}
formData
.
append
(
'parms'
,
JSON
.
stringify
(
parms
))
const
response
=
await
fetch
(
`
${
domainManager
().
UploadUrl
}
/Upload/UploadToALiOSS?filePath=
${
encodeURIComponent
(
name
)}
`
,
{
method
:
'POST'
,
body
:
formData
,
...
...
@@ -12,7 +22,13 @@ class AliyunUpload {
if
(
response
.
ok
)
{
let
result
=
await
response
.
text
()
let
datas
=
JSON
.
parse
(
result
)
return
'https://im.oytour.com'
+
datas
.
FilePath
if
(
datas
.
FilePath
)
return
'https://im.oytour.com'
+
datas
.
FilePath
else
{
ElMessage
.
warning
({
showClose
:
true
,
message
:
datas
.
Message
,
})
}
}
return
''
}
catch
(
error
)
{
...
...
@@ -30,7 +46,7 @@ class AliyunUpload {
if
(
response
.
ok
)
{
let
result
=
await
response
.
text
()
let
datas
=
JSON
.
parse
(
result
)
return
`
${
domainManager
().
ViittoFileUrl
}
`
+
datas
.
FilePath
return
'https://im.oytour.com'
+
datas
.
FilePath
}
return
''
}
catch
(
error
)
{
...
...
@@ -49,7 +65,13 @@ class AliyunUpload {
if
(
response
.
ok
)
{
let
result
=
await
response
.
text
()
let
datas
=
JSON
.
parse
(
result
)
return
'https://im.oytour.com'
+
datas
.
FilePath
if
(
datas
.
FilePath
)
return
'https://im.oytour.com'
+
datas
.
FilePath
else
{
ElMessage
.
warning
({
showClose
:
true
,
message
:
datas
.
Message
,
})
}
}
return
''
}
catch
(
error
)
{
...
...
src/views/Editor/CanvasTool/UploadPicture.vue
View file @
798f2bc5
...
...
@@ -58,7 +58,7 @@
</div>
</el-tab-pane>
<el-tab-pane
label=
"本地图"
name=
"2"
>
<FileInput
@
change=
"files => insertImageElement(files)"
>
<
!-- <
FileInput @change="files => insertImageElement(files)">
<div class="upload-box">
<img v-if="imgPath" :src="imgPath" style="height: 200px;"/>
<div v-else>
...
...
@@ -68,8 +68,8 @@
<p><em>点击上传图片</em></p>
</div>
</div>
</FileInput>
<
!-- <CloudDisk :show="showVisible" :active="activeName" @getImg="getImg"></CloudDisk> --
>
</FileInput>
-->
<
CloudDisk
:show=
"showVisible"
:active=
"activeName"
@
getImg=
"getImg"
></CloudDisk
>
</el-tab-pane>
<el-tab-pane
label=
"图片地址"
name=
"3"
>
<div
class=
"row wrap q-mt-md"
>
...
...
src/views/Editor/Thumbnails/index.vue
View file @
798f2bc5
...
...
@@ -578,6 +578,13 @@ const getColorShade = async (newSlides:any) => {
x
.
elements
=
newElements
}
}
if
(
searchData
.
value
.
isTeamManage
){
for
(
let
i
=
0
;
i
<
newSlides
.
length
;
i
++
){
for
(
let
j
=
0
;
j
<
newSlides
[
i
].
elements
.
length
;
j
++
){
if
(
newSlides
[
i
].
elements
[
j
].
layerName
&&
newSlides
[
i
].
elements
[
j
].
layerName
.
indexOf
(
'logo'
)
!=-
1
)
newSlides
[
i
].
elements
[
j
].
lock
=
false
}
}
}
layoutsStore
.
setLayouts
(
JSON
.
parse
(
JSON
.
stringify
(
newSlides
)))
if
(
searchData
.
value
.
sellId
&&!
searchData
.
value
.
TempId
)
return
slidesStore
.
setSlides
(
newSlides
)
...
...
src/views/Market/Index.vue
View file @
798f2bc5
...
...
@@ -174,7 +174,7 @@
</div>
<div>
<div
class=
"MarketOpa2"
></div>
<el-icon
size=
"23px"
theme=
"filled"
class=
"MarketIconAbsolute cusor-pointer"
@
click=
"getTemplate(item)"
>
<el-icon
size=
"23px"
theme=
"filled"
class=
"MarketIconAbsolute cusor-pointer"
@
click=
"getTemplate(item
,index
)"
>
<View></View>
</el-icon>
</div>
...
...
@@ -205,7 +205,13 @@
</div>
<!-- 行程、广告图详情 -->
<temDetails
:DetaTem=
"DetailsVisible"
:Details=
"datas.TemDetails"
@
close=
"DetailsVisible=false"
/>
<temDetails
:DetaTem=
"DetailsVisible"
:Details=
"datas.TemDetails"
:Total=
"dataList.length"
:TemCurrent=
"datas.currentImg"
@
close=
"DetailsVisible=false"
@
previous=
"previous"
@
next=
"next"
/>
<!-- vip购买提示 -->
<vipFooter
v-if=
"!userInfo.iv&&!userInfo.it&&!userInfo.OpenPrompt"
@
close=
"closeVip"
></vipFooter>
</template>
...
...
@@ -372,10 +378,25 @@ const deleteTemplate = (item:any) => {
}
const
previous
=
()
=>
{
if
(
datas
.
currentImg
>
0
){
datas
.
currentImg
--
let
item
=
dataList
.
value
[
datas
.
currentImg
]
getTemplate
(
item
,
datas
.
currentImg
)
}
}
const
next
=
()
=>
{
if
(
datas
.
currentImg
<
dataList
.
value
.
length
-
1
){
datas
.
currentImg
++
let
item
=
dataList
.
value
[
datas
.
currentImg
]
getTemplate
(
item
,
datas
.
currentImg
)
}
}
// 查看所有子模版
const
getTemplate
=
(
item
:
any
)
=>
{
const
getTemplate
=
(
item
:
any
,
index
:
Number
)
=>
{
DetailsVisible
.
value
=
true
datas
.
TemDetails
=
item
datas
.
currentImg
=
index
}
/**
...
...
src/views/SellTemplate/Share.vue
View file @
798f2bc5
...
...
@@ -106,7 +106,6 @@ import { PropType, inject, reactive, ref, watch } from "vue";
import
{
createPlayLink
,
createSaleEditorLink
,
formatDateTimeToRead
,
query
}
from
'@/utils/common'
import
breadPeeling
from
'./components/breadPeeling.vue'
import
CopyFile
from
'./components/CopyFile.vue'
import
{
useScreenStore
,
useSellTemplateStore
,
useSlidesStore
}
from
"@/store"
;
import
{
injectKeyTemplate
}
from
"@/types/injectKey"
;
import
FolderService
from
"@/services/FolderService"
;
import
{
ArrowDown
,
ArrowUp
}
from
"@element-plus/icons-vue"
;
...
...
@@ -167,28 +166,6 @@ const breadPeelingInquire = (FileId: number, index: number) => {
refreshHandler
();
}
const
editorFileHandler
=
(
item
:
any
)
=>
{
let
list
:
any
=
[{
id
:
"test-slide-1"
,
pageType
:
0
,
elements
:
[],
background
:
{
type
:
"solid"
,
color
:
"#ffffff"
,
},
}];
// const SalesEditorStore = useSellTemplateStore();
// useSlidesStore().setSlides(list);
// const marketStore = useScreenStore();
// searchData.value.sellId = item.FileId;
// searchData.value.sellTempId = item.TempId;
// searchData.value.TemplateType = item.FileType;
// searchData.value.ParentFileId = 0
// if(item.IsDownload==0) searchData.value.noExportPermission = true
// else searchData.value.noExportPermission = false
// if(item.IsView==0) searchData.value.noCopyPermission = true
// else searchData.value.noCopyPermission = false
// SalesEditorStore.setSalesEditor(2);
// marketStore.setMarket(false);
const
cp
=
item
.
IsView
==
0
?
0
:
1
const
ep
=
item
.
IsDownload
==
0
?
0
:
1
//@TODO:返回字段中缺少CreateBy,
...
...
src/views/TemplateCenter/Index.vue
View file @
798f2bc5
...
...
@@ -197,7 +197,13 @@
</el-table-column>
</el-table>
<!-- 行程、广告图详情 -->
<temDetails
:DetaTem=
"DetailsVisible"
:Details=
"datas.TemDetails"
@
close=
"DetailsVisible=false"
/>
<temDetails
:DetaTem=
"DetailsVisible"
:Details=
"datas.TemDetails"
:Total=
"dataList.length"
:TemCurrent=
"datas.currentImg"
@
close=
"DetailsVisible=false"
@
previous=
"previous"
@
next=
"next"
/>
</template>
<
script
setup
lang=
"ts"
>
...
...
@@ -209,7 +215,7 @@ import { useSellTemplateStore,useSlidesStore } from '@/store'
import
{
useScreenStore
}
from
"@/store/screen"
;
import
{
storeToRefs
}
from
"pinia"
;
import
{
injectKeyTemplate
}
from
'@/types/injectKey'
import
{
createOpEditorLink
,
createSaleCreateLink
,
managerTemplateLink
}
from
'@/utils/common'
import
{
createOpEditorLink
,
createSaleCreateLink
,
managerTemplateLink
,
noDataImg
,
openNewBlank
}
from
'@/utils/common'
import
{
ElLoading
,
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useRouter
}
from
"vue-router"
;
import
UserCard
from
"@/components/User/UserCard.vue"
;
...
...
@@ -217,7 +223,6 @@ import temDetails from "@/components/home/temDetails.vue";
import
{
Edit
,
Delete
,
View
,
Search
}
from
'@element-plus/icons-vue'
;
import
{
VIEWPORT_SIZE
,
VIEWPORT_VER_SIZE
}
from
'@/configs/canvas'
import
{
noDataImg
}
from
"@/utils/common"
;
const
slidesStore
=
useSlidesStore
()
...
...
@@ -475,10 +480,25 @@ const handleScroll = (e) =>{
if
(
temp
>=
PageImageList
[
i
].
imgTop
&&
datas
.
currentImg
!=
i
)
datas
.
currentImg
=
i
}
}
const
previous
=
()
=>
{
if
(
datas
.
currentImg
>
0
){
datas
.
currentImg
--
let
item
=
dataList
.
value
[
datas
.
currentImg
]
getTemplate
(
item
,
datas
.
currentImg
)
}
}
const
next
=
()
=>
{
if
(
datas
.
currentImg
<
dataList
.
value
.
length
-
1
){
datas
.
currentImg
++
let
item
=
dataList
.
value
[
datas
.
currentImg
]
getTemplate
(
item
,
datas
.
currentImg
)
}
}
// 查看所有子模版
const
getTemplate
=
async
(
item
:
any
)
=>
{
DetailsVisible
.
value
=
true
datas
.
TemDetails
=
item
datas
.
currentImg
=
index
}
/**
...
...
@@ -490,9 +510,10 @@ const goToTemplate = (item: any) => {
let
url
=
''
url
=
managerTemplateLink
(
item
.
TempId
,
item
.
TemplateType
)
if
(
url
!=
''
)
{
router
.
push
({
path
:
url
})
openNewBlank
(
url
)
// router.push({
// path:url
// })
}
}
...
...
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