zyejMAll-mobile/sheep/components/s-block-item/s-block-item.vue

158 lines
4.5 KiB
Vue
Raw Permalink Normal View History

2024-08-07 10:31:42 +08:00
<template>
2024-08-07 21:40:27 +08:00
<view>
<!-- 基础组件搜索框 -->
<s-search-block v-if="type === 'SearchBar'" :data="data" :styles="styles" :navbar="false" />
<!-- 基础组件公告栏 -->
<s-notice-block v-if="type === 'NoticeBar'" :data="data" />
<!-- 基础组件菜单导航 -->
<s-menu-button v-if="type === 'MenuSwiper'" :data="data" :styles="styles" />
<!-- 基础组件列表导航 -->
<s-menu-list v-if="type === 'MenuList'" :data="data" />
<!-- 基础组件宫格导航 -->
<s-menu-grid v-if="type === 'MenuGrid'" :data="data" />
<!-- 基础组件弹窗广告 -->
<s-popup-image v-if="type === 'Popover'" :data="data" />
<!-- 基础组件悬浮按钮 -->
<s-float-menu v-if="type === 'FloatingActionButton'" :data="data" />
2024-08-07 10:31:42 +08:00
2024-08-07 21:40:27 +08:00
<!-- 图文组件图片展示 -->
<s-image-block v-if="type === 'ImageBar'" :data="data" :styles="styles" />
<!-- 图文组件图片轮播 -->
<s-image-banner v-if="type === 'Carousel'" :data="data" :styles="styles" />
<!-- 基础组件标题栏 -->
<s-title-block v-if="type === 'TitleBar'" :data="data" :styles="styles" />
<!-- 图文组件广告魔方 -->
<s-image-cube v-if="type === 'MagicCube'" :data="data" :styles="styles" />
<!-- 图文组件视频播放 -->
<s-video-block v-if="type === 'VideoPlayer'" :data="data" :styles="styles" />
<!-- 基础组件分割线 -->
<s-line-block v-if="type === 'Divider'" :data="data" />
<!-- 图文组件热区 -->
<s-hotzone-block v-if="type === 'HotZone'" :data="data" :styles="styles" />
2024-08-07 10:31:42 +08:00
2024-08-07 21:40:27 +08:00
<!-- 商品组件商品卡片 -->
<s-goods-card v-if="type === 'ProductCard'" :data="data" :styles="styles" />
<!-- 商品组件商品栏 -->
<s-goods-shelves v-if="type === 'ProductList'" :data="data" :styles="styles" />
2024-08-07 10:31:42 +08:00
2024-08-07 21:40:27 +08:00
<!-- 营销组件拼团 -->
<s-groupon-block v-if="type === 'PromotionCombination'" :data="data" :styles="styles" />
<!-- 营销组件秒杀 -->
<s-seckill-block v-if="type === 'PromotionSeckill'" :data="data" :styles="styles" />
<!-- 营销组件小程序直播暂时没有这个功能 -->
<s-live-block v-if="type === 'MpLive'" :data="data" :styles="styles" />
<!-- 营销组件优惠券 -->
<s-coupon-block v-if="type === 'CouponCard'" :data="data" :styles="styles" />
<!-- 营销组件文章 -->
<!-- <s-richtext-block v-if="type === 'PromotionArticle'" :data="data" :styles="styles" /> -->
<view class="floxt" v-if="type === 'PromotionArticle'" >
<view class="addClass" v-for="(item, index) in state.model" @click="path(item.id)">
<view class="image">
<image
:src="item.picUrl"
alt="" />
</view>
<view class="text">
<view class="top">
{{item.title}}
</view>
<view class="bottom">
2024-08-08 10:22:22 +08:00
{{ sheep.$helper.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') }}
2024-08-07 21:40:27 +08:00
</view>
</view>
</view>
</view>
2024-08-07 10:31:42 +08:00
2024-08-07 21:40:27 +08:00
<!-- 用户组件用户卡片 -->
<s-user-card v-if="type === 'UserCard'" />
<!-- 用户组件用户订单 -->
<s-order-card v-if="type === 'UserOrder'" :data="data" />
<!-- 用户组件用户资产 -->
<s-wallet-card v-if="type === 'UserWallet'" />
<!-- 用户组件用户卡券 -->
<s-coupon-card v-if="type === 'UserCoupon'" />
</view>
2024-08-07 10:31:42 +08:00
</template>
<script setup>
2024-08-08 10:22:22 +08:00
import sheep from '@/sheep';
2024-08-07 21:40:27 +08:00
import { ref, reactive, unref } from 'vue';
import AddressApi from '@/sheep/api/member/address';
const state = reactive({
model: [],
});
const ff = async (id) => {
let { code, data } = await AddressApi.textList();
state.model = data;
}
ff();
/**
* 装修组件 - 组件集
*/
const props = defineProps({
type: {
type: String,
default: '',
},
data: {
type: Object,
default () {},
},
styles: {
type: Object,
default () {},
},
});
function path(id) {
// $u.route({url:'/pages/goods/index',params:{id:'14'}})
uni.navigateTo({
url: `/pages/mulu/mulu?id=${id}`
});
}
2024-08-07 10:31:42 +08:00
</script>
2024-08-07 21:40:27 +08:00
<style scoped lang="scss">
.floxt {
width: 100%;
.addClass {
background:white;
display: flex;
justify-content: space-between;
width: 100%;
margin:20rpx 0;
// padding: 40rpx;
// padding-right: 0;
// height: 200rpx;
.image {
width: 250rpx;
height: 156rpx;
margin-right: 18rpx;
padding:20rpx 20rpx;
image{
width: 100%;
height: 100%;
}
}
.text {
display: flex;
width: 100%;
// text-align: center;
padding:20rpx 20rpx;
flex:1;
flex-direction: column;
justify-content: space-between;
2024-08-08 10:22:22 +08:00
.bottom{
color: #999;
font-size: 12px;
}
2024-08-07 21:40:27 +08:00
}
}
}
</style>