您的位置:首页 > 健康 > 美食 > 建设公司网站需要注意什么_长沙互联网公司在哪个区_长沙网站推广公司排名_微信营销和微博营销的本质区别

建设公司网站需要注意什么_长沙互联网公司在哪个区_长沙网站推广公司排名_微信营销和微博营销的本质区别

2024/12/23 11:01:30 来源:https://blog.csdn.net/m0_51430102/article/details/142860010  浏览:    关键词:建设公司网站需要注意什么_长沙互联网公司在哪个区_长沙网站推广公司排名_微信营销和微博营销的本质区别
建设公司网站需要注意什么_长沙互联网公司在哪个区_长沙网站推广公司排名_微信营销和微博营销的本质区别

使用到了vant-ui中的轮播组件、图片组件

数据结构示例:

// type: 1图片   2视频
list: [{type: 1,url: 'adfdsfadsfasdf.png',},{type: 2,url: 'asdfasdfasdf.mp4',}
],item: {type: 1,url: 'adfdsfadsfasdf.png',
},
// utils/index.js/*** 图片/视频预览* @param list* @param item*/
export function previewImg(list, item) {const i = list.findIndex(e => e.url === item.url)state.$state.previewData = {list: list.filter(item => item.type * 1 === 1 || item.type * 1 === 2),active: i !== -1 ? i : 0,}// 如果只有图片和视频,就不需要这个判断了// 这个判断是type=3的时候是一个网址,点击后要跳转或打开新页面if (item.type * 1 === 3) {// window.location.href = item.url// window.location.href = valshowLoadingToast({message: '加载中...',forbidClick: true,})// 判断当前url 是否是有效的链接// 通过正则判断// const reg = /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/const reg = /^(http|https):\/\/([\w.]+\/?)\S*/if (reg.test(item.url)) {// alert('正确链接')// 如果是则跳转window.location.href = item.url} else {// alert('错误链接')// 否则跳转404页面uni.navigateTo({url: `/pages/404?url=${item.url}`,})}} else {uni.navigateTo({url: '/pages/previewMedia',})}
}
<template><div class="w-full h-full"><van-swipe class="w-screen h-screen" :initial-swipe="active" lazy-render><van-swipe-item v-for="(item, index) in list" :key="index"><div class="w-full h-full center bg-black" @click.stop="back"><van-imagev-if="item.type*1 === 1":src="imgJoin(item.url) || ''"class="w-screen h-screen"fit="contain"><template v-slot:loading><img src="@/assets/image/img-err.jpg" class="w-h-full" alt=""></template></van-image><videov-elseref="video":src="imgJoin(item.url) || ''"controlsloop="true"autoplay="true"class="w-full h-full"muted="true"@tap.stop></video></div></van-swipe-item><template #indicator="{ active, total }"><div class="fixed bottom-10 left-10 text-base text-white">{{ active + 1 }} / {{ total }}</div></template></van-swipe></div>
</template><script>
import { imgJoin } from '@/utils'
import useMine from '@/store/mine'
import HNavBar from '@/components/HNavBar.vue'const mineData = useMine()export default {components: { HNavBar },props: {},data() {return {list: mineData.$state.previewData.list,data: [],active: mineData.$state.previewData.active,videoPause: false,}},computed: {},watch: {},created() {},mounted() {},methods: {imgJoin,back() {uni.navigateBack()},},
}
</script><style lang="scss" scoped>
:deep(.van-nav-bar) {background: linear-gradient(180deg, black, transparent) !important;
}:deep(.van-nav-bar .van-icon) {color: white !important;
}
</style>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com