123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- <!-- z-paging -->
- <!-- github地址:https://github.com/SmileZXLee/uni-z-paging -->
- <!-- dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 -->
- <!-- 反馈QQ群:790460711 -->
- <!-- 空数据占位view,此组件支持easycom规范,可以在项目中直接引用 -->
- <template>
- <view :class="{'zp-container':true,'zp-container-fixed':emptyViewFixed}" :style="[finalEmptyViewStyle]" @click="emptyViewClick">
- <view class="zp-main">
- <image v-if="!emptyViewImg.length" :class="{'zp-main-image-rpx':unit==='rpx','zp-main-image-px':unit==='px'}" :style="[emptyViewImgStyle]" :src="emptyImg" />
- <image v-else :class="{'zp-main-image-rpx':unit==='rpx','zp-main-image-px':unit==='px'}" mode="aspectFit" :style="[emptyViewImgStyle]" :src="emptyViewImg" />
- <text class="zp-main-title" :class="{'zp-main-title-rpx':unit==='rpx','zp-main-title-px':unit==='px'}" :style="[emptyViewTitleStyle]">{{emptyViewText}}</text>
- <text v-if="showEmptyViewReload" :class="{'zp-main-error-btn':true,'zp-main-error-btn-rpx':unit==='rpx','zp-main-error-btn-px':unit==='px'}" :style="[emptyViewReloadStyle]" @click.stop="reloadClick">{{emptyViewReloadText}}</text>
- </view>
- </view>
- </template>
- <script>
- import zStatic from '../z-paging/js/z-paging-static'
- export default {
- name: "z-paging-empty-view",
- data() {
- return {
-
- };
- },
- props: {
- // 空数据描述文字
- emptyViewText: {
- type: String,
- default: '没有数据哦~'
- },
- // 空数据图片
- emptyViewImg: {
- type: String,
- default: ''
- },
- // 是否显示空数据图重新加载按钮
- showEmptyViewReload: {
- type: Boolean,
- default: false
- },
- // 空数据点击重新加载文字
- emptyViewReloadText: {
- type: String,
- default: '重新加载'
- },
- // 是否是加载失败
- isLoadFailed: {
- type: Boolean,
- default: false
- },
- // 空数据图样式
- emptyViewStyle: {
- type: Object,
- default: function() {
- return {}
- }
- },
- // 空数据图img样式
- emptyViewImgStyle: {
- type: Object,
- default: function() {
- return {}
- }
- },
- // 空数据图描述文字样式
- emptyViewTitleStyle: {
- type: Object,
- default: function() {
- return {}
- }
- },
- // 空数据图重新加载按钮样式
- emptyViewReloadStyle: {
- type: Object,
- default: function() {
- return {}
- }
- },
- // 空数据图z-index
- emptyViewZIndex: {
- type: Number,
- default: 9
- },
- // 空数据图片是否使用fixed布局并铺满z-paging
- emptyViewFixed: {
- type: Boolean,
- default: true
- },
- // 空数据图中布局的单位,默认为rpx
- unit: {
- type: String,
- default: 'rpx'
- }
- },
- computed: {
- emptyImg() {
- return this.isLoadFailed ? zStatic.base64Error : zStatic.base64Empty;
- },
- finalEmptyViewStyle(){
- this.emptyViewStyle['z-index'] = this.emptyViewZIndex;
- return this.emptyViewStyle;
- }
- },
- methods: {
- // 点击了reload按钮
- reloadClick() {
- this.$emit('reload');
- },
- // 点击了空数据view
- emptyViewClick() {
- this.$emit('viewClick');
- }
- }
- }
- </script>
- <style scoped>
- .zp-container{
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- align-items: center;
- justify-content: center;
- }
- .zp-container-fixed {
- /* #ifndef APP-NVUE */
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- /* #endif */
- /* #ifdef APP-NVUE */
- flex: 1;
- /* #endif */
- }
- .zp-main{
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: column;
- align-items: center;
- padding: 50rpx 0rpx;
- }
- .zp-main-image-rpx {
- width: 240rpx;
- height: 240rpx;
- }
- .zp-main-image-px {
- width: 120px;
- height: 120px;
- }
- .zp-main-title {
- color: #aaaaaa;
- text-align: center;
- }
- .zp-main-title-rpx {
- font-size: 28rpx;
- margin-top: 10rpx;
- padding: 0rpx 20rpx;
- }
- .zp-main-title-px {
- font-size: 14px;
- margin-top: 5px;
- padding: 0px 10px;
- }
- .zp-main-error-btn {
- border: solid 1px #dddddd;
- color: #aaaaaa;
- }
- .zp-main-error-btn-rpx {
- font-size: 28rpx;
- padding: 8rpx 24rpx;
- border-radius: 6rpx;
- margin-top: 50rpx;
- }
- .zp-main-error-btn-px {
- font-size: 14px;
- padding: 4px 12px;
- border-radius: 3px;
- margin-top: 25px;
- }
- </style>
|