commit
						626338416b
					
				|  | @ -1,34 +1,57 @@ | ||||||
| <template> | <template> | ||||||
|   <view> |   <view> | ||||||
|     <s-image-block v-if="type === 'ImageBar'" :data="data" :styles="styles" /> |     <!-- 基础组件:搜索框 --> | ||||||
|     <s-image-banner v-if="type === 'Carousel'" :data="data" :styles="styles" /> |  | ||||||
|     <s-video-block v-if="type === 'VideoPlayer'" :data="data" :styles="styles" /> |  | ||||||
|     <s-image-cube v-if="type === 'imageCube'" :data="data" :styles="styles" /> |  | ||||||
| 
 |  | ||||||
|     <s-notice-block v-if="type === 'NoticeBar'" :data="data" /> |  | ||||||
|     <s-search-block v-if="type === 'SearchBar'" :data="data" :styles="styles" :navbar="false" /> |     <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-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 === 'titleBlock'" :data="data" :styles="styles" /> |     <s-title-block v-if="type === 'titleBlock'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 图文组件:广告魔方 --> | ||||||
|  |     <s-image-cube v-if="type === 'imageCube'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 图文组件:视频播放 --> | ||||||
|  |     <s-video-block v-if="type === 'VideoPlayer'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 基础组件:辅助线 --> | ||||||
|     <s-line-block v-if="type === 'lineBlock'" :data="data" /> |     <s-line-block v-if="type === 'lineBlock'" :data="data" /> | ||||||
|  |     <!-- 图文组件:富文字 --> | ||||||
|  |     <s-richtext-block v-if="type === 'richtext'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 图文组件:热区 --> | ||||||
|  |     <s-hotzone-block v-if="type === 'hotzone'" :data="data" :styles="styles" /> | ||||||
| 
 | 
 | ||||||
|     <s-menu-button v-if="type === 'menuButton'" :data="data" :styles="styles" /> |     <!-- 商品组件:商品卡片 --> | ||||||
|     <s-menu-list v-if="type === 'menuList'" :data="data" /> |  | ||||||
|     <s-menu-grid v-if="type === 'menuGrid'" :data="data" /> |  | ||||||
| 
 |  | ||||||
|     <s-user-card v-if="type === 'userCard'" /> |  | ||||||
|     <s-wallet-card v-if="type === 'walletCard'" /> |  | ||||||
|     <s-order-card v-if="type === 'orderCard'" :data="data" /> |  | ||||||
| 
 |  | ||||||
|     <s-coupon-card v-if="type === 'couponCard'" /> |  | ||||||
|     <s-goods-card v-if="type === 'goodsCard'" :data="data" :styles="styles" /> |     <s-goods-card v-if="type === 'goodsCard'" :data="data" :styles="styles" /> | ||||||
|     <s-score-block v-if="type === 'scoreGoods'" :data="data" :styles="styles" /> |     <!-- 商品组件:商品栏 --> | ||||||
|     <s-goods-shelves v-if="type === 'goodsShelves'" :data="data" :styles="styles" /> |     <s-goods-shelves v-if="type === 'goodsShelves'" :data="data" :styles="styles" /> | ||||||
|     <s-coupon-block v-if="type === 'coupon'" :data="data" :styles="styles"></s-coupon-block> |  | ||||||
|     <s-live-block v-if="type === 'mplive'" :data="data" :styles="styles"></s-live-block> |  | ||||||
|     <s-seckill-block v-if="type === 'seckill'" :data="data" :styles="styles"></s-seckill-block> |  | ||||||
|     <s-groupon-block v-if="type === 'groupon'" :data="data" :styles="styles"></s-groupon-block> |  | ||||||
|     <s-richtext-block v-if="type === 'richtext'" :data="data" :styles="styles"></s-richtext-block> |  | ||||||
|     <s-hotzone-block v-if="type === 'hotzone'" :data="data" :styles="styles"></s-hotzone-block> |  | ||||||
| 
 | 
 | ||||||
|  |     <!-- 营销组件:拼团 --> | ||||||
|  |     <s-groupon-block v-if="type === 'groupon'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 营销组件:秒杀 --> | ||||||
|  |     <s-seckill-block v-if="type === 'seckill'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 营销组件:积分商城 --> | ||||||
|  |     <s-score-block v-if="type === 'scoreGoods'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 营销组件:小程序直播 --> | ||||||
|  |     <s-live-block v-if="type === 'mplive'" :data="data" :styles="styles" /> | ||||||
|  |     <!-- 营销组件:优惠券 --> | ||||||
|  |     <s-coupon-block v-if="type === 'coupon'" :data="data" :styles="styles" /> | ||||||
|  | 
 | ||||||
|  |     <!-- 会员组件:会员卡片 --> | ||||||
|  |     <s-user-card v-if="type === 'userCard'" /> | ||||||
|  |     <!-- 会员组件:订单卡片 --> | ||||||
|  |     <s-order-card v-if="type === 'orderCard'" :data="data" /> | ||||||
|  |     <!-- 会员组件:资产卡片 --> | ||||||
|  |     <s-wallet-card v-if="type === 'walletCard'" /> | ||||||
|  |     <!-- 会员组件:卡券卡片 --> | ||||||
|  |     <s-coupon-card v-if="type === 'couponCard'" /> | ||||||
|   </view> |   </view> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,12 +21,12 @@ | ||||||
|         :class="{ cur: state.cur == index }" |         :class="{ cur: state.cur == index }" | ||||||
|       > |       > | ||||||
|         <!-- 宫格 --> |         <!-- 宫格 --> | ||||||
|         <view class="grid-wrap" :col="data.rowNum"> |         <view class="grid-wrap"> | ||||||
|           <view |           <view | ||||||
|             v-for="(item, index) in arr" |             v-for="(item, index) in arr" | ||||||
|             :key="index" |             :key="index" | ||||||
|             class="grid-item ss-flex ss-flex-col ss-col-center ss-row-center" |             class="grid-item ss-flex ss-flex-col ss-col-center ss-row-center" | ||||||
|             :style="[{ width: clWidth + 'px', height: '200rpx' }]" |             :style="[{ width: `${100 * (1 / data.column)}%`, height: '200rpx' }]" | ||||||
|             hover-class="ss-hover-btn" |             hover-class="ss-hover-btn" | ||||||
|             @tap="sheep.$router.go(item.url)" |             @tap="sheep.$router.go(item.url)" | ||||||
|           > |           > | ||||||
|  | @ -34,12 +34,12 @@ | ||||||
|               <view |               <view | ||||||
|                 v-if="item.badge.show" |                 v-if="item.badge.show" | ||||||
|                 class="tag-box" |                 class="tag-box" | ||||||
|                 :style="[{ background: item.badge.bgColor, color: item.badge.color }]" |                 :style="[{ background: item.badge.bgColor, color: item.badge.textColor }]" | ||||||
|               > |               > | ||||||
|                 {{ item.badge.text }} |                 {{ item.badge.text }} | ||||||
|               </view> |               </view> | ||||||
|               <image |               <image | ||||||
|                 v-if="item.src" |                 v-if="item.iconUrl" | ||||||
|                 class="menu-icon" |                 class="menu-icon" | ||||||
|                 :style="[ |                 :style="[ | ||||||
|                   { |                   { | ||||||
|  | @ -47,15 +47,15 @@ | ||||||
|                     height: props.iconSize + 'rpx', |                     height: props.iconSize + 'rpx', | ||||||
|                   }, |                   }, | ||||||
|                 ]" |                 ]" | ||||||
|                 :src="sheep.$url.cdn(item.src)" |                 :src="sheep.$url.cdn(item.iconUrl)" | ||||||
|                 mode="aspectFill" |                 mode="aspectFill" | ||||||
|               ></image> |               ></image> | ||||||
|               <view |               <view | ||||||
|                 v-if="data.layout == 1" |                 v-if="data.layout === 'iconText'" | ||||||
|                 class="menu-title" |                 class="menu-title" | ||||||
|                 :style="[{ color: item.title.color }]" |                 :style="[{ color: item.titleColor }]" | ||||||
|               > |               > | ||||||
|                 {{ item.title.text }} |                 {{ item.title }} | ||||||
|               </view> |               </view> | ||||||
|             </view> |             </view> | ||||||
|           </view> |           </view> | ||||||
|  | @ -206,15 +206,9 @@ | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   // 生成数据 |   // 生成数据 | ||||||
|   const menuList = computed(() => splitData(props.data.list, props.data.row * props.data.col)); |   const menuList = computed(() => splitData(props.data.list, props.data.row * props.data.column)); | ||||||
|   const swiperHeight = computed(() => props.data.row * (props.data.layout == 1 ? 200 : 180)); |   const swiperHeight = computed(() => props.data.row * (props.data.layout === 'iconText' ? 200 : 180)); | ||||||
|   const windowWidth = sheep.$platform.device.windowWidth; |   const windowWidth = sheep.$platform.device.windowWidth; | ||||||
|   const clWidth = computed( |  | ||||||
|     () => |  | ||||||
|       (windowWidth - |  | ||||||
|         (props.styles.marginLeft + props.styles.marginRight + props.styles.padding * 2)) / |  | ||||||
|       props.data.col, |  | ||||||
|   ); |  | ||||||
| 
 | 
 | ||||||
|   // current 改变时会触发 change 事件 |   // current 改变时会触发 change 事件 | ||||||
|   const swiperChange = (e) => { |   const swiperChange = (e) => { | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
|   <uni-grid :showBorder="Boolean(data.border)" :column="data.col"> |   <uni-grid :showBorder="Boolean(data.border)" :column="data.column"> | ||||||
|     <uni-grid-item |     <uni-grid-item | ||||||
|       v-for="(item, index) in data.list" |       v-for="(item, index) in data.list" | ||||||
|       :key="index" |       :key="index" | ||||||
|  | @ -10,19 +10,19 @@ | ||||||
|           <view |           <view | ||||||
|             class="tag-box" |             class="tag-box" | ||||||
|             v-if="item.badge.show" |             v-if="item.badge.show" | ||||||
|             :style="[{ background: item.badge.bgColor, color: item.badge.color }]" |             :style="[{ background: item.badge.bgColor, color: item.badge.textColor }]" | ||||||
|           > |           > | ||||||
|             {{ item.badge.text }} |             {{ item.badge.text }} | ||||||
|           </view> |           </view> | ||||||
|           <image class="menu-image" :src="sheep.$url.cdn(item.src)"></image> |           <image class="menu-image" :src="sheep.$url.cdn(item.iconUrl)"></image> | ||||||
|         </view> |         </view> | ||||||
| 
 | 
 | ||||||
|         <view class="title-box ss-flex ss-flex-col ss-row-center ss-col-center"> |         <view class="title-box ss-flex ss-flex-col ss-row-center ss-col-center"> | ||||||
|           <view class="grid-text" :style="[{ color: item.title.color }]"> |           <view class="grid-text" :style="[{ color: item.titleColor }]"> | ||||||
|             {{ item.title.text }} |             {{ item.title }} | ||||||
|           </view> |           </view> | ||||||
|           <view class="grid-tip" :style="[{ color: item.tip.color }]"> |           <view class="grid-tip" :style="[{ color: item.subtitleColor }]"> | ||||||
|             {{ item.tip.text }} |             {{ item.subtitle }} | ||||||
|           </view> |           </view> | ||||||
|         </view> |         </view> | ||||||
|       </view> |       </view> | ||||||
|  |  | ||||||
|  | @ -11,25 +11,25 @@ | ||||||
|         <template v-slot:header> |         <template v-slot:header> | ||||||
|           <view class="ss-flex ss-col-center"> |           <view class="ss-flex ss-col-center"> | ||||||
|             <image |             <image | ||||||
|               v-if="item.src" |               v-if="item.iconUrl" | ||||||
|               class="list-icon" |               class="list-icon" | ||||||
|               :src="sheep.$url.cdn(item.src)" |               :src="sheep.$url.cdn(item.iconUrl)" | ||||||
|               mode="aspectFit" |               mode="aspectFit" | ||||||
|             ></image> |             ></image> | ||||||
|             <view |             <view | ||||||
|               class="title-text ss-flex ss-row-center ss-col-center ss-m-l-20" |               class="title-text ss-flex ss-row-center ss-col-center ss-m-l-20" | ||||||
|               :style="[{ color: item.title.color }]" |               :style="[{ color: item.titleColor }]" | ||||||
|             > |             > | ||||||
|               {{ item.title.text }} |               {{ item.title }} | ||||||
|             </view> |             </view> | ||||||
|           </view> |           </view> | ||||||
|         </template> |         </template> | ||||||
|         <template v-slot:footer> |         <template v-slot:footer> | ||||||
|           <view |           <view | ||||||
|             class="notice-text ss-flex ss-row-center ss-col-center" |             class="notice-text ss-flex ss-row-center ss-col-center" | ||||||
|             :style="[{ color: item.tip.color }]" |             :style="[{ color: item.subtitleColor }]" | ||||||
|           > |           > | ||||||
|             {{ item.tip.text }} |             {{ item.subtitle }} | ||||||
|           </view> |           </view> | ||||||
|         </template> |         </template> | ||||||
|       </uni-list-item> |       </uni-list-item> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 芋道源码
						芋道源码