| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- <!-- 商品详情的底部导航 -->
 
- <template>
 
- 	<su-fixed bottom placeholder bg="bg-white">
 
- 		<view class="ui-tabbar-box">
 
- 			<view class="ui-tabbar ss-flex ss-col-center ss-row-between">
 
- 				<view v-if="serviceIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center"
 
- 					@tap="onIndex">
 
- 					<image class="item-icon" src="@/static/icon/index.png"
 
- 						mode="aspectFit" />
 
- 					<view class="item-title">首页</view>
 
- 				</view>
 
- 				<!-- <view v-if="serviceIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center"
 
- 					@tap="onShopIndex">
 
- 					<image class="item-icon" src="@/static/icon/shop.png"
 
- 						mode="aspectFit" />
 
- 					<view class="item-title">店铺</view>
 
- 				</view> -->
 
- 				<!-- <view v-if="serviceIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center"
 
- 					@tap="onChat">
 
- 					<image class="item-icon" src="@/static/icon/service.png"
 
- 						mode="aspectFit" />
 
- 					<view class="item-title">客服</view>
 
- 				</view> -->
 
- 				
 
- 				<view v-if="shareIcon" class="detail-tabbar-item ss-flex ss-flex-col ss-row-center ss-col-center"
 
- 					@tap="sheep.$router.go('/pages/index/cart');">
 
- 					<image class="item-icon" src="@/static/icon/cart.png"
 
- 						mode="aspectFit" />
 
- 					<view class="item-title">购物车</view>
 
- 				</view>
 
- 				<slot></slot>
 
- 			</view>
 
- 		</view>
 
- 	</su-fixed>
 
- </template>
 
- <script setup>
 
- 	/**
 
- 	 *
 
- 	 * 底部导航
 
- 	 *
 
- 	 * @property {String} bg 			 			- 背景颜色Class
 
- 	 * @property {String} ui 			 			- 自定义样式Class
 
- 	 * @property {Boolean} noFixed 		 			- 是否定位
 
- 	 * @property {Boolean} topRadius 		 		- 上圆角
 
- 	 */
 
- 	import {
 
- 		reactive
 
- 	} from 'vue';
 
- 	import sheep from '@/sheep';
 
- 	import {
 
- 		showShareModal
 
- 	} from '@/sheep/hooks/useModal';
 
- 	import FavoriteApi from '@/sheep/api/product/favorite';
 
- 	// 数据
 
- 	const state = reactive({});
 
- 	// 接收参数
 
- 	const props = defineProps({
 
- 		modelValue: {
 
- 			type: Object,
 
- 			default () {},
 
- 		},
 
- 		bg: {
 
- 			type: String,
 
- 			default: 'bg-white',
 
- 		},
 
- 		bgStyles: {
 
- 			type: Object,
 
- 			default () {},
 
- 		},
 
- 		ui: {
 
- 			type: String,
 
- 			default: '',
 
- 		},
 
- 		noFixed: {
 
- 			type: Boolean,
 
- 			default: false,
 
- 		},
 
- 		topRadius: {
 
- 			type: Number,
 
- 			default: 0,
 
- 		},
 
- 		collectIcon: {
 
- 			type: Boolean,
 
- 			default: true,
 
- 		},
 
- 		serviceIcon: {
 
- 			type: Boolean,
 
- 			default: true,
 
- 		},
 
- 		shareIcon: {
 
- 			type: Boolean,
 
- 			default: true,
 
- 		},
 
- 	});
 
- 	async function onFavorite() {
 
- 		// 情况一:取消收藏
 
- 		if (props.modelValue.favorite) {
 
- 			const {
 
- 				code
 
- 			} = await FavoriteApi.deleteFavorite(props.modelValue.id);
 
- 			if (code !== 0) {
 
- 				return
 
- 			}
 
- 			sheep.$helper.toast('取消收藏');
 
- 			props.modelValue.favorite = false;
 
- 			// 情况二:添加收藏
 
- 		} else {
 
- 			const {
 
- 				code
 
- 			} = await FavoriteApi.createFavorite(props.modelValue.id);
 
- 			if (code !== 0) {
 
- 				return
 
- 			}
 
- 			sheep.$helper.toast('收藏成功');
 
- 			props.modelValue.favorite = true;
 
- 		}
 
- 	}
 
- 	const onShopIndex = () => {
 
- 		sheep.$router.go('/pages/shop/index', {
 
- 			id: props.modelValue.id,
 
- 		});
 
- 	};
 
- 	const onChat = () => {
 
- 		sheep.$router.go('/pages/chat/index', {
 
- 			id: props.modelValue.id,
 
- 		});
 
- 	};
 
- 	const onIndex = () => {
 
- 		sheep.$router.go('/pages/index/index');
 
- 	}	
 
- 	
 
- 	
 
- </script>
 
- <style lang="scss" scoped>
 
- 	.ui-tabbar-box {
 
- 		box-shadow: 0px -6px 10px 0px rgba(51, 51, 51, 0.2);
 
- 	}
 
- 	.ui-tabbar {
 
- 		display: flex;
 
- 		height: 50px;
 
- 		background: #fff;
 
- 		.detail-tabbar-item {
 
- 			width: 100rpx;
 
- 			.item-icon {
 
- 				width: 40rpx;
 
- 				height: 40rpx;
 
- 			}
 
- 			.item-title {
 
- 				font-size: 20rpx;
 
- 				font-weight: 500;
 
- 				line-height: 20rpx;
 
- 				margin-top: 12rpx;
 
- 			}
 
- 		}
 
- 	}
 
- </style>
 
 
  |