开始

最新的uni-popup和本视频的不一样的地方
D:\demos\uni-app\hello-uni-app2022\pages\extUI\popup\popup.vue
弹窗的调用方式已经不一样了。

  1. <uni-popup ref="popup" background-color="#fff">
  2. <view class="gonggao">
  3. <view class="u-f-ajc">
  4. <image src="../../static/common/addinput.png" mode="widthFix"></image>
  5. </view>
  6. <view class="">1.涉及黄色,政治,广告及骚扰信息</view>
  7. <view class="">2.涉及黄色,政治,广告及骚扰信息</view>
  8. <view class="">3.涉及黄色,政治,广告及骚扰信息</view>
  9. <view class="">4.涉及黄色,政治,广告及骚扰信息</view>
  10. <button type="default" @tap="hidePopup()">朕知道了</button>
  11. </view>
  12. </uni-popup>

让弹窗显示和隐藏是调用open和close方法。我是在mounted页面声明周期,页面装载后,直接调用open方法显示弹窗的。
image.png

  1. mounted() {
  2. this.$refs.popup.open('center'); // 打开弹窗
  3. },

弹窗的关闭方法

  1. hidePopup() {
  2. this.$refs.popup.close();// 关闭弹窗
  3. }

另外就是弹窗默认没有内边距,需要自己在里面的view上加内边距。就这几个地方不一样的地方,。
image.png

开始本节视频

发布页的弹出公告
image.png
首先来看官方的app demo
image.png

image.png
找到具体的页面
image.png
首先引入的是这个组件
image.png
复制整个组件到我们的项目里面
image.png
复制到自己项目里面
image.png
引入这个组件
image.png
改成驼峰,并注册这个组件。
image.png

使用这个组件
image.png
复制这个居中弹窗
image.png
复制过来。
image.png
定义属性
image.png
我们采用插槽的形式
image.png
隐藏的方法
image.png
随便给插槽点内容
image.png
点击空白的地方可以关闭这个弹窗。
image.png

image.png
首先是有一个图片,下年有一行文字
image.png
用ps切图
image.png
按住alt滚动滚动,可以放大图片

image.png

image.png
image.png

image.png

image.png
复制到项目里
image.png

image.png
嵌套一个view 上下左右都居中。
image.png
给4个view
image.png
最后再加一个buttonimage.png
图片有点太大了
image.png

image.png
按钮的颜色改成黄色。吸取黄色
image.png
image.png
点击按钮关闭弹窗
image.png

image.png
图片改成70%
image.png
文字的颜色
image.png

image.png

image.png
弹出层的宽度太小了
image.png

image.png

image.png
500
image.png

image.png
图片改成75%
image.png
增加上下边距
image.png
image.png
点击按钮,关闭了弹窗
image.png
按钮改成default
image.png

image.png
点击变灰
image.png

本节最终根据新版本的uni-popup的代码

  1. <template>
  2. <view>
  3. <uni-nav-bar :statusBar="true" rightText="发布"
  4. left-icon="back" left-text="返回"
  5. @clickLeft="back" @clickRight="submit">
  6. <view class="u-f-ajc" @tap="changelook">
  7. {{ yinsi }}
  8. <view class="icon iconfont icon-xialazhankai"></view>
  9. </view>
  10. </uni-nav-bar>
  11. <!-- <uni-nav-bar :statusBar="true">
  12. <block slot="left">
  13. <view class="back"></view>
  14. </block>
  15. <view class="u-f-ajc" @tap="changelook">
  16. {{ yinsi }}
  17. <view class="icon iconfont icon-xialazhankai"></view>
  18. </view>
  19. <block slot="right">
  20. <view class="city">
  21. 发布
  22. </view>
  23. </block>
  24. </uni-nav-bar> -->
  25. <!-- 多行输入框 -->
  26. <view class="uni-textarea">
  27. <textarea value="" v-model="text" placeholder="说一句话吧~" />
  28. </view>
  29. <!-- 上传多图 -->
  30. <upload-images @upload="upload" @delect="delect"></upload-images>
  31. <!-- 弹出公告 -->
  32. <!-- <uni-popup :show="showpopup" pisition="middle" mode="fixed" msg="居中弹出popup"
  33. @hidePopup="hidePopup">
  34. 它编程贵阳分需不需
  35. </uni-popup> -->
  36. <uni-popup ref="popup" background-color="#fff">
  37. <view class="gonggao">
  38. <view class="u-f-ajc">
  39. <image src="../../static/common/addinput.png" mode="widthFix"></image>
  40. </view>
  41. <view class="">1.涉及黄色,政治,广告及骚扰信息</view>
  42. <view class="">2.涉及黄色,政治,广告及骚扰信息</view>
  43. <view class="">3.涉及黄色,政治,广告及骚扰信息</view>
  44. <view class="">4.涉及黄色,政治,广告及骚扰信息</view>
  45. <button type="default" @tap="hidePopup()">朕知道了</button>
  46. </view>
  47. </uni-popup>
  48. </view>
  49. </template>
  50. <script>
  51. import uploadImages from '@/components/common/upload-images.vue';
  52. let changelook = ['所有人可见', '仅自己可见'];
  53. export default {
  54. components:{
  55. uploadImages,
  56. },
  57. data() {
  58. return {
  59. showpopup:true,
  60. yinsi: "所有人可见",
  61. text: "111",
  62. imageList: [],
  63. }
  64. },
  65. mounted() {
  66. this.$refs.popup.open('center'); // 打开弹窗
  67. },
  68. methods: {
  69. // 返回
  70. back(){
  71. uni.navigateBack({
  72. delta: 1
  73. })
  74. },
  75. // 发布
  76. submit(){
  77. console.log('发布')
  78. },
  79. // 隐私
  80. changelook(){
  81. console.log('隐私')
  82. uni.showActionSheet({
  83. itemList: changelook,
  84. success: function (res) {
  85. console.log(res.tapIndex);
  86. console.log(changelook[res.tapIndex]);
  87. this.yinsi=changelook[res.tapIndex];
  88. }
  89. });
  90. },
  91. upload(arr) {
  92. this.imageList=arr;
  93. console.log(this.imageList);
  94. },
  95. delect(arr) {
  96. console.log(arr);
  97. },
  98. hidePopup() {
  99. this.$refs.popup.close();// 关闭弹窗
  100. }
  101. }
  102. }
  103. </script>
  104. <style>
  105. .gonggao{
  106. width: 520upx;
  107. padding: 15upx;
  108. }
  109. .gonggao image {
  110. width: 75%;
  111. margin-bottom: 20upx;
  112. }
  113. .gonggao button {
  114. background: #FFE934;
  115. }
  116. textarea{
  117. border: 1upx solid #EEEEEE;
  118. }
  119. /* .uni-navbar__header-container {
  120. justify-content: center;
  121. } */
  122. </style>

结束