| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- <template>
 
- 	<view class="u-empty" v-if="show" :style="{
 
- 		marginTop: marginTop + 'rpx'
 
- 	}">
 
- 		<u-icon
 
- 			:name="src ? src : 'empty-' + mode"
 
- 			:custom-style="iconStyle"
 
- 			:label="text ? text : icons[mode]"
 
- 			label-pos="bottom"
 
- 			:label-color="color"
 
- 			:label-size="fontSize"
 
- 			:size="iconSize"
 
- 			:color="iconColor"
 
- 			margin-top="14"
 
- 		></u-icon>
 
- 		<view class="u-slot-wrap">
 
- 			<slot name="bottom"></slot>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	/**
 
- 	 * empty 内容为空
 
- 	 * @description 该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个"没有内容"的场景, 我们精心挑选了十几个场景的图标,方便您使用。
 
- 	 * @tutorial https://www.uviewui.com/components/empty.html
 
- 	 * @property {String} color 文字颜色(默认#c0c4cc)
 
- 	 * @property {String} text 文字提示(默认“无内容”)
 
- 	 * @property {String} src 自定义图标路径,如定义,mode参数会失效
 
- 	 * @property {String Number} font-size 提示文字的大小,单位rpx(默认28)
 
- 	 * @property {String} mode 内置的图标,见官网说明(默认data)
 
- 	 * @property {String Number} img-width 图标的宽度,单位rpx(默认240)
 
- 	 * @property {String} img-height 图标的高度,单位rpx(默认auto)
 
- 	 * @property {String Number} margin-top 组件距离上一个元素之间的距离(默认0)
 
- 	 * @property {Boolean} show 是否显示组件(默认true)
 
- 	 * @event {Function} click 点击组件时触发
 
- 	 * @event {Function} close 点击关闭按钮时触发
 
- 	 * @example <u-empty text="所谓伊人,在水一方" mode="list"></u-empty>
 
- 	 */
 
- 	export default {
 
- 		name: "u-empty",
 
- 		props: {
 
- 			// 图标路径
 
- 			src: {
 
- 				type: String,
 
- 				default: ''
 
- 			},
 
- 			// 提示文字
 
- 			text: {
 
- 				type: String,
 
- 				default: ''
 
- 			},
 
- 			// 文字颜色
 
- 			color: {
 
- 				type: String,
 
- 				default: '#c0c4cc'
 
- 			},
 
- 			// 图标的颜色
 
- 			iconColor: {
 
- 				type: String,
 
- 				default: '#c0c4cc'
 
- 			},
 
- 			// 图标的大小
 
- 			iconSize: {
 
- 				type: [String, Number],
 
- 				default: 120
 
- 			},
 
- 			// 文字大小,单位rpx
 
- 			fontSize: {
 
- 				type: [String, Number],
 
- 				default: 26
 
- 			},
 
- 			// 选择预置的图标类型
 
- 			mode: {
 
- 				type: String,
 
- 				default: 'data'
 
- 			},
 
- 			//  图标宽度,单位rpx
 
- 			imgWidth: {
 
- 				type: [String, Number],
 
- 				default: 120
 
- 			},
 
- 			// 图标高度,单位rpx
 
- 			imgHeight: {
 
- 				type: [String, Number],
 
- 				default: 'auto'
 
- 			},
 
- 			// 是否显示组件
 
- 			show: {
 
- 				type: Boolean,
 
- 				default: true
 
- 			},
 
- 			// 组件距离上一个元素之间的距离
 
- 			marginTop: {
 
- 				type: [String, Number],
 
- 				default: 0
 
- 			},
 
- 			iconStyle: {
 
- 				type: Object,
 
- 				default() {
 
- 					return {}
 
- 				}
 
- 			}
 
- 		},
 
- 		data() {
 
- 			return {
 
- 				icons: {
 
- 					car: '购物车为空',
 
- 					page: '页面不存在',
 
- 					search: '没有搜索结果',
 
- 					address: '没有收货地址',
 
- 					wifi: '没有WiFi',
 
- 					order: '订单为空',
 
- 					coupon: '没有优惠券',
 
- 					favor: '暂无收藏',
 
- 					permission: '无权限',
 
- 					history: '无历史记录',
 
- 					news: '无新闻列表',
 
- 					message: '消息列表为空',
 
- 					list: '列表为空',
 
- 					data: '数据为空'
 
- 				},
 
- 				// icons: [{
 
- 				// 	icon: 'car',
 
- 				// 	text: '购物车为空'
 
- 				// },{
 
- 				// 	icon: 'page',
 
- 				// 	text: '页面不存在'
 
- 				// },{
 
- 				// 	icon: 'search',
 
- 				// 	text: '没有搜索结果'
 
- 				// },{
 
- 				// 	icon: 'address',
 
- 				// 	text: '没有收货地址'
 
- 				// },{
 
- 				// 	icon: 'wifi',
 
- 				// 	text: '没有WiFi'
 
- 				// },{
 
- 				// 	icon: 'order',
 
- 				// 	text: '订单为空'
 
- 				// },{
 
- 				// 	icon: 'coupon',
 
- 				// 	text: '没有优惠券'
 
- 				// },{
 
- 				// 	icon: 'favor',
 
- 				// 	text: '暂无收藏'
 
- 				// },{
 
- 				// 	icon: 'permission',
 
- 				// 	text: '无权限'
 
- 				// },{
 
- 				// 	icon: 'history',
 
- 				// 	text: '无历史记录'
 
- 				// },{
 
- 				// 	icon: 'news',
 
- 				// 	text: '无新闻列表'
 
- 				// },{
 
- 				// 	icon: 'message',
 
- 				// 	text: '消息列表为空'
 
- 				// },{
 
- 				// 	icon: 'list',
 
- 				// 	text: '列表为空'
 
- 				// },{
 
- 				// 	icon: 'data',
 
- 				// 	text: '数据为空'
 
- 				// }],
 
- 			}
 
- 		}
 
- 	}
 
- </script>
 
- <style scoped lang="scss">
 
- 	@import "../../libs/css/style.components.scss";
 
- 	.u-empty {
 
- 		@include vue-flex;
 
- 		flex-direction: column;
 
- 		justify-content: center;
 
- 		align-items: center;
 
- 		height: 100%;
 
- 	}
 
- 	.u-image {
 
- 		margin-bottom: 20rpx;
 
- 	}
 
- 	.u-slot-wrap {
 
- 		@include vue-flex;
 
- 		justify-content: center;
 
- 		align-items: center;
 
- 		margin-top: 20rpx;
 
- 	}
 
- </style>
 
 
  |