mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-10 04:36:44 +08:00
【金掌桂2022年开门红需求】大单榜预览图片功能调整,分享功能,下载功能
This commit is contained in:
@@ -54,3 +54,11 @@ export function shareUrlWithQR(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 开门红大单榜海报接口
|
||||||
|
export function queryBigPosters(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/sale/makePosters/queryBigPosters', 1),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,13 +2,18 @@
|
|||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div v-if="posterList.length !== 0">
|
<div v-if="posterList.length !== 0">
|
||||||
<van-grid :column-num="3" :gutter="5">
|
<van-grid :column-num="3" :gutter="5">
|
||||||
<van-grid-item v-for="(item, index) in posterList" :key="index" @click="previewImg(index)">
|
<van-grid-item v-for="(item, index) in posterList" :key="index" @click="previewImg(item, index)">
|
||||||
<van-image class="fill" :src="item.narrowUrl" />
|
<van-image class="fill" :src="item.posterUrl" />
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
</van-grid>
|
</van-grid>
|
||||||
<div class="pageWrapper">
|
<div class="pageWrapper">
|
||||||
<van-pagination class="bottom-btn" v-model="pageNum" :page-count="totalPage" @change="pageChange" />
|
<van-pagination class="bottom-btn" v-model="pageNum" :page-count="totalPage" @change="pageChange" />
|
||||||
</div>
|
</div>
|
||||||
|
<van-image-preview id="preview" v-model="isPrevShow" :images="images" :start-position="startPosition" @change="onPageChange" />
|
||||||
|
<div class="flex justify-content-s bottom-btn bottom15 border-color" v-show="isPrevShow">
|
||||||
|
<van-button square type="default" size="large" @click="shareImg" v-no-more-click="1000"> 分享 </van-button>
|
||||||
|
<van-button square type="danger" size="large" @click="downLoadImagesFunc" v-no-more-click="1000"> 下载 </van-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="posterList.length === 0" class="text-center">
|
<div v-if="posterList.length === 0" class="text-center">
|
||||||
<img class="mt40 w250" src="@/assets/images/pic_page-non.png" />
|
<img class="mt40 w250" src="@/assets/images/pic_page-non.png" />
|
||||||
@@ -19,8 +24,11 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Sticky, Grid, GridItem, Pagination, ImagePreview, List, Image } from 'vant'
|
import { Sticky, Grid, GridItem, Pagination, ImagePreview, List, Image } from 'vant'
|
||||||
import { getPosterList } from '@/api/ebiz/poster/poster'
|
import { queryBigPosters } from '@/api/ebiz/poster/poster'
|
||||||
import config from '@/config'
|
// import config from '@/config'
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
|
Vue.use(ImagePreview)
|
||||||
export default {
|
export default {
|
||||||
name: 'posterList',
|
name: 'posterList',
|
||||||
components: {
|
components: {
|
||||||
@@ -33,29 +41,41 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
posterType: 'hb',
|
// posterType: 'hb',
|
||||||
srcUrl: '@/images/u10199.png',
|
srcUrl: '@/images/u10199.png',
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 9,
|
pageSize: 9,
|
||||||
posterList: [], // 贺报列表
|
posterList: [], // 贺报列表
|
||||||
realImgUrls: [],
|
realImgUrls: [],
|
||||||
index: 0,
|
// index: 0,
|
||||||
totalPage: 0
|
totalPage: 0,
|
||||||
|
isPrevShow: false,
|
||||||
|
startPosition: 0,
|
||||||
|
currentPage: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
images() {
|
||||||
|
const picArr = []
|
||||||
|
for (let pic of this.posterList) {
|
||||||
|
picArr.push(pic.posterUrl)
|
||||||
|
}
|
||||||
|
return picArr
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getPostList()
|
this.getPostList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onChange(index) {
|
onPageChange(index) {
|
||||||
this.index = index
|
this.currentPage = index
|
||||||
},
|
},
|
||||||
// 贺报列表查询
|
// 贺报列表查询
|
||||||
async getPostList() {
|
async getPostList() {
|
||||||
let param = {
|
let param = {
|
||||||
posterInfoDTO: {
|
// posterInfoDTO: {
|
||||||
posterType: this.posterType
|
// posterType: this.posterType
|
||||||
},
|
// },
|
||||||
pageNum: this.pageNum,
|
pageNum: this.pageNum,
|
||||||
pageSize: this.pageSize
|
pageSize: this.pageSize
|
||||||
}
|
}
|
||||||
@@ -64,30 +84,60 @@ export default {
|
|||||||
forbidClick: true,
|
forbidClick: true,
|
||||||
loadingType: 'spinner'
|
loadingType: 'spinner'
|
||||||
})
|
})
|
||||||
let res = await getPosterList(param)
|
let res = await queryBigPosters(param)
|
||||||
if (res.result == 0) {
|
if (res.result == 0) {
|
||||||
this.realImgUrls.splice(0)
|
this.realImgUrls.splice(0)
|
||||||
this.totalPage = res.pageInfo.pages
|
this.totalPage = res.content.pages
|
||||||
this.posterList = res.pageInfo.list
|
this.posterList = res.content.list
|
||||||
for (let item of this.posterList) {
|
for (let item of this.posterList) {
|
||||||
let narrowUrl = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterNarrowUrl}`).replace(/\+/g, '%2B')
|
// let narrowUrl = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterNarrowUrl}`).replace(/\+/g, '%2B')
|
||||||
let url = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterUrl}`).replace(/\+/g, '%2B')
|
// let url = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterUrl}`).replace(/\+/g, '%2B')
|
||||||
item.narrowUrl = narrowUrl
|
// item.narrowUrl = narrowUrl
|
||||||
this.realImgUrls.push(url)
|
this.realImgUrls.push(item.posterUrl)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$toast(res.resultMessage)
|
this.$toast(res.resultMessage)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
previewImg(index) {
|
previewImg(item, index) {
|
||||||
ImagePreview({
|
// this.isPrevShow = true
|
||||||
images: this.realImgUrls,
|
// ImagePreview({
|
||||||
startPosition: index
|
// images: this.realImgUrls,
|
||||||
})
|
// startPosition: index
|
||||||
|
// })
|
||||||
|
this.isPrevShow = true
|
||||||
|
this.startPosition = index
|
||||||
},
|
},
|
||||||
pageChange(pageNum) {
|
pageChange(pageNum) {
|
||||||
this.pageNum = pageNum
|
this.pageNum = pageNum
|
||||||
this.getPostList()
|
this.getPostList()
|
||||||
|
},
|
||||||
|
shareImg() {
|
||||||
|
console.log(this.images[this.currentPage])
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
EWebBridge.webCallAppInJs('bridge', {
|
||||||
|
flag: 'share',
|
||||||
|
extra: {
|
||||||
|
shareType: '1',
|
||||||
|
img: this.images[this.currentPage]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 原生下载图片的方法
|
||||||
|
downLoadImagesFunc() {
|
||||||
|
if (this.images[this.currentPage]) {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
EWebBridge.webCallAppInJs('download', {
|
||||||
|
name: '开门红方案.png',
|
||||||
|
url: this.images[this.currentPage]
|
||||||
|
}).then(() => {
|
||||||
|
console.log('下载完成')
|
||||||
|
}).catch(() => {
|
||||||
|
this.$toast.fail('图片下载失败,请重新下载!')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$toast.fail('图片下载失败,请重新下载!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,4 +188,13 @@ img {
|
|||||||
background-color: #ff4040;
|
background-color: #ff4040;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
.border-color {
|
||||||
|
z-index: 9999;
|
||||||
|
border: 2px solid;
|
||||||
|
border-image: radial-gradient(circle, rgba(255, 233, 124, 1), rgba(222, 144, 34, 1)) 2 2;
|
||||||
|
}
|
||||||
|
/deep/ .van-button--danger {
|
||||||
|
background: linear-gradient(to right, #f26e43, #ac0209) !important; /*设置按钮为渐变颜色*/
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user