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
f46fc611
Commit
f46fc611
authored
Feb 23, 2024
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
最近 列表 收藏
parent
fe95c51f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
609 additions
and
143 deletions
+609
-143
BrowsingHistory.vue
src/views/SellTemplate/components/BrowsingHistory.vue
+73
-143
journeyAdsList.vue
src/views/SellTemplate/components/journeyAdsList.vue
+536
-0
No files found.
src/views/SellTemplate/components/BrowsingHistory.vue
View file @
f46fc611
...
...
@@ -18,17 +18,17 @@
</div>
</div>
<div>
<
!--
<
el-dropdown
v-if=
"datas.selectedDatas.length>0"
trigger=
"click"
class=
"q-px-md"
>
<el-dropdown
v-if=
"datas.selectedDatas.length>0"
trigger=
"click"
class=
"q-px-md"
>
<el-button>
<el-icon><CopyDocument
/></el-icon>
<span
class=
""
>
批量操作
</span>
</el-button>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
icon=
"Expand"
>
</el-dropdown-item>
<el-dropdown-item
icon=
"Expand"
@
click=
"MoveFile(0)"
>
移动至
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
-->
</el-dropdown>
<el-dropdown
trigger=
"click"
>
<el-button>
新建
</el-button>
<
template
#
dropdown
>
...
...
@@ -56,14 +56,14 @@
<div
style=
"min-width: '700px';height: 100%;"
>
<table
class=
"text-small"
style=
"width: 100%"
>
<tr
@
click=
"OffEdit"
>
<th
class=
"text-left"
style=
"width: 20px;"
>
<
!-- <
el-checkbox
<th
v-if=
"currentMenu==3||currentMenu==4"
class=
"text-left"
style=
"width: 20px;"
>
<el-checkbox
size=
"sm"
class=
"SelectAllBox"
v-model=
"datas.selectAll"
@
click=
"clickSelectAll"
:indeterminate=
"isIndeterminate"
/>
-->
/>
</th>
<th
colspan=
"2"
class=
"text-light"
>
<div
class=
"text-left q-pl-md"
>
文档名称
</div>
...
...
@@ -86,67 +86,15 @@
操作
</th>
</tr>
<
template
v-for=
"(item,index) in dataList"
>
<tr
class=
"text-5B5D62 journeyAdsple-table pointer"
>
<td
@
click
.
stop=
"OffEdit()"
>
<!--
<div
class=
"row items-center hoverShow"
:style=
"
{'opacity':item.singleChoice?1:''}">
<el-checkbox
size=
"sm"
class=
"SelectAllBox"
v-model=
"item.singleChoice"
@
click
.
stop=
"singleChoice(item)"
/></div>
-->
</td>
<td
style=
"width: 30px;"
@
click
.
stop=
"OffEdit()"
valign=
"middle"
>
<div
:class=
"
{'share-icon-box':item.IsShare}" style="display: inline-block;">
<img
v-if=
"item.FileType"
class=
"q-px-md "
:src=
"item.FileType==1?datas.pdfImg:datas.adsImg"
style=
"height: 25px;"
/>
<img
v-else
class=
"q-px-md"
src=
"@/assets/img/file.png"
style=
"height: 23px;"
/>
</div>
</td>
<td
class=
"journeyAds-title wrap row"
>
<div
class=
"col"
v-if=
"!item.editTitle"
@
click
.
stop=
"OffEdit()"
>
<div
class=
"row flex-center"
>
<el-tooltip
placement=
"top-start"
>
<template
#
content
><div
style=
"max-width: 600px;"
>
{{
item
.
FileName
}}
</div></
template
>
<div
class=
"journeyAds-TitleCenter"
>
{{item.FileName}}
<span
v-if=
"item.FileName.length>70"
>
...
</span>
</div>
</el-tooltip>
</div>
</div>
<el-input
class=
"journeyAds-Input"
v-model=
"item.FileName"
autosize
type=
"textarea"
placeholder=
"Please input"
maxlength=
"500"
size=
"small"
v-if=
"item.editTitle"
@
blur=
"handleUpdateTitle(item)"
/></td>
<td
class=
"text-center"
@
click
.
stop=
"OffEdit()"
><span>
{{item.Day?item.Day+'天前':item.UpdateTime}}
</span></td>
<td
class=
"text-center"
@
click
.
stop=
"OffEdit()"
><span>
{{item.CreateName}}
</span></td>
<td
class=
"text-center"
>
<div
class=
"hoverShow row items-center just-center q-pt-sm"
>
<el-button
type=
"primary"
:icon=
"Edit"
size=
"small"
@
click
.
stop=
"editDelete(item)"
>
编辑
</el-button>
<el-dropdown
class=
"q-pl-md"
trigger=
"click"
>
<el-icon
size=
"16"
color=
"#b1b7cf"
><MoreFilled
/></el-icon>
<
template
#
dropdown
>
<el-dropdown-menu
class=
"q-pa-md"
@
click
.
stop=
"OffEdit"
>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"EditPen"
@
click
.
stop=
"startEditTitle(item)"
>
重命名
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"Clock"
@
click
.
stop=
"history(item)"
>
历史版本
</el-dropdown-item>
<el-dropdown-item
icon=
"Position"
@
click
.
stop=
"()=>shareId=item.FileId"
>
分享
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.IsShare"
icon=
"Hide"
@
click
.
stop=
"removeShareHandler(item)"
>
取消分享
</el-dropdown-item>
<el-dropdown-item
icon=
"Star"
@
click
.
stop=
"CollectHandler(item)"
>
{{
item
.
IsCollect
?
'取消收藏'
:
'收藏'
}}
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"CopyDocument"
@
click
.
stop=
"CopyTo(item)"
>
复制到
</el-dropdown-item>
<!--
<el-dropdown-item
icon=
"Delete"
@
click=
"editDelete(item,1)"
>
删除
</el-dropdown-item>
-->
</el-dropdown-menu>
</
template
>
</el-dropdown>
</div>
</td>
</tr>
</template>
<journeyAdsList
:current-menu=
"currentMenu"
:list=
"dataList"
:msg=
"queryObj"
:sort=
"datas.Sort"
:selected-datas=
"datas.selectedDatas"
@
UpdateData=
"UpdateData"
@
success=
"success"
@
refreshHandler=
"cribrosin"
></journeyAdsList>
</table>
</div>
<div
...
...
@@ -187,6 +135,19 @@
@
close=
"() => {journeyAdsDetails = '';isHistoricalVersion=false}"
></HistoricalVersion>
<TreeFile
v-if=
"isTreeFile"
:details=
"journeyAdsDetails"
:selected-datas=
"datas.selectedDatas"
:set-file-list=
"datas.setFileList"
:file-type=
"queryObj.FileType"
@
close=
"() => {journeyAdsDetails = '';isTreeFile=false}"
@
success=
"() => {
journeyAdsDetails = '';
isTreeFile=false;
datas.selectAll = false;
datas.selectedDatas = [];
refreshHandler()}"
></TreeFile>
<CopyFile
v-if=
"isCopyTo"
:details=
"journeyAdsDetails"
@
close=
"() => {journeyAdsDetails = '';isCopyTo=false}"
></CopyFile>
...
...
@@ -203,7 +164,10 @@
import
{
useSellTemplateStore
,
useScreenStore
,
useSlidesStore
}
from
"@/store"
;
import
ShareForm
from
"./ShareForm.vue"
;
import
HistoricalVersion
from
"./HistoricalVersion.vue"
;
import
TreeFile
from
"./TreeFile.vue"
;
import
breadPeeling
from
"./breadPeeling.vue"
;
import
CopyFile
from
"./CopyFile.vue"
;
import
journeyAdsList
from
"./journeyAdsList.vue"
;
const
SalesEditorStore
=
useSellTemplateStore
();
const
marketStore
=
useScreenStore
();
...
...
@@ -219,6 +183,7 @@
const
journeyAdsDetails
=
ref
(
''
);
const
isHistoricalVersion
=
ref
(
false
);
const
isCopyTo
=
ref
(
false
);
const
isTreeFile
=
ref
(
false
)
const
Navigations
=
ref
([]
as
Array
<
any
>
);
const
showHistory
=
ref
(
true
);
const
isIndeterminate
=
ref
(
false
);
...
...
@@ -254,6 +219,18 @@
const
loading
=
ref
(
false
as
any
);
const
SellTemplateRef
=
ref
<
any
>
();
const
UpdateData
=
(
obj
:
any
)
=>
{
dataList
.
value
=
obj
.
list
singleChoice
(
obj
.
row
)
}
const
success
=
()
=>
{
datas
.
selectAll
=
false
;
datas
.
selectedDatas
=
[]
}
const
cribrosin
=
(
msg
:
any
)
=>
{
if
(
msg
)
queryObj
=
msg
refreshHandler
()
}
// 收藏文件
const
CollectHandler
=
async
(
row
:
any
)
=>
{
try
{
...
...
@@ -331,6 +308,27 @@
SalesEditorStore
.
setSalesEditor
(
type
)
marketStore
.
setMarket
(
true
)
}
// 移动到文件夹
const
MoveFile
=
(
item
:
any
)
=>
{
if
(
item
)
journeyAdsDetails
.
value
=
item
else
{
datas
.
setFileList
=
[]
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
for
(
let
j
=
0
;
j
<
datas
.
selectedDatas
.
length
;
j
++
){
if
(
dataList
.
value
[
i
].
FileId
==
datas
.
selectedDatas
[
j
]){
datas
.
setFileList
.
push
(
{
FileId
:
dataList
.
value
[
i
].
FileId
,
FileType
:
dataList
.
value
[
i
].
FileType
,
ParentFileId
:
dataList
.
value
[
i
].
ParentFileId
}
)
}
}
}
}
isTreeFile
.
value
=
true
}
// 历史版本
const
history
=
(
row
:
any
)
=>
{
...
...
@@ -446,7 +444,11 @@
datas
.
selectAll
=
""
;
isIndeterminate
.
value
=
true
;
}
if
(
datasList
==
0
&&
checkedCount
==
0
)
datas
.
selectAll
=
""
;
console
.
log
(
checkedCount
,
'----'
)
if
(
checkedCount
==
0
)
{
datas
.
selectAll
=
""
isIndeterminate
.
value
=
false
;
}
};
const
DeleteTemplate
=
async
(
item
:
any
)
=>
{
...
...
@@ -595,82 +597,10 @@
position
:
relative
;
top
:
3px
;
}
.journeyAds-title
{
}
.journeyAds-TitleCenter
{
width
:
100%
;
height
:
18px
;
margin-bottom
:
3px
;
overflow
:
hidden
;
/* 隐藏超出部分 */
text-overflow
:
ellipsis
;
/* 显示省略号 */
white-space
:
wrap
;
/* 不换行 */
position
:
relative
;
padding-right
:
20px
;
}
.journeyAds-TitleCenter
span
{
position
:
absolute
;
right
:
16px
;
top
:
0px
;
}
.journeyAds-Input
{
padding-right
:
20px
;
position
:
relative
;
margin-bottom
:
2px
;
::v-deep
(
.el-textarea__inner
)
{
padding
:
5px
;
background
:
#f5f5f5
;
}
}
.journeyAds-container
{
position
:
relative
;
overflow
:
auto
;
}
.journeyAds-container
th
{
background
:
#fff
;
position
:
sticky
;
top
:
0px
;
z-index
:
2
;
}
.journeyAdsple-table
td
>
div
{
display
:
flex
;
}
.journeyAdsple-table
td
,
.journeyAds-container
th
{
border-bottom
:
1px
solid
#f6f6f6
;
}
.journeyAdsple-table
td
:first-child
,
.journeyAdsple-table
td
:nth-child
(
2
),
.journeyAds-container
th
:first-child
{
border
:
0
;
}
.journeyAdsple-table
td
{
padding-bottom
:
6px
;
}
.journeyAdsple-table
td
:nth-child
(
2
)
{
padding-bottom
:
0
;
}
.hoverShow
{
opacity
:
0
;
}
.journeyAdsple-table
:hover
.hoverShow
{
opacity
:
1
;
}
.share-icon-box
{
position
:
relative
;
}
.
share-icon-box
:
:
after
{
display
:
block
;
position
:
absolute
;
bottom
:
-4px
;
right
:
6px
;
content
:
" "
;
background
:
url('../../../assets/img/share.png')
;
width
:
14px
;
height
:
14px
;
z-index
:
2
;
}
.active
{
color
:
$themeColor
;
}
</
style
>
\ No newline at end of file
src/views/SellTemplate/components/journeyAdsList.vue
0 → 100644
View file @
f46fc611
<
template
>
<tr
class=
"text-5B5D62 journeyAdsple-table pointer"
v-for=
"(item,index) in dataList"
>
<td
v-if=
"currentMenu==3||currentMenu==4"
@
click
.
stop=
"OffEdit()"
>
<div
class=
"row items-center hoverShow"
:style=
"
{'opacity':item.singleChoice?1:''}">
<el-checkbox
size=
"sm"
class=
"SelectAllBox"
v-model=
"item.singleChoice"
@
click
.
stop=
"singleChoice(item)"
/></div>
</td>
<td
style=
"width: 30px;"
@
click
.
stop=
"OffEdit()"
valign=
"middle"
>
<div
:class=
"
{'share-icon-box':item.IsShare}" style="display: inline-block;">
<img
v-if=
"item.FileType"
class=
"q-px-md "
:src=
"item.FileType==1?datas.pdfImg:datas.adsImg"
style=
"height: 25px;"
/>
<img
v-else
class=
"q-px-md"
src=
"@/assets/img/file.png"
style=
"height: 23px;"
/>
</div>
</td>
<td
class=
"journeyAds-title wrap row"
>
<div
class=
"col"
v-if=
"!item.editTitle"
@
click
.
stop=
"OffEdit()"
>
<div
class=
"row flex-center"
>
<el-tooltip
placement=
"top-start"
>
<template
#
content
><div
style=
"max-width: 600px;"
>
{{
item
.
FileName
}}
</div></
template
>
<div
class=
"journeyAds-TitleCenter"
>
{{item.FileName}}
<span
v-if=
"item.FileName.length>70"
>
...
</span>
</div>
</el-tooltip>
</div>
</div>
<el-input
class=
"journeyAds-Input"
v-model=
"item.FileName"
autosize
type=
"textarea"
placeholder=
"Please input"
maxlength=
"500"
size=
"small"
v-if=
"item.editTitle"
@
blur=
"handleUpdateTitle(item)"
/></td>
<td
class=
"text-center"
@
click
.
stop=
"OffEdit()"
><span>
{{formatDateTimeToRead(item.UpdateTime
&&
item.UpdateTime!=''?item.UpdateTime:item.CreateTime)}}
</span></td>
<td
class=
"text-center"
@
click
.
stop=
"OffEdit()"
><span>
{{item.CreateName}}
</span></td>
<td
class=
"text-center"
>
<div
class=
"hoverShow row items-center just-center q-pt-sm"
>
<el-button
type=
"primary"
:icon=
"Edit"
size=
"small"
@
click
.
stop=
"editDelete(item)"
>
编辑
</el-button>
<el-dropdown
class=
"q-pl-md"
trigger=
"click"
>
<el-icon
size=
"16"
color=
"#b1b7cf"
><MoreFilled
/></el-icon>
<
template
#
dropdown
>
<el-dropdown-menu
class=
"q-pa-md"
@
click
.
stop=
"OffEdit"
>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"EditPen"
@
click
.
stop=
"startEditTitle(item)"
>
重命名
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"Clock"
@
click
.
stop=
"history(item)"
>
历史版本
</el-dropdown-item>
<el-dropdown-item
icon=
"Position"
@
click
.
stop=
"()=>shareId=item.FileId"
>
分享
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.IsShare"
icon=
"Hide"
@
click
.
stop=
"removeShareHandler(item)"
>
取消分享
</el-dropdown-item>
<el-dropdown-item
v-if=
"currentMenu==3||currentMenu==4"
icon=
"Expand"
@
click
.
stop=
"MoveFile(item)"
>
移动至
</el-dropdown-item>
<el-dropdown-item
@
click
.
stop=
"CollectHandler(item)"
:text-color=
"!item.IsCollect?'#FCC525':'#65676B'"
>
<span
class=
"row items-center"
>
<el-icon
:color=
"item.IsCollect?'#FCC525':'#65676B'"
><Star
/></el-icon>
<span>
{{
item
.
IsCollect
?
'取消收藏'
:
'收藏'
}}
</span>
</span>
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.FileType"
icon=
"CopyDocument"
@
click
.
stop=
"CopyTo(item)"
>
复制到
</el-dropdown-item>
<el-dropdown-item
icon=
"Delete"
@
click=
"editDelete(item,1)"
>
删除
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
</div>
</td>
</tr>
<ShareForm
:id=
"shareId"
v-if=
"shareId > 0"
@
close=
"() => (shareId = 0,emit('refreshHandler'))"
></ShareForm>
<Folder
:folder-id=
"folderObj?.id"
:folder-name=
"folderObj?.name"
:parent-id=
"folderObj.parentId"
:folder-type=
"folderObj?.type"
v-if=
"folderObj.id > -1"
@
close=
"() => (folderObj.id = -1)"
@
success=
"emit('refreshHandler')"
></Folder>
<HistoricalVersion
:details=
"journeyAdsDetails"
v-if=
"isHistoricalVersion"
@
close=
"() => {journeyAdsDetails = '';isHistoricalVersion=false}"
></HistoricalVersion>
<TreeFile
v-if=
"isTreeFile"
:details=
"journeyAdsDetails"
:selected-datas=
"props.selectedDatas"
:set-file-list=
"datas.setFileList"
:file-type=
"journeyAdsDetails.FileType"
@
close=
"() => {journeyAdsDetails = '';isTreeFile=false}"
@
success=
"() => {
journeyAdsDetails = '';
isTreeFile=false;
emit('success')
emit('refreshHandler')}"
></TreeFile>
<CopyFile
v-if=
"isCopyTo"
:details=
"journeyAdsDetails"
@
close=
"() => {journeyAdsDetails = '';isCopyTo=false}"
></CopyFile>
</template>
<
script
setup
lang=
"ts"
>
import
{
ApiResult
}
from
'@/configs/axios'
;
import
OrgService
from
'@/services/OrgService'
;
import
{
ref
,
reactive
,
watch
,
inject
,
nextTick
}
from
'vue'
;
import
{
View
,
Download
,
EditPen
,
Delete
,
Star
}
from
'@element-plus/icons-vue'
;
import
{
ElMessage
,
ElTree
,
ElLoading
,
ElMessageBox
}
from
'element-plus'
;
import
ConfigService
from
"@/services/ConfigService"
;
import
FolderService
from
"@/services/FolderService"
;
import
{
injectKeyTemplate
}
from
"@/types/injectKey"
;
import
{
getDaysBetween
,
formatDateTimeToRead
}
from
"@/utils/common"
;
import
{
useSellTemplateStore
,
useScreenStore
,
useSlidesStore
}
from
"@/store"
;
import
ShareForm
from
"./ShareForm.vue"
;
import
Folder
from
"./Folder.vue"
;
import
HistoricalVersion
from
"./HistoricalVersion.vue"
;
import
TreeFile
from
"./TreeFile.vue"
;
import
breadPeeling
from
"./breadPeeling.vue"
;
import
CopyFile
from
"./CopyFile.vue"
;
const
props
=
defineProps
({
currentMenu
:{
type
:
Number
,
default
:
3
,
},
list
:{
type
:
Array
,
required
:[]
},
msg
:{
type
:
Object
,
required
:{}
},
sort
:{
type
:
Number
,
required
:
0
},
selectedDatas
:{
type
:
Array
,
required
:[]
},
})
const
emit
=
defineEmits
<
{
(
event
:
'close'
):
void
,
(
event
:
'success'
):
void
,
(
event
:
'refreshHandler'
):
void
,
(
event
:
'UpdateData'
):
void
,
}
>
()
const
folderObj
=
ref
<
{
id
:
number
;
name
:
string
;
parentId
:
number
;
type
:
number
;
}
>
({
id
:
-
1
,
name
:
""
,
parentId
:
0
,
number
:
1
});
const
datas
=
reactive
({
selectAll
:
false
as
any
,
journeyAds
:
{
RefreshLoading
:
false
}
as
any
,
fileList
:
[]
as
any
,
setFileList
:
[]
as
any
,
pdfImg
:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png"
,
adsImg
:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png"
,
folderImg
:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png"
,
});
const
SalesEditorStore
=
useSellTemplateStore
();
const
marketStore
=
useScreenStore
();
const
dataList
=
ref
([]
as
Array
<
any
>
);
dataList
.
value
=
props
.
list
const
queryObj
=
ref
({}
as
any
);
queryObj
.
value
=
props
.
msg
const
shareId
=
ref
(
0
);
const
journeyAdsDetails
=
ref
(
''
);
const
isHistoricalVersion
=
ref
(
false
);
const
isCopyTo
=
ref
(
false
);
const
isTreeFile
=
ref
(
false
)
const
Navigations
=
ref
([]
as
Array
<
any
>
);
const
showHistory
=
ref
(
true
);
const
searchData
=
ref
({}
as
any
);
searchData
.
value
=
inject
(
injectKeyTemplate
);
const
deleteLoading
=
ref
<
any
>
(
null
);
const
removeShareLoading
=
ref
<
any
>
(
null
);
const
editObj
=
reactive
({});
// 收藏文件
const
CollectHandler
=
async
(
row
:
any
)
=>
{
try
{
let
queryMsg
=
{
FileId
:
row
.
FileId
,
FileType
:
row
.
FileType
,
IsCollect
:
row
.
IsCollect
?
0
:
1
,
}
deleteLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
"正在处理"
,
});
let
dataRes
=
await
FolderService
.
SetFileCollect
(
queryMsg
);
if
(
dataRes
.
data
.
resultCode
==
1
)
{
ElMessage
({
showClose
:
true
,
message
:
`
${
queryMsg
.
IsCollect
?
'收藏'
:
'取消收藏'
}${
row
.
FileName
}
成功`
,
type
:
"success"
,
});
emit
(
'refreshHandler'
)
}
else
{
ElMessage
({
showClose
:
true
,
message
:
`收藏
${
row
.
FileName
}
失败`
,
type
:
"warning"
,
});
}
deleteLoading
.
value
.
close
();
deleteLoading
.
value
=
null
;
}
catch
(
error
)
{}
}
// 复制文件
const
CopyTo
=
(
row
:
any
)
=>
{
isCopyTo
.
value
=
true
journeyAdsDetails
.
value
=
row
}
// 移动到文件夹
const
MoveFile
=
(
item
:
any
)
=>
{
if
(
item
)
journeyAdsDetails
.
value
=
item
else
{
datas
.
setFileList
=
[]
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
for
(
let
j
=
0
;
j
<
props
.
selectedDatas
.
length
;
j
++
){
if
(
dataList
.
value
[
i
].
FileId
==
props
.
selectedDatas
[
j
]){
datas
.
setFileList
.
push
(
{
FileId
:
dataList
.
value
[
i
].
FileId
,
FileType
:
dataList
.
value
[
i
].
FileType
,
ParentFileId
:
dataList
.
value
[
i
].
ParentFileId
}
)
}
}
}
}
isTreeFile
.
value
=
true
}
// 历史版本
const
history
=
(
row
:
any
)
=>
{
journeyAdsDetails
.
value
=
row
;
isHistoricalVersion
.
value
=
true
};
// 重命名
const
OffEdit
=
()
=>
{
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
)
{
dataList
.
value
[
i
].
editTitle
=
false
;
if
(
editObj
.
value
&&
editObj
.
value
.
FileId
&&
dataList
.
value
[
i
].
FileId
==
editObj
.
value
.
FileId
)
{
dataList
.
value
[
i
].
FileName
=
editObj
.
value
.
FileName
;
}
}
};
const
handleUpdateTitle
=
async
(
row
:
any
)
=>
{
if
(
!
row
.
FileName
)
row
.
FileName
=
editObj
.
value
.
FileName
;
row
.
editTitle
=
false
;
if
(
row
.
FileName
!=
editObj
.
value
.
FileName
)
{
editObj
.
value
.
FileName
=
row
.
FileName
;
try
{
let
queryMsg
=
{
FileId
:
row
.
FileId
,
Title
:
editObj
.
value
.
FileName
,
};
let
TemplateRes
=
await
ConfigService
.
ReNameTripOther
(
queryMsg
);
if
(
TemplateRes
.
data
.
resultCode
==
1
)
{
ElMessage
({
showClose
:
true
,
message
:
"重命名成功"
,
type
:
"success"
,
});
}
else
{
ElMessage
({
showClose
:
true
,
message
:
"重命名失败"
,
type
:
"warning"
,
});
}
}
catch
(
error
)
{}
}
};
const
startEditTitle
=
(
row
:
any
)
=>
{
row
.
editTitle
=
true
;
editObj
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
row
));
};
const
removeShareHandler
=
async
(
item
:
any
)
=>
{
if
(
removeShareLoading
.
value
)
return
removeShareLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
"正在处理"
,
})
let
errmsg
=
''
try
{
let
response
=
await
ConfigService
.
RemoveFileShareAsync
([
item
.
FileId
])
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
){
ElMessage
.
success
({
message
:
'设置成功'
})
item
.
IsShare
=
false
}
else
errmsg
=
'取消分享失败,请刷新重试'
}
catch
(
error
)
{
errmsg
=
'取消分享失败,请刷新重试'
}
if
(
errmsg
!=
''
)
{
ElMessage
.
error
({
message
:
errmsg
})
}
removeShareLoading
.
value
.
close
();
removeShareLoading
.
value
=
null
;
}
const
singleChoice
=
(
row
:
any
)
=>
{
let
obj
=
{
row
:
row
,
list
:
dataList
.
value
}
emit
(
'UpdateData'
,
obj
)
};
const
DeleteFile
=
async
(
item
:
any
)
=>
{
ElMessageBox
.
confirm
(
"此操作将删除该文件夹及其下的文件,是否确定?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(
async
()
=>
{
try
{
let
queryMsg
=
{
FolderId
:
item
.
FileId
,
};
deleteLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
"正在处理"
,
});
let
pageRes
=
await
FolderService
.
RemoveTripFolder
(
queryMsg
);
if
(
pageRes
.
data
.
resultCode
==
1
)
{
ElMessage
({
showClose
:
true
,
message
:
`删除
${
queryObj
.
value
.
FileType
==
2
?
"广告"
:
"行程"
}
文件夹成功`
,
type
:
"success"
,
});
emit
(
'refreshHandler'
);
}
else
{
ElMessage
({
showClose
:
true
,
message
:
`删除
${
queryObj
.
value
.
FileType
==
2
?
"广告"
:
"行程"
}
文件夹失败`
,
type
:
"warning"
,
});
}
deleteLoading
.
value
.
close
();
deleteLoading
.
value
=
null
;
}
catch
(
error
)
{}
})
.
catch
(()
=>
{});
};
const
DeleteTemplate
=
async
(
item
:
any
)
=>
{
ElMessageBox
.
confirm
(
"此操作将删除该模版,是否确定?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(
async
()
=>
{
try
{
let
queryMsg
=
{
Id
:
item
.
FileId
,
};
deleteLoading
.
value
=
ElLoading
.
service
({
lock
:
true
,
text
:
"正在处理"
,
});
let
pageRes
=
await
ConfigService
.
sellSetRemoveTemplate
(
queryMsg
);
if
(
pageRes
.
data
.
resultCode
==
1
)
{
ElMessage
({
showClose
:
true
,
message
:
`删除
${
item
.
FileType
==
2
?
"广告"
:
"行程"
}
成功`
,
type
:
"success"
,
});
emit
(
'refreshHandler'
);
}
else
{
ElMessage
({
showClose
:
true
,
message
:
`删除
${
item
.
FileType
==
2
?
"广告"
:
"行程"
}
失败`
,
type
:
"warning"
,
});
}
deleteLoading
.
value
.
close
();
deleteLoading
.
value
=
null
;
}
catch
(
error
)
{}
})
.
catch
(()
=>
{});
};
const
editDelete
=
async
(
row
:
any
,
type
:
Number
)
=>
{
if
(
type
==
1
)
{
if
(
row
.
FileType
)
DeleteTemplate
(
row
);
else
DeleteFile
(
row
);
}
else
{
if
(
row
.
FileType
)
{
let
list
=
[
{
id
:
"test-slide-1"
,
pageType
:
0
,
elements
:
[],
background
:
{
type
:
"solid"
,
color
:
"#ffffff"
,
},
},
];
useSlidesStore
().
setSlides
(
list
);
searchData
.
value
.
sellId
=
row
.
FileId
;
searchData
.
value
.
sellTempId
=
row
.
TempId
;
searchData
.
value
.
TemplateType
=
row
.
FileType
;
SalesEditorStore
.
setSalesEditor
(
2
);
marketStore
.
setMarket
(
false
);
}
else
{
// 2文件夹详情
if
(
type
==
2
)
{
queryObj
.
FileId
=
row
.
FileId
;
Navigations
.
value
.
push
(
{
FileId
:
row
.
FileId
,
FileName
:
row
.
FileName
,
ParentFileId
:
row
.
ParentFileId
}
);
datas
.
selectAll
=
false
props
.
selectedDatas
=
[]
isIndeterminate
.
value
=
false
emit
(
'refreshHandler'
,
queryObj
.
value
);
}
else
{
folderObj
.
value
.
id
=
row
.
FileId
;
folderObj
.
value
.
name
=
row
.
FileName
;
folderObj
.
value
.
type
=
row
.
FileType
;
}
}
}
};
watch
(()
=>
props
.
list
,
()
=>
{
if
(
props
.
list
)
{
nextTick
(()
=>
dataList
.
value
=
props
.
list
)
}
})
</
script
>
<
style
scoped
>
.journeyAds-title
{
}
.journeyAds-TitleCenter
{
width
:
100%
;
height
:
18px
;
margin-bottom
:
3px
;
overflow
:
hidden
;
/* 隐藏超出部分 */
text-overflow
:
ellipsis
;
/* 显示省略号 */
white-space
:
wrap
;
/* 不换行 */
position
:
relative
;
padding-right
:
20px
;
}
.journeyAds-TitleCenter
span
{
position
:
absolute
;
right
:
16px
;
top
:
0px
;
}
.journeyAds-Input
{
padding-right
:
20px
;
position
:
relative
;
margin-bottom
:
2px
;
::v-deep(.el-textarea__inner)
{
padding
:
5px
;
background
:
#f5f5f5
;
}
}
.journeyAds-container
{
position
:
relative
;
overflow
:
auto
;
}
.journeyAds-container
th
{
background
:
#fff
;
position
:
sticky
;
top
:
0px
;
z-index
:
2
;
}
.journeyAdsple-table
td
>
div
{
display
:
flex
;
}
.journeyAdsple-table
td
,
.journeyAds-container
th
{
border-bottom
:
1px
solid
#f6f6f6
;
}
.journeyAdsple-table
td
:first-child
,
.journeyAdsple-table
td
:nth-child
(
2
),
.journeyAds-container
th
:first-child
{
border
:
0
;
}
.journeyAdsple-table
td
{
padding-bottom
:
6px
;
}
.journeyAdsple-table
td
:nth-child
(
2
)
{
padding-bottom
:
0
;
}
.hoverShow
{
opacity
:
0
;
}
.journeyAdsple-table
:hover
.hoverShow
{
opacity
:
1
;
}
.share-icon-box
{
position
:
relative
;
}
.share-icon-box
::after
{
display
:
block
;
position
:
absolute
;
bottom
:
-4px
;
right
:
6px
;
content
:
" "
;
background
:
url('../../../assets/img/share.png')
;
width
:
14px
;
height
:
14px
;
z-index
:
2
;
}
</
style
>
\ No newline at end of file
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