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
ce03abfe
Commit
ce03abfe
authored
Jun 26, 2024
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
云盘
parent
ea30d796
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
203 additions
and
83 deletions
+203
-83
CloudDiskList.vue
src/components/CloudDisk/CloudDiskList.vue
+95
-54
cellList.vue
src/components/CloudDisk/cellList.vue
+15
-9
list.vue
src/components/CloudDisk/list.vue
+67
-8
waterfallFlowList.vue
src/components/CloudDisk/waterfallFlowList.vue
+26
-12
No files found.
src/components/CloudDisk/CloudDiskList.vue
View file @
ce03abfe
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<IconSearch
class=
"cusor-pointer"
@
click
.
stop=
"refreshHandler"
></IconSearch>
<IconSearch
class=
"cusor-pointer"
@
click
.
stop=
"refreshHandler"
></IconSearch>
</
template
>
</
template
>
<
template
#
append
>
<
template
#
append
>
<el-select
v-model=
"queryObj.
type
"
placeholder=
"Select"
style=
"width: 100px"
<el-select
v-model=
"queryObj.
QPPTistCloudGroupIds
"
placeholder=
"Select"
style=
"width: 100px"
@
change=
"refreshHandler"
>
@
change=
"refreshHandler"
>
<el-option
label=
"稿定模板"
value=
"1"
/>
<el-option
label=
"稿定模板"
value=
"1"
/>
<el-option
label=
"我的空间"
value=
"2"
/>
<el-option
label=
"我的空间"
value=
"2"
/>
...
@@ -69,11 +69,7 @@
...
@@ -69,11 +69,7 @@
<div
class=
"CloudDisk-R grow"
>
<div
class=
"CloudDisk-R grow"
>
<div
class=
"CloudDisk-R-header row flex-between items-center "
<div
class=
"CloudDisk-R-header row flex-between items-center "
:class=
"[queryObj.layout==3?'q-mb-lg':'q-mb-xs']"
>
:class=
"[queryObj.layout==3?'q-mb-lg':'q-mb-xs']"
>
<div
class=
"fz14 PingFangSC colorBA"
>
<div
class=
"fz14 PingFangSC colorBA"
></div>
<span
class=
"q-pr-lg figureTBOX cusor-pointer"
v-for=
"(item,index) in figureType"
:class=
"[queryObj.imgType==item.ID?'active':'']"
@
click=
"setDropdown(item,3)"
>
{{item.Name}}
</span>
</div>
<div>
<div>
<el-dropdown
trigger=
"click"
@
visible-change=
"changeDrop(1)"
<el-dropdown
trigger=
"click"
@
visible-change=
"changeDrop(1)"
:class=
"[currentSearchType==1?'DiskRHActive':'']"
>
:class=
"[currentSearchType==1?'DiskRHActive':'']"
>
...
@@ -92,12 +88,12 @@
...
@@ -92,12 +88,12 @@
</
template
>
</
template
>
</el-input>
</el-input>
<div
class=
"row flex-between items-center q-pt-md"
>
<div
class=
"row flex-between items-center q-pt-md"
>
<el-checkbox
label=
"png"
value=
"A"
/>
<el-checkbox
v-model=
"queryObj.QFileType"
label=
"jpg"
@
change=
"refreshHandler"
/>
<span>
7
</span>
<span></span>
</div>
</div>
<div
class=
"row flex-between items-center q-pt-md"
>
<div
class=
"row flex-between items-center q-pt-md"
>
<el-checkbox
label=
"xlsx"
value=
"B"
/>
<el-checkbox
v-model=
"queryObj.QFileType"
label=
"png"
@
change=
"refreshHandler"
/>
<span>
7
</span>
<span></span>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -113,12 +109,13 @@
...
@@ -113,12 +109,13 @@
<el-date-picker
<el-date-picker
class=
"CloudDisk-date"
class=
"CloudDisk-date"
style=
"width: 95px;"
style=
"width: 95px;"
v-model=
"
queryObj.date
"
v-model=
"
dateArr
"
type=
"daterange"
type=
"daterange"
start-placeholder=
""
start-placeholder=
""
end-placeholder=
""
end-placeholder=
""
value-format=
"YY-MM-DD"
value-format=
"YY-MM-DD"
ref=
"dropdownDade"
ref=
"dropdownDade"
@
change=
"getDate"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -136,17 +133,23 @@
...
@@ -136,17 +133,23 @@
<el-dropdown-menu>
<el-dropdown-menu>
<template
v-for=
"(item,index) in sortType"
>
<template
v-for=
"(item,index) in sortType"
>
<el-dropdown-item
:command=
"item.ID"
class=
"row flex-between"
<el-dropdown-item
:command=
"item.ID"
class=
"row flex-between"
:divided=
"index==4?true:false"
@
click=
"setDropdown(item,1)"
>
@
click=
"setDropdown(item,1)"
>
<span
style=
"width: 80px;"
>
{{
item
.
Name
}}
</span>
<span
style=
"width: 80px;"
>
{{
item
.
Name
}}
</span>
<IconCheck
class=
"q-pl-lg"
v-if=
"item.check"
></IconCheck>
<IconCheck
class=
"q-pl-lg"
v-if=
"item.check"
></IconCheck>
</el-dropdown-item>
</el-dropdown-item>
</
template
>
</
template
>
<
template
v-for=
"(item,index) in sortTypeUD"
>
<el-dropdown-item
:command=
"item.ID"
class=
"row flex-between"
:divided=
"index==0?true:false"
@
click=
"setDropdown(item,2)"
>
<span
style=
"width: 80px;"
>
{{
item
.
Name
}}
</span>
<IconCheck
class=
"q-pl-lg"
v-if=
"item.check"
></IconCheck>
</el-dropdown-item>
</
template
>
</el-dropdown-menu>
</el-dropdown-menu>
</template>
</template>
</el-dropdown>
</el-dropdown>
<el-dropdown
trigger=
"click"
@
visible-change=
"changeDrop(4)"
<el-dropdown
trigger=
"click"
@
visible-change=
"changeDrop(4)"
@
command=
"OpenDropdown"
:class=
"[currentSearchType==4?'DiskRHActive':'']"
:class=
"[currentSearchType==4?'DiskRHActive':'']"
ref=
"dropdownLayout"
>
ref=
"dropdownLayout"
>
<el-button>
<el-button>
...
@@ -160,7 +163,7 @@
...
@@ -160,7 +163,7 @@
<el-dropdown-menu>
<el-dropdown-menu>
<template
v-for=
"(item,index) in layoutType"
>
<template
v-for=
"(item,index) in layoutType"
>
<el-dropdown-item
:command=
"item.ID"
class=
"row flex-between"
<el-dropdown-item
:command=
"item.ID"
class=
"row flex-between"
@
click=
"setDropdown(item,
2
)"
>
@
click=
"setDropdown(item,
3
)"
>
<div
class=
"row items-center"
style=
"width: 80px;"
>
<div
class=
"row items-center"
style=
"width: 80px;"
>
<el-icon>
<el-icon>
<IconGridFour
v-if=
"item.ID==1"
/>
<IconGridFour
v-if=
"item.ID==1"
/>
...
@@ -197,7 +200,7 @@
...
@@ -197,7 +200,7 @@
@
MultipleChoice=
"MultipleChoice"
@
MultipleChoice=
"MultipleChoice"
:Parent=
"datas"
:Parent=
"datas"
></waterfallFlowList>
></waterfallFlowList>
<list
v-
show
=
"queryObj.layout==3"
:dataList=
"dataList"
<list
v-
if
=
"queryObj.layout==3"
:dataList=
"dataList"
@
refreshHandler=
"refreshHandler"
@
refreshHandler=
"refreshHandler"
@
CopyTo=
"CopyTo"
@
CopyTo=
"CopyTo"
@
MoveFile=
"MoveFile"
@
MoveFile=
"MoveFile"
...
@@ -205,6 +208,7 @@
...
@@ -205,6 +208,7 @@
@
deleteImg=
"deleteImg"
@
deleteImg=
"deleteImg"
@
MultipleChoice=
"MultipleChoice"
@
MultipleChoice=
"MultipleChoice"
:Parent=
"datas"
:Parent=
"datas"
:params=
"queryObj"
></list>
></list>
<div
v-if=
'queryObj.pageCount == queryObj.pageIndex && !loading'
class=
"text-center q-pt-lg"
>
<div
v-if=
'queryObj.pageCount == queryObj.pageIndex && !loading'
class=
"text-center q-pt-lg"
>
<!-- <img :src="noDataImg(2)" width="118" /> -->
<!-- <img :src="noDataImg(2)" width="118" /> -->
...
@@ -224,7 +228,7 @@
...
@@ -224,7 +228,7 @@
@current-change="handleCurrentChange"
@current-change="handleCurrentChange"
/>
/>
</div> -->
</div> -->
<div
class=
"CloudDisk-RBF animate__animated animate__fadeInUp"
v-show=
"datas.ControlsShow
"
>
<div
v-if=
"queryObj.layout!=3&&datas.ControlsShow"
class=
"CloudDisk-RBF animate__animated animate__fadeInUp
"
>
<div
class=
"CloudDisk-RBFCenter microsoft"
>
<div
class=
"CloudDisk-RBFCenter microsoft"
>
<div
class=
"row flex-center"
>
<div
class=
"row flex-center"
>
<div
class=
"CloudDisk-RBFbj rounded row items-center"
>
<div
class=
"CloudDisk-RBFbj rounded row items-center"
>
...
@@ -240,7 +244,7 @@
...
@@ -240,7 +244,7 @@
<el-button
icon=
"CopyDocument"
size=
"small"
@
click=
"CopyTo()"
>
复制到
</el-button>
<el-button
icon=
"CopyDocument"
size=
"small"
@
click=
"CopyTo()"
>
复制到
</el-button>
<el-button
icon=
"Expand"
size=
"small"
@
click=
"CopyTo()"
>
移动到
</el-button>
<el-button
icon=
"Expand"
size=
"small"
@
click=
"CopyTo()"
>
移动到
</el-button>
<el-button
icon=
"Delete"
size=
"small"
@
click=
"CopyTo()"
>
删除
</el-button>
<el-button
icon=
"Delete"
size=
"small"
@
click=
"CopyTo()"
>
删除
</el-button>
<
el-button
icon=
"View"
size=
"small"
@
click=
"CopyTo()"
>
查看
</el-button
>
<
!-- <el-button icon="View" size="small" @click="CopyTo()">查看</el-button> --
>
<span
class=
"close-btn cursor-pointer column items-center flex-center q-pl-md"
@
click=
"datas.ControlsShow=false"
>
<span
class=
"close-btn cursor-pointer column items-center flex-center q-pl-md"
@
click=
"datas.ControlsShow=false"
>
<IconClose
:size=
"14"
></IconClose>
<IconClose
:size=
"14"
></IconClose>
</span>
</span>
...
@@ -291,6 +295,7 @@
...
@@ -291,6 +295,7 @@
import
{
noDataImg
}
from
"@/utils/common"
;
import
{
noDataImg
}
from
"@/utils/common"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
AliyunUpload
from
'@/utils/upload/aliyun'
import
AliyunUpload
from
'@/utils/upload/aliyun'
import
{
getLastMonthDate
}
from
"@/utils/time"
;
import
cellList
from
'./cellList'
import
cellList
from
'./cellList'
import
waterfallFlowList
from
'./waterfallFlowList'
import
waterfallFlowList
from
'./waterfallFlowList'
...
@@ -305,19 +310,25 @@
...
@@ -305,19 +310,25 @@
isPersonage
:
''
as
any
,
isPersonage
:
''
as
any
,
})
})
const
RefreshLoading
=
ref
(
false
)
const
RefreshLoading
=
ref
(
false
)
let
time
=
getLastMonthDate
()
const
queryObj
=
reactive
({
const
queryObj
=
reactive
({
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
72
,
pageSize
:
100
,
CloudGroupId
:
''
,
CloudGroupId
:
''
,
FileName
:
''
,
FileName
:
''
,
total
:
0
,
total
:
0
,
type
:
'1'
,
//稿定模版
QPPTistCloudGroupIds
:
'1'
,
//稿定模版 云盘分组数组[1,2] 待定
imgType
:
1
,
//模版 素材
imgType
:
1
,
//模版 素材
Sorts
:
[],
//排序
layout
:
1
,
//布局
layout
:
1
,
//布局
date
:
''
,
//日期
QFileType
:
[],
//格式
QStartTime
:
time
[
0
],
QEndTime
:
time
[
1
],
QOrderFiled
:
1
,
//排序字段(1-创建时间,2-文件大小 3文件名称
QOrderBy
:
2
,
//1-升序,2-倒序
QCreateBy
:
''
,
//上传人员
})
})
const
dateArr
=
ref
([
time
[
0
],
time
[
1
]]
as
any
)
if
(
props
.
isPersonage
)
queryObj
.
CloudGroupId
=
parmas
.
value
.
id
if
(
props
.
isPersonage
)
queryObj
.
CloudGroupId
=
parmas
.
value
.
id
const
loading
=
ref
(
false
as
any
)
const
loading
=
ref
(
false
as
any
)
const
dataList
=
ref
([]
as
Array
<
any
>
);
const
dataList
=
ref
([]
as
Array
<
any
>
);
...
@@ -353,17 +364,15 @@
...
@@ -353,17 +364,15 @@
new
Date
(
2000
,
1
,
1
),
new
Date
(
2000
,
1
,
1
),
new
Date
(
2000
,
2
,
1
),
new
Date
(
2000
,
2
,
1
),
]
]
const
figureType
=
ref
([
{
Name
:
'模版'
,
ID
:
1
},
{
Name
:
'素材'
,
ID
:
2
},
])
const
sortType
=
ref
([
const
sortType
=
ref
([
{
Name
:
'添加时间'
,
ID
:
1
,
check
:
false
},
{
Name
:
'添加时间'
,
ID
:
1
,
check
:
true
},
{
Name
:
'修改时间'
,
ID
:
2
,
check
:
false
},
{
Name
:
'文件大小'
,
ID
:
2
,
check
:
false
},
{
Name
:
'文件大小'
,
ID
:
3
,
check
:
false
},
{
Name
:
'文件名称'
,
ID
:
3
,
check
:
false
},
{
Name
:
'文件名称'
,
ID
:
4
,
check
:
false
},
])
{
Name
:
'升序'
,
ID
:
5
,
check
:
false
},
const
sortTypeUD
=
ref
([
{
Name
:
'降序'
,
ID
:
6
,
check
:
false
},
{
Name
:
'升序'
,
ID
:
1
,
check
:
false
},
{
Name
:
'降序'
,
ID
:
2
,
check
:
true
},
])
])
const
layoutType
=
ref
([
const
layoutType
=
ref
([
{
Name
:
'宫格'
,
ID
:
1
,
check
:
false
},
{
Name
:
'宫格'
,
ID
:
1
,
check
:
false
},
...
@@ -373,7 +382,7 @@
...
@@ -373,7 +382,7 @@
const
datas
=
reactive
({
const
datas
=
reactive
({
selectAll
:
false
,
selectAll
:
false
,
SelectedDatas
:
[]
as
an
y
,
SelectedDatas
:
[]
as
Arra
y
,
ControlsShow
:
true
,
// 批量操作显示
ControlsShow
:
true
,
// 批量操作显示
indeterminate
:
false
,
// 未全选状态
indeterminate
:
false
,
// 未全选状态
})
})
...
@@ -384,13 +393,24 @@
...
@@ -384,13 +393,24 @@
const
newDatasSelected
=
()
=>
{
const
newDatasSelected
=
()
=>
{
if
(
datas
.
SelectedDatas
.
length
==
0
)
{
if
(
datas
.
SelectedDatas
.
length
==
0
)
{
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
dataList
.
value
[
i
].
check
=
false
}
datas
.
selectAll
=
false
datas
.
selectAll
=
false
datas
.
indeterminate
=
false
datas
.
indeterminate
=
false
}
else
if
(
datas
.
SelectedDatas
.
length
>
0
){
}
else
if
(
datas
.
SelectedDatas
.
length
>
0
){
if
(
dataList
.
value
.
length
==
datas
.
SelectedDatas
.
length
){
if
(
dataList
.
value
.
length
==
datas
.
SelectedDatas
.
length
){
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
dataList
.
value
[
i
].
check
=
true
}
datas
.
selectAll
=
true
datas
.
selectAll
=
true
datas
.
indeterminate
=
false
datas
.
indeterminate
=
false
}
else
if
(
dataList
.
value
.
length
>
datas
.
SelectedDatas
.
length
){
}
else
if
(
dataList
.
value
.
length
>
datas
.
SelectedDatas
.
length
){
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
let
x
=
dataList
.
value
[
i
]
let
findObj
=
datas
.
SelectedDatas
.
find
(
y
=>
y
==
x
.
DetailsId
)
if
(
findObj
)
dataList
.
value
[
i
].
check
=
true
}
datas
.
indeterminate
=
true
datas
.
indeterminate
=
true
}
}
}
}
...
@@ -403,10 +423,11 @@
...
@@ -403,10 +423,11 @@
const
setSelecAll
=
()
=>
{
const
setSelecAll
=
()
=>
{
if
(
datas
.
selectAll
){
if
(
datas
.
selectAll
){
dataList
.
value
.
forEach
(
x
=>
{
datas
.
SelectedDatas
=
[]
x
.
check
=
true
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
){
datas
.
SelectedDatas
.
push
(
x
.
DetailsId
)
dataList
.
value
[
i
].
check
=
true
})
datas
.
SelectedDatas
.
push
(
dataList
.
value
[
i
].
DetailsId
)
}
datas
.
indeterminate
=
false
datas
.
indeterminate
=
false
}
else
if
(
datas
.
indeterminate
){
}
else
if
(
datas
.
indeterminate
){
datas
.
SelectedDatas
.
forEach
(
x
=>
{
datas
.
SelectedDatas
.
forEach
(
x
=>
{
...
@@ -415,43 +436,61 @@
...
@@ -415,43 +436,61 @@
})
})
})
})
}
else
{
}
else
{
dataList
.
value
.
forEach
(
x
=>
{
for
(
let
i
=
0
;
i
<
dataList
.
value
.
length
;
i
++
)
{
x
.
check
=
false
dataList
.
value
[
i
]
.
check
=
false
}
)
}
datas
.
SelectedDatas
=
[]
datas
.
SelectedDatas
=
[]
datas
.
indeterminate
=
false
datas
.
indeterminate
=
false
}
}
}
}
const
getDate
=
()
=>
{
if
(
dateArr
.
value
&&
dateArr
.
value
.
length
>
0
){
queryObj
.
QStartTime
=
dateArr
.
value
[
0
]
queryObj
.
QEndTime
=
dateArr
.
value
[
1
]
}
else
{
queryObj
.
QStartTime
=
''
queryObj
.
QEndTime
=
''
}
refreshHandler
()
}
const
OpenDropdown
=
()
=>
{
const
OpenDropdown
=
()
=>
{
if
(
currentSearchType
.
value
==
3
)
dropdownSort
.
value
.
handleOpen
()
if
(
currentSearchType
.
value
==
3
)
dropdownSort
.
value
.
handleOpen
()
if
(
currentSearchType
.
value
==
4
)
dropdownLayout
.
value
.
handleOpen
()
}
}
const
setDropdown
=
(
item
:
any
,
type
:
Number
)
=>
{
const
setDropdown
=
(
item
:
any
,
type
:
Number
)
=>
{
if
(
type
==
1
){
if
(
type
==
1
||
type
==
2
){
item
.
check
=
!
item
.
check
if
(
type
==
1
){
let
newSortType
=
sortType
.
value
.
filter
(
x
=>
x
.
check
)
item
.
check
=
!
item
.
check
queryObj
.
Sorts
=
newSortType
.
map
(
x
=>
{
return
x
.
ID
})
sortType
.
value
.
forEach
(
x
=>
{
if
(
x
.
ID
!=
item
.
ID
)
x
.
check
=
false
})
queryObj
.
QOrderFiled
=
item
.
ID
}
else
{
item
.
check
=
!
item
.
check
sortTypeUD
.
value
.
forEach
(
x
=>
{
if
(
x
.
ID
!=
item
.
ID
)
x
.
check
=
false
})
queryObj
.
QOrderBy
=
item
.
ID
}
refreshHandler
()
}
}
if
(
type
==
2
){
if
(
type
==
3
){
loading
.
value
=
true
layoutType
.
value
.
forEach
(
x
=>
{
layoutType
.
value
.
forEach
(
x
=>
{
if
(
x
.
ID
!=
item
.
ID
)
x
.
check
=
false
if
(
x
.
ID
!=
item
.
ID
)
x
.
check
=
false
})
})
item
.
check
=
true
item
.
check
=
true
queryObj
.
layout
=
item
.
ID
queryObj
.
layout
=
item
.
ID
}
setTimeout
(()
=>
{
if
(
type
==
3
){
loading
.
value
=
false
queryObj
.
imgType
=
item
.
ID
},
3000
)
}
}
}
}
const
changeDrop
=
(
type
:
Number
)
=>
{
const
changeDrop
=
(
type
:
Number
)
=>
{
if
(
currentSearchType
.
value
==
type
)
currentSearchType
.
value
=
0
if
(
currentSearchType
.
value
==
type
)
currentSearchType
.
value
=
0
else
currentSearchType
.
value
=
type
else
currentSearchType
.
value
=
type
if
(
currentSearchType
.
value
==
2
)
{
if
(
currentSearchType
.
value
==
2
)
dropdownDade
.
value
.
handleOpen
()
dropdownDade
.
value
.
handleOpen
()
}
}
}
const
getImg
=
(
item
:
any
,
index
:
Number
)
=>
{
const
getImg
=
(
item
:
any
,
index
:
Number
)
=>
{
currentImg
.
value
=
index
currentImg
.
value
=
index
...
@@ -671,11 +710,13 @@ const SearchImg = () =>{
...
@@ -671,11 +710,13 @@ const SearchImg = () =>{
if
(
row
&&
row
.
Id
)
{
if
(
row
&&
row
.
Id
)
{
if
(
row
.
Id
==
queryObj
.
CloudGroupId
)
return
if
(
row
.
Id
==
queryObj
.
CloudGroupId
)
return
queryObj
.
CloudGroupId
=
row
.
Id
queryObj
.
CloudGroupId
=
row
.
Id
datas
.
SelectedDatas
=
[]
datas
.
selectAll
=
false
datas
.
indeterminate
=
false
}
}
RefreshLoading
.
value
=
true
;
RefreshLoading
.
value
=
true
;
queryObj
.
pageIndex
=
1
;
queryObj
.
pageIndex
=
1
;
srcList
.
value
=
[]
srcList
.
value
=
[]
querySearchHandler
();
querySearchHandler
();
};
};
...
...
src/components/CloudDisk/cellList.vue
View file @
ce03abfe
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"CloudDisk-R-Center row"
>
<div
class=
"CloudDisk-R-Center row"
>
<template
v-for=
"(item,index) in dataList"
>
<template
v-for=
"(item,index) in dataList"
>
<div
style=
"position: relative;"
>
<div
style=
"position: relative;"
>
<el-checkbox
style=
"position: absolute;left: 30px;top:
-3
px;"
<el-checkbox
style=
"position: absolute;left: 30px;top:
0
px;"
class=
"fz14"
label=
""
v-model=
"item.check"
class=
"fz14"
label=
""
v-model=
"item.check"
@
change=
"handleSelectionChange(item)"
/>
@
change=
"handleSelectionChange(item)"
/>
<el-dropdown
trigger=
"click"
>
<el-dropdown
trigger=
"click"
>
...
@@ -58,7 +58,7 @@
...
@@ -58,7 +58,7 @@
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
}
from
"vue"
;
import
{
ref
,
watch
}
from
"vue"
;
import
CloudDiskService
from
"@/services/CloudDiskService"
;
import
CloudDiskService
from
"@/services/CloudDiskService"
;
import
{
ApiResult
}
from
"@/configs/axios"
;
import
{
ApiResult
}
from
"@/configs/axios"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -132,20 +132,26 @@
...
@@ -132,20 +132,26 @@
emit
(
'deleteImg'
,
item
)
emit
(
'deleteImg'
,
item
)
}
}
watch
(()
=>
props
,(
n
,
o
)
=>
{
if
(
n
.
Parent
.
SelectedDatas
.
length
==
0
)
multipleSelection
.
value
=
[]
},{
deep
:
true
,
immediate
:
true
})
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.CloudDisk-R-Center
{
.CloudDisk-R-Center
{
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
}
}
.CloudDisk-R-Box
{
.CloudDisk-R-Box
{
width
:
8
7px
;
width
:
24
7px
;
margin-left
:
24px
;
margin-left
:
24px
;
margin-bottom
:
24px
;
margin-bottom
:
24px
;
position
:
relative
;
position
:
relative
;
}
}
.CloudDisk-R-Box.active
.CloudDisk-R-Img
{
.CloudDisk-R-Box.active
.CloudDisk-R-Img
{
width
:
85
px
;
width
:
247
px
;
height
:
85
px
;
height
:
247
px
;
background
:
#8790F3
;
background
:
#8790F3
;
box-shadow
:
0px
0px
13px
0px
#0D3EBC
;
box-shadow
:
0px
0px
13px
0px
#0D3EBC
;
border-radius
:
8px
;
border-radius
:
8px
;
...
@@ -170,8 +176,8 @@
...
@@ -170,8 +176,8 @@
display
:
block
;
display
:
block
;
}
}
.CloudDisk-R-Img
{
.CloudDisk-R-Img
{
width
:
85
px
;
width
:
247
px
;
height
:
85
px
;
height
:
247
px
;
margin-bottom
:
9px
;
margin-bottom
:
9px
;
border-radius
:
8px
;
border-radius
:
8px
;
overflow
:
hidden
;
overflow
:
hidden
;
...
@@ -181,10 +187,10 @@
...
@@ -181,10 +187,10 @@
}
}
.CloudDisk-R-Img
.el-image
{
.CloudDisk-R-Img
.el-image
{
width
:
85
px
;
width
:
247
px
;
}
}
.title
{
.title
{
width
:
85
px
;
width
:
247
px
;
line-height
:
17px
;
line-height
:
17px
;
overflow
:
hidden
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
nowrap
;
...
...
src/components/CloudDisk/list.vue
View file @
ce03abfe
<
template
>
<
template
>
<div
class=
"CloudDisk-R-Center row"
v-if=
"dataList.length>0"
>
<div
class=
"CloudDisk-R-Center row"
v-if=
"dataList.length>0"
>
<el-table
:data=
"dataList"
style=
"width: 100%;"
<el-table
:data=
"dataList"
style=
"width: 100%;"
ref=
"multipleTableRef"
>
ref=
"multipleTableRef"
<el-table-column
type=
"selection"
width=
"55"
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
/>
row-key=
"DetailsId"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"基本信息"
show-overflow-tooltip
min-width=
"200"
>
<el-table-column
label=
"基本信息"
show-overflow-tooltip
min-width=
"200"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<div
class=
"row items-center"
>
<div
class=
"row items-center"
>
...
@@ -49,9 +50,17 @@
...
@@ -49,9 +50,17 @@
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"80"
>
<el-table-column
align=
"center"
min-width=
"80"
>
<
template
#
header
>
<
template
#
header
>
<el-icon>
<el-dropdown
trigger=
"click"
>
<IconSetting></IconSetting>
<el-icon
class=
"cursor-pointer"
size=
"16"
color=
"#b1b7cf"
><IconSetting
/></el-icon>
</el-icon>
<template
#
dropdown
>
<el-dropdown-menu
class=
"q-pa-md microsoft"
>
<el-dropdown-item
icon=
"CopyDocument"
@
click=
"CopyTo()"
>
复制到
</el-dropdown-item>
<el-dropdown-item
icon=
"Expand"
@
click=
"MoveFile()"
>
移动到
</el-dropdown-item>
<el-dropdown-item
icon=
"Delete"
@
click=
"deleteImg()"
>
删除
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
</template>
</template>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-dropdown
trigger=
"click"
>
<el-dropdown
trigger=
"click"
>
...
@@ -71,7 +80,8 @@
...
@@ -71,7 +80,8 @@
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
reactive
}
from
"vue"
;
import
{
ref
,
reactive
,
watch
}
from
"vue"
;
import
{
ElTable
}
from
'element-plus'
import
CloudDiskService
from
"@/services/CloudDiskService"
;
import
CloudDiskService
from
"@/services/CloudDiskService"
;
import
{
ApiResult
}
from
"@/configs/axios"
;
import
{
ApiResult
}
from
"@/configs/axios"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -82,6 +92,10 @@
...
@@ -82,6 +92,10 @@
Parent
:{
Parent
:{
type
:
Object
,
type
:
Object
,
default
:
{},
default
:
{},
},
params
:{
type
:
Object
,
default
:
{},
}
}
})
})
const
emit
=
defineEmits
<
{
const
emit
=
defineEmits
<
{
...
@@ -97,10 +111,12 @@
...
@@ -97,10 +111,12 @@
const
nickNam
=
ref
(
''
||
Number
)
const
nickNam
=
ref
(
''
||
Number
)
const
editLoading
=
ref
(
false
)
const
editLoading
=
ref
(
false
)
const
errImg
=
ref
(
require
(
'@/assets/img/noImg.png'
)
as
any
)
const
errImg
=
ref
(
require
(
'@/assets/img/noImg.png'
)
as
any
)
const
multipleTableRef
=
ref
<
InstanceType
<
typeof
ElTable
>>
()
const
multipleSelection
=
ref
([]
as
any
)
const
multipleSelection
=
ref
([]
as
any
)
const
handleSelectionChange
=
(
val
:
[])
=>
{
const
handleSelectionChange
=
(
val
:
[])
=>
{
multipleSelection
.
value
=
val
.
map
(
x
=>
{
return
x
.
DetailsId
})
multipleSelection
.
value
=
val
.
map
(
x
=>
{
return
x
.
DetailsId
})
emit
(
'MultipleChoice'
,
multipleSelection
.
value
)
}
}
const
setCloudNameHandler
=
async
(
target
:
any
)
=>
{
const
setCloudNameHandler
=
async
(
target
:
any
)
=>
{
if
(
editLoading
.
value
||
nickNam
.
value
==
''
||
!
nickNam
.
value
)
return
if
(
editLoading
.
value
||
nickNam
.
value
==
''
||
!
nickNam
.
value
)
return
...
@@ -140,6 +156,49 @@
...
@@ -140,6 +156,49 @@
emit
(
'deleteImg'
,
item
)
emit
(
'deleteImg'
,
item
)
}
}
const
toggleSelection
=
(
rows
:
any
,
state
:
undefined
)
=>
{
if
(
rows
)
{
rows
.
forEach
((
row
)
=>
{
multipleTableRef
.
value
!
.
toggleRowSelection
(
row
,
state
)
})
}
else
{
if
(
state
)
multipleTableRef
.
value
.
toggleAllSelection
(
state
)
else
multipleTableRef
.
value
!
.
clearSelection
()
}
}
watch
(()
=>
props
,(
n
,
o
)
=>
{
if
(
props
.
Parent
.
SelectedDatas
.
length
>
0
)
{
setTimeout
(()
=>
{
props
.
Parent
.
SelectedDatas
.
forEach
(
x
=>
{
let
filterS
=
props
.
dataList
.
filter
((
y
,
index
)
=>
{
y
.
index
=
index
return
x
==
y
.
DetailsId
})
let
index
=
filterS
&&
filterS
[
0
]
&&
filterS
[
0
].
index
if
(
index
>=
0
)
{
toggleSelection
([
props
.
dataList
[
index
]],
true
)
}
});
},
3000
)
}
if
(
props
.
dataList
.
length
>
0
&&
props
.
Parent
.
selectAll
&&!
props
.
Parent
.
indeterminate
){
setTimeout
(()
=>
{
for
(
let
i
=
0
;
i
<
props
.
dataList
.
length
;
i
++
){
let
x
=
props
.
dataList
[
i
]
toggleSelection
([
x
],
true
)
}
},
3000
)
}
},{
deep
:
true
,
immediate
:
true
})
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.editor-pencli
{
.editor-pencli
{
...
@@ -149,7 +208,7 @@
...
@@ -149,7 +208,7 @@
display
:
block
;
display
:
block
;
}
}
.
CloudDisk-R-Center
:
:
v-deep
(
.
el-table__body
){
.
CloudDisk-R-Center
:
:
v-deep
(
.
el-table__body
){
margin-top
:
8
px
;
margin-top
:
19
px
;
}
}
.
CloudDisk-R-Center
:
:
v-deep
(
.
el-table__header-wrapper
th
){
.
CloudDisk-R-Center
:
:
v-deep
(
.
el-table__header-wrapper
th
){
background-color
:
#f5f7fa
;
background-color
:
#f5f7fa
;
...
...
src/components/CloudDisk/waterfallFlowList.vue
View file @
ce03abfe
...
@@ -2,9 +2,9 @@
...
@@ -2,9 +2,9 @@
<div
class=
"CloudDisk-R-Center"
>
<div
class=
"CloudDisk-R-Center"
>
<Waterfall
:list=
"dataList"
<Waterfall
:list=
"dataList"
:breakpoints=
"
{
:breakpoints=
"
{
1400:{rowPerView:
12
},
1400:{rowPerView:
5
},
800:{rowPerView:
12
},
800:{rowPerView:
5
},
500:{rowPerView:
12
}
500:{rowPerView:
5
}
}"
}"
:hasAroundGutter="false" :align="'left'"
:hasAroundGutter="false" :align="'left'"
rowKey="DetailsId" :gutter="24"
rowKey="DetailsId" :gutter="24"
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
>
>
<template
#
item=
"
{ item, url, index }">
<template
#
item=
"
{ item, url, index }">
<div
style=
"position: relative;"
>
<div
style=
"position: relative;"
>
<el-checkbox
style=
"position: absolute;left:
30px;top: -3
px;"
<el-checkbox
style=
"position: absolute;left:
10px;top: 0
px;"
class=
"fz14"
label=
""
v-model=
"item.check"
class=
"fz14"
label=
""
v-model=
"item.check"
@
change=
"handleSelectionChange(item)"
/>
@
change=
"handleSelectionChange(item)"
/>
<el-dropdown
trigger=
"click"
>
<el-dropdown
trigger=
"click"
>
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
reactive
}
from
"vue"
;
import
{
ref
,
reactive
,
watch
}
from
"vue"
;
import
{
LazyImg
,
Waterfall
}
from
'vue-waterfall-plugin-next'
import
{
LazyImg
,
Waterfall
}
from
'vue-waterfall-plugin-next'
import
'vue-waterfall-plugin-next/dist/style.css'
import
'vue-waterfall-plugin-next/dist/style.css'
import
CloudDiskService
from
"@/services/CloudDiskService"
;
import
CloudDiskService
from
"@/services/CloudDiskService"
;
...
@@ -81,6 +81,10 @@
...
@@ -81,6 +81,10 @@
type
:
Array
,
type
:
Array
,
default
:
[],
default
:
[],
},
},
Parent
:{
type
:
Object
,
default
:
{},
}
})
})
const
emit
=
defineEmits
<
{
const
emit
=
defineEmits
<
{
(
event
:
'close'
):
void
,
(
event
:
'close'
):
void
,
...
@@ -105,7 +109,7 @@
...
@@ -105,7 +109,7 @@
if
(
filter
.
length
==
0
&&
row
.
check
)
{
if
(
filter
.
length
==
0
&&
row
.
check
)
{
multipleSelection
.
value
.
push
(
row
.
DetailsId
)
multipleSelection
.
value
.
push
(
row
.
DetailsId
)
emit
(
'MultipleChoice'
,
multipleSelection
.
value
)
emit
(
'MultipleChoice'
,
multipleSelection
.
value
)
}
else
{
}
else
if
(
!
row
.
check
)
{
let
newFilter
=
props
.
Parent
.
SelectedDatas
.
filter
(
x
=>
x
!=
row
.
DetailsId
)
let
newFilter
=
props
.
Parent
.
SelectedDatas
.
filter
(
x
=>
x
!=
row
.
DetailsId
)
multipleSelection
.
value
=
newFilter
multipleSelection
.
value
=
newFilter
emit
(
'MultipleChoice'
,
multipleSelection
.
value
)
emit
(
'MultipleChoice'
,
multipleSelection
.
value
)
...
@@ -147,6 +151,15 @@
...
@@ -147,6 +151,15 @@
emit
(
'deleteImg'
,
item
)
emit
(
'deleteImg'
,
item
)
}
}
watch
(()
=>
props
,(
n
,
o
)
=>
{
if
(
n
.
Parent
.
SelectedDatas
.
length
==
0
)
{
multipleSelection
.
value
=
[]
}
},{
deep
:
true
,
immediate
:
true
})
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.CloudDisk-R-Center
{
.CloudDisk-R-Center
{
...
@@ -154,11 +167,11 @@
...
@@ -154,11 +167,11 @@
padding-left
:
24px
;
padding-left
:
24px
;
}
}
.CloudDisk-R-Box
{
.CloudDisk-R-Box
{
width
:
8
7px
;
width
:
24
7px
;
position
:
relative
;
position
:
relative
;
}
}
.CloudDisk-R-Box.active
.CloudDisk-R-Img
{
.CloudDisk-R-Box.active
.CloudDisk-R-Img
{
width
:
85
px
;
width
:
247
px
;
background
:
#8790F3
;
background
:
#8790F3
;
box-shadow
:
0px
0px
13px
0px
#0D3EBC
;
box-shadow
:
0px
0px
13px
0px
#0D3EBC
;
border-radius
:
8px
;
border-radius
:
8px
;
...
@@ -183,7 +196,8 @@
...
@@ -183,7 +196,8 @@
display
:
block
;
display
:
block
;
}
}
.CloudDisk-R-Img
{
.CloudDisk-R-Img
{
width
:
85px
;
width
:
247px
;
min-height
:
40px
;
height
:
auto
;
height
:
auto
;
margin-bottom
:
9px
;
margin-bottom
:
9px
;
border-radius
:
8px
;
border-radius
:
8px
;
...
@@ -192,11 +206,11 @@
...
@@ -192,11 +206,11 @@
}
}
.CloudDisk-R-Img
.el-image
{
.CloudDisk-R-Img
.el-image
{
width
:
85
px
;
width
:
247
px
;
border-radius
:
8px
;
border-radius
:
8px
;
}
}
.title
{
.title
{
width
:
85
px
;
width
:
247
px
;
line-height
:
17px
;
line-height
:
17px
;
overflow
:
hidden
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
nowrap
;
...
@@ -221,6 +235,6 @@
...
@@ -221,6 +235,6 @@
}
}
::v-deep
(
.lazy__img
[
lazy
=
error
])
{
::v-deep
(
.lazy__img
[
lazy
=
error
])
{
padding
:
0
;
padding
:
0
;
width
:
85
px
!
important
;
width
:
247
px
!
important
;
}
}
</
style
>
</
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