You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
4.5 KiB
178 lines
4.5 KiB
<template> |
|
<view class="distribution-posters"> |
|
<view class="slider-banner banner"> |
|
<swiper indicatorDots="true"> |
|
<block v-for="(item, infoIndex) in info" :key="infoIndex"> |
|
<swiper-item> |
|
<image class="slide-image" :src="item.wap_poster" mode="widthFix" show-menu-by-longpress /> |
|
</swiper-item> |
|
</block> |
|
</swiper> |
|
</view> |
|
<view class="keep bg-color-red" @click="saveImg">保存海报</view> |
|
</view> |
|
</template> |
|
<script> |
|
// import { swiper, swiperSlide } from "vue-awesome-swiper"; |
|
import { getSpreadImg } from '@/api/user' |
|
|
|
export default { |
|
name: 'Poster', |
|
components: { |
|
// swiper, |
|
// swiperSlide |
|
}, |
|
props: {}, |
|
data: function() { |
|
return { |
|
swiperPosters: { |
|
speed: 1000, |
|
effect: 'coverflow', |
|
slidesPerView: 'auto', |
|
centeredSlides: true, |
|
coverflowEffect: { |
|
rotate: 0, // 旋转的角度 |
|
stretch: -20, // 拉伸 图片间左右的间距和密集度 |
|
depth: 100, // 深度 切换图片间上下的间距和密集度 |
|
modifier: 3, // 修正值 该值越大前面的效果越明显 |
|
slideShadows: false, // 页面阴影效果 |
|
}, |
|
observer: true, |
|
observeParents: true, |
|
}, |
|
info: [], |
|
activeIndex: 0, |
|
} |
|
}, |
|
mounted: function() { |
|
this.getIndex() |
|
let that = this |
|
// this.swiper.on("slideChange", function() { |
|
// that.activeIndex = that.swiper.activeIndex; |
|
// }); |
|
}, |
|
computed: { |
|
swiper() { |
|
// return this.$refs.mySwiper.swiper; |
|
}, |
|
}, |
|
methods: { |
|
getIndex: function() { |
|
let that = this |
|
getSpreadImg({ |
|
from: this.$deviceType == 'weixin' || this.$deviceType == 'weixinh5' ? 'uniappH5' : this.$deviceType, |
|
}).then( |
|
res => { |
|
that.info = res.data |
|
}, |
|
err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
} |
|
) |
|
}, |
|
downloadIamge(imgsrc, name) { |
|
var that = this |
|
this.isDown = true |
|
var downloadUrl = imgsrc |
|
|
|
// if (!wx.saveImageToPhotosAlbum) { |
|
// uni.showModal({ |
|
// title: '提示', |
|
// content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。', |
|
// }) |
|
// that.openDialogVisible = true |
|
|
|
// return |
|
// } |
|
|
|
that.downloadFile(downloadUrl) |
|
|
|
// 可以通过 uni.getSetting 先查询一下用户是否授权了 "scope.writePhotosAlbum" 这个 scope |
|
// uni.getSetting({ |
|
// success(res) { |
|
// if (!res.authSetting["scope.writePhotosAlbum"]) { |
|
// that.openDialogVisible = true; |
|
|
|
// // 接口调用询问 |
|
// uni.authorize({ |
|
// scope: "scope.writePhotosAlbum", |
|
// success() { |
|
// that.downloadFile(downloadUrl); |
|
// }, |
|
// fail() { |
|
// // 用户拒绝了授权 |
|
// // 打开设置页面 |
|
// uni.openSetting({ |
|
// success: function (data) {}, |
|
// fail: function (data) {} |
|
// }); |
|
// } |
|
// }); |
|
// } else { |
|
// that.downloadFile(downloadUrl); |
|
// } |
|
// }, |
|
// fail(res) { |
|
// that.openDialogVisible = true; |
|
// } |
|
// }); |
|
}, |
|
saveImg: function() { |
|
this.downloadIamge(this.info[this.activeIndex].wap_poster, 'poster' + this.activeIndex) |
|
}, |
|
downloadFile(url) { |
|
uni.downloadFile({ |
|
url, |
|
fail: function(res) { |
|
uni.showModal({ |
|
title: '提示', |
|
content: '保存失败', |
|
}) |
|
}, |
|
success: function(res) { |
|
uni.showModal({ |
|
title: '提示', |
|
content: '保存成功', |
|
}) |
|
}, |
|
}) |
|
}, |
|
}, |
|
} |
|
</script> |
|
|
|
<style lang="less"> |
|
page { |
|
height: 100%; |
|
} |
|
|
|
.distribution-posters { |
|
height: 100%; |
|
} |
|
|
|
.banenr { |
|
height: 100%; |
|
} |
|
|
|
.banner swiper { |
|
height: 100%; |
|
} |
|
|
|
.banner .slide-image { |
|
width: 100%; |
|
height: auto; |
|
} |
|
.distribution-posters { |
|
.keep { |
|
position: absolute; |
|
bottom: 60rpx; |
|
left: 60rpx; |
|
right: 60rpx; |
|
width: auto; |
|
} |
|
} |
|
</style>
|
|
|