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.
|
|
<template> <view> <view v-if="mode === 2 && state.liveList.length" class="goods-md-wrap ss-flex ss-flex-wrap ss-col-top" :style="[{ margin: '-' + data.space + 'rpx' }]" > <view :style="[ { padding: data.space + 'rpx', }, ]" class="goods-list-box" v-for="item in state.liveList" :key="item.id" > <s-live-card class="goods-md-box" size="md" :goodsFields="goodsFields" :data="item" :titleColor="goodsFields.name?.color" :subTitleColor="goodsFields.anchor_name?.color" :topRadius="data.borderRadiusTop" :bottomRadius="data.borderRadiusBottom" @click="goRoom(item.roomid)" > </s-live-card> </view> </view> <view v-if="mode === 1 && state.liveList.length" class="goods-lg-box"> <view class="goods-box" :style="[{ marginBottom: data.space + 'px' }]" v-for="item in state.liveList" :key="item.id" > <s-live-card class="goods-card" size="sl" :goodsFields="goodsFields" :data="item" :titleColor="goodsFields.name?.color" :subTitleColor="goodsFields.anchor_name.color" :topRadius="data.borderRadiusTop" :bottomRadius="data.borderRadiusBottom" @tap="goRoom(item.roomid)" > </s-live-card> </view> </view> </view></template><script setup> import { reactive, onMounted } from 'vue'; import sheep from '@/sheep';
const state = reactive({ liveList: [], mpLink: '', }); const props = defineProps({ data: { type: Object, default() {}, }, styles: { type: Object, default() {}, }, }); const { mode, goodsFields, mpliveIds } = props.data || {}; const { marginLeft, marginRight } = props.styles || {};
async function getLiveListByIds(ids) { const { data } = await sheep.$api.app.mplive.getRoomList(ids); return data; } function goRoom(id) { // #ifdef MP-WEIXIN
uni.navigateTo({ url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${id}`, }); // #endif
// #ifndef MP-WEIXIN
uni.showModal({ title: '提示', confirmText: '允许', content: '将打开小程序访问', success: async function (res) { if (res.confirm) { getMpLink(); } }, }); // #endif
}
function goMpLink() { // #ifdef H5
window.location = state.mpLink; // #endif
// #ifdef APP-PLUS
plus.runtime.openURL(state.mpLink); // #endif
}
async function getMpLink() { // #ifndef MP-WEIXIN
if (state.mpLink === '') { const { error, data } = await sheep.$api.app.mplive.getMpLink(); if (error === 0) { state.mpLink = data; } } goMpLink(); // #endif
}
onMounted(async () => { state.liveList = await getLiveListByIds(mpliveIds); });</script><style lang="scss" scoped> .goods-list-box { width: 50%; flex-shrink: 0; box-sizing: border-box; overflow: hidden; }
.goods-box { &:nth-last-of-type(1) { margin-bottom: 0 !important; } }
.goods-md-box, .goods-sl-box { position: relative; }</style>
|