开始

退出的时候是否保存为草稿。如果保存为草稿,就写入到缓存内。下一次用户进来就加载缓存的数据
监听返回按钮的事件
image.png
return true表示阻止返回。
image.png

image.png

image.png

  1. onBackPress() {
  2. uni.showModal({
  3. content:'是否要保存为草稿',
  4. cancelText: '不保存',
  5. confirmText:'保存',
  6. success: res => {
  7. }
  8. })
  9. },

image.png

不管点击保存还是不保存,都还是会弹出这个弹窗。
image.png

image.png

  1. isget: false,

弹出后设置为true
image.png

  1. this.isget=true;

在外层加一个判断。
image.png

image.png
点击不保存,退出到首页
image.png

封装成一个方法

image.png

image.png

image.png

image.png

image.png

缓存

后面对接后端的接口的时候再来写缓存。
image.png

本节完整代码

  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. isget: false,
  60. showpopup:true,
  61. yinsi: "所有人可见",
  62. text: "",
  63. imageList: [],
  64. }
  65. },
  66. onBackPress() {
  67. // 如果有值
  68. if(!this.text && this.imageList.length<1) {
  69. return;
  70. }
  71. if(!this.isget) {
  72. this.baocun();
  73. return true;
  74. }
  75. },
  76. // mounted() {
  77. // // this.$refs.popup.open('center'); // 打开弹窗
  78. // },
  79. methods: {
  80. // 保存为草稿
  81. baocun() {
  82. uni.showModal({
  83. content:'是否要保存为草稿',
  84. cancelText: '不保存',
  85. confirmText:'保存',
  86. success: res => {
  87. if(res.confirm) {
  88. console.log('保存');
  89. } else {
  90. console.log('不保存');
  91. }
  92. this.isget=true;
  93. // 返回上一页
  94. uni.navigateBack({
  95. delta:1
  96. });
  97. }
  98. });
  99. },
  100. // 返回
  101. back(){
  102. console.log('返回事件');
  103. uni.navigateBack({
  104. delta: 1
  105. })
  106. },
  107. // 发布
  108. submit(){
  109. console.log('发布')
  110. },
  111. // 隐私
  112. changelook(){
  113. console.log('隐私')
  114. uni.showActionSheet({
  115. itemList: changelook,
  116. success: function (res) {
  117. console.log(res.tapIndex);
  118. console.log(changelook[res.tapIndex]);
  119. this.yinsi=changelook[res.tapIndex];
  120. }
  121. });
  122. },
  123. upload(arr) {
  124. this.imageList=arr;
  125. console.log(this.imageList);
  126. },
  127. delect(arr) {
  128. console.log(arr);
  129. },
  130. hidePopup() {
  131. this.$refs.popup.close();// 关闭弹窗
  132. }
  133. }
  134. }
  135. </script>
  136. <style>
  137. .gonggao{
  138. width: 520upx;
  139. padding: 15upx;
  140. }
  141. .gonggao image {
  142. width: 75%;
  143. margin-bottom: 20upx;
  144. }
  145. .gonggao button {
  146. background: #FFE934;
  147. }
  148. textarea{
  149. border: 1upx solid #EEEEEE;
  150. }
  151. /* .uni-navbar__header-container {
  152. justify-content: center;
  153. } */
  154. </style>

结束