Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
jml0128
/
xrk-bi
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 9a562739
authored
May 18, 2022
by
admin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:照片墙选择图片
1 parent
b628da2c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
42 deletions
src/packages/bi/src/components/photo-wall/select.vue
src/packages/bi/src/components/photo-wall/select.vue
View file @
9a56273
...
@@ -18,24 +18,25 @@
...
@@ -18,24 +18,25 @@
<div
<div
class=
"select-img-item"
class=
"select-img-item"
v-for=
"item in imgWallPageList"
v-for=
"item in imgWallPageList"
:key=
"item.i
d
"
:key=
"item.i
mageUrl
"
>
>
<el-checkbox
<el-checkbox
:disabled=
"selectSum >= 50 && item.isSelect === 0"
:disabled=
"selectSum >= 50 && item.isSelect === 0"
class=
"select-box"
class=
"select-box"
:value=
"i
tem.isSelect === 1
"
:value=
"i
mageUrlsMap.includes(item.imageUrl)
"
@
change=
"
@
change=
"
e =>
{
e =>
{
selectChange(e, item);
selectChange(e, item);
}
}
"
"
>
</el-checkbox>
>
</el-checkbox>
<img
:src=
"item.im
g
Url"
/>
<img
:src=
"item.im
age
Url"
/>
</div>
</div>
</div>
</div>
<div
style=
"margin: 10px"
>
<div
style=
"margin: 10px"
>
<el-checkbox
<el-checkbox
:indeterminate=
"selectSum > 0 && selectSum
< imgWallList
.
length
"
:indeterminate=
"selectSum > 0 && selectSum
< imgWallList
.
length
"
:value=
"selectSum === imgWallList.length"
@
change=
"selectAll"
@
change=
"selectAll"
>
>
全选
全选
...
@@ -58,6 +59,8 @@
...
@@ -58,6 +59,8 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
mixin
from
'../../mixin/index'
;
import
{
import
{
Dialog
,
Dialog
,
Button
,
Button
,
...
@@ -69,6 +72,7 @@ import {
...
@@ -69,6 +72,7 @@ import {
export
default
{
export
default
{
name
:
'select-img'
,
name
:
'select-img'
,
mixins
:
[
mixin
],
props
:
{
props
:
{
// 已勾选数据 [url,url]
// 已勾选数据 [url,url]
imageUrls
:
{
imageUrls
:
{
...
@@ -88,64 +92,54 @@ export default {
...
@@ -88,64 +92,54 @@ export default {
data
()
{
data
()
{
return
{
return
{
selectImgShow
:
false
,
selectImgShow
:
false
,
selectedImageUrls
:
[],
currentPage
:
1
,
currentPage
:
1
,
pageSize
:
6
,
pageSize
:
6
,
imgWallList
:
[]
imgWallList
:
[]
};
};
},
},
methods
:
{
methods
:
{
openDialog
()
{
async
openDialog
()
{
this
.
selectedImageUrls
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
imageUrls
));
this
.
selectImgShow
=
true
;
this
.
selectImgShow
=
true
;
const
asyncData
=
[];
const
asyncData
=
await
this
.
Bi
.
getTaskPicList
();
for
(
let
a
=
1
;
a
<
60
;
a
++
)
{
this
.
imgWallList
=
asyncData
.
data
.
data
.
taskImages
;
asyncData
.
push
({
isSelect
:
0
,
imgUrl
:
'http://yiyang.oss-cn-beijing.aliyuncs.com/WEB/SaaS/images/2103251844.png'
,
id
:
a
});
}
this
.
imgWallList
=
[
{
isSelect
:
1
,
imgUrl
:
'http://yiyang.oss-cn-beijing.aliyuncs.com/WEB/SaaS/images/2103251844.png'
,
id
:
0
},
...
asyncData
];
},
},
// 全选/取消全选
// 全选/取消全选
selectAll
(
e
)
{
selectAll
(
e
)
{
// 选择并且超出50条弹出提示
if
(
e
)
{
if
(
e
&&
this
.
imgWallList
.
length
>
50
)
{
// 全部选择
Message
.
error
(
'当前可选照片超过50张,已为您自动选择前50张照片'
);
if
(
this
.
imgWallList
.
length
>
50
)
{
this
.
imgWallList
.
forEach
(
item
=>
{
// 超出50条弹出提示
item
.
isSelect
=
0
;
Message
.
error
(
'当前可选照片超过50张,已为您自动选择前50张照片'
)
;
}
);
this
.
selectedImageUrls
=
this
.
imgWallList
.
slice
(
0
,
50
);
this
.
imgWallList
.
slice
(
0
,
50
).
forEach
(
item
=>
{
}
else
{
item
.
isSelect
=
1
;
this
.
selectedImageUrls
=
this
.
imgWallList
;
}
);
}
}
else
{
}
else
{
this
.
imgWallList
.
forEach
(
item
=>
{
// 取消全选
item
.
isSelect
=
e
?
1
:
0
;
this
.
selectedImageUrls
=
[];
});
}
}
},
},
// 单选
// 单选
selectChange
(
e
,
item
)
{
selectChange
(
e
,
item
)
{
item
.
isSelect
=
e
?
1
:
0
;
if
(
e
)
{
this
.
selectedImageUrls
.
push
(
item
);
}
else
{
this
.
selectedImageUrls
=
this
.
selectedImageUrls
.
filter
(
urls
=>
urls
.
imageUrl
!==
item
.
imageUrl
);
}
},
},
handleClose
()
{
handleClose
()
{
this
.
selectImgShow
=
false
;
this
.
selectImgShow
=
false
;
},
},
handleSave
()
{
handleSave
()
{
this
.
$emit
(
if
(
this
.
selectSum
<=
0
)
{
'handleSave'
,
Message
.
error
(
'至少选择一张图片!'
);
this
.
imgWallList
return
;
.
filter
(
item
=>
item
.
isSelect
===
1
)
}
.
map
(
item
=>
item
.
imgUrl
)
this
.
$emit
(
'handleSave'
,
this
.
selectedImageUrls
);
);
this
.
selectImgShow
=
false
;
this
.
selectImgShow
=
false
;
}
}
},
},
...
@@ -159,7 +153,10 @@ export default {
...
@@ -159,7 +153,10 @@ export default {
},
},
// 所选条数
// 所选条数
selectSum
()
{
selectSum
()
{
return
this
.
imgWallList
.
filter
(
item
=>
item
.
isSelect
===
1
).
length
;
return
this
.
selectedImageUrls
.
length
;
},
imageUrlsMap
()
{
return
this
.
selectedImageUrls
.
map
(
item
=>
item
.
imageUrl
);
}
}
},
},
created
()
{}
created
()
{}
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment