一般提示框的样式,一般由设计稿而定,如果用uniapp的showmodel,那个并不能满足我们需要的自定义样式,所以最好的方式是我们自己封装一个!(想什么样就什么样)!
一、页面效果
二、使用uni-popup
直接看代码吧!
<template>
<view>
<uni-popup ref="tipPopup" type="center" :is-mask-click="true">
<view class="pop">
<view class="title">
温馨提示
</view>
<!-- 提示icon -->
<view class="tip-img">
<image src="../../static/image/tip/tip-icon.png" mode=""></image>
</view>
<view class="tip-info">
{{title}}
</view>
<view class="sure" @click="sure">
确定
</view>
</view>
</uni-popup>
</view>
</template>
<script>
export default {
name:"showTip",
props:["title"],
data() {
return {
};
},
methods: {
open() {
this.$refs.tipPopup.open()
},
sure() {
this.$refs.tipPopup.close()
}
}
}
</script>
<style scoped>
.pop {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
background-color: #fff;
border-radius: 16rpx;
height: 576rpx;
z-index: 99;
width: 640rpx;
padding: 30rpx 0;
}
.title {
text-align: center;
font-size: 34rpx;
font-weight: 500;
margin-top: 38rpx;
}
.tip-img {
margin: 0 auto;
width: 296rpx;
height: 204rpx;
margin-top: 64rpx;
}
.tip-img image {
width: 100%;
height: 100%;
}
.tip-info {
padding: 0 30rpx;
font-size: 34rpx;
color: #666;
margin-top: 32rpx;
margin-bottom: 64rpx;
text-align: center;
}
.sure {
width: 100%;
border-top: 1rpx solid #d1d1d1;
height: 112rpx;
text-align: center;
line-height: 112rpx;
color: #02A53C;
font-size: 34rpx;
font-weight: 500;
}
</style>
我这里是把他封装成组件,一般这种交互性的,用得到的地方比较多,也建议封装成组件进行使用。
三、在页面中使用
主要是这俩个方法控制关和开。
导入和使用:
<!-- 错误提示弹窗 -->
<showTip ref="showtip" :title="tiptitle"></showTip>
import showTip from "/components/showTip/showTip.vue";
声明:
在data中声明数据:
privacyVisible: false,
tiptitle: "错误",
声明组件:
components: {
showTip
},
然后就可以使用了:
比如:
顺便把错误的提示文字传进去组件,组件通过props接收直接使用。
根据这个规则,就可以在此基础上封装成自己需要的样式就可以了!