Commit 9a562739 by admin

feat:照片墙选择图片

1 parent b628da2c
...@@ -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.id" :key="item.imageUrl"
> >
<el-checkbox <el-checkbox
:disabled="selectSum >= 50 && item.isSelect === 0" :disabled="selectSum >= 50 && item.isSelect === 0"
class="select-box" class="select-box"
:value="item.isSelect === 1" :value="imageUrlsMap.includes(item.imageUrl)"
@change=" @change="
e => { e => {
selectChange(e, item); selectChange(e, item);
} }
" "
></el-checkbox> ></el-checkbox>
<img :src="item.imgUrl" /> <img :src="item.imageUrl" />
</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() {}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!