<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>