guide.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <view class="pages">
  3. <view class="" style="font-size: 36rpx;font-weight: 700;" v-if="muster.muster">
  4. 专属森林向导提醒您
  5. </view>
  6. <view class="content" v-if="muster.muster">
  7. <u-parse :content="muster.muster"></u-parse>
  8. </view>
  9. <view class="" style="font-size: 36rpx;font-weight: 700;" v-if="muster.qrcode_url">
  10. 您的专属森林向导
  11. </view>
  12. <view class="image" v-if="muster.qrcode_url">
  13. <image :src="muster.qrcode_url" mode="aspectFill"></image>
  14. </view>
  15. <view class="submit" @click="savePoster()" v-if="muster.qrcode_url">
  16. 保存二维码到相册
  17. </view>
  18. <view v-if="!muster.muster" class="more">暂无</view>
  19. </view>
  20. </template>
  21. <script>
  22. export default {
  23. data() {
  24. return {
  25. muster: ''
  26. }
  27. },
  28. onLoad(o) {
  29. console.log(o)
  30. if (o.muster) {
  31. let muster = decodeURIComponent(o.muster)
  32. console.log(muster)
  33. this.muster = JSON.parse(muster)
  34. console.log(this.muster)
  35. }
  36. },
  37. methods: {
  38. init() {
  39. let list = uni.getStorageSync("data")
  40. // console.log(list[5])
  41. this.list = list[5].value.phone
  42. },
  43. toPhone(item) {
  44. uni.makePhoneCall({
  45. phoneNumber: item //仅为示例
  46. });
  47. },
  48. savePoster() {
  49. uni.showLoading({
  50. title: '正在保存图片...'
  51. });
  52. //获取用户的当前设置。获取相册权限
  53. uni.getSetting({
  54. success: (res) => {
  55. //如果没有相册权限
  56. if (!res.authSetting["scope.writePhotosAlbum"]) {
  57. //向用户发起授权请求
  58. uni.authorize({
  59. scope: "scope.writePhotosAlbum",
  60. success: () => {
  61. //授权成功保存图片到系统相册
  62. uni.downloadFile({
  63. url: this.muster.qrcode_url,
  64. success: (res) => {
  65. console.log(res)
  66. if (res.statusCode === 200) {
  67. uni.saveImageToPhotosAlbum({
  68. filePath: res.tempFilePath,
  69. success: function() {
  70. uni.showToast({
  71. title: "保存成功",
  72. icon: "none"
  73. });
  74. },
  75. fail: function() {
  76. uni.showToast({
  77. title: "保存失败",
  78. icon: "none"
  79. });
  80. }
  81. });
  82. }
  83. }
  84. })
  85. },
  86. //授权失败
  87. fail: () => {
  88. uni.hideLoading();
  89. uni.showModal({
  90. title: "您已拒绝获取相册权限",
  91. content: "是否进入权限管理,调整授权?",
  92. success: (res) => {
  93. if (res.confirm) {
  94. //调起客户端小程序设置界面,返回用户设置的操作结果。(重新让用户授权)
  95. uni.openSetting({
  96. success: (res) => {
  97. console.log(res.authSetting);
  98. },
  99. });
  100. } else if (res.cancel) {
  101. return uni.showToast({
  102. title: "已取消!",
  103. });
  104. }
  105. },
  106. });
  107. },
  108. });
  109. } else {
  110. //如果已有相册权限,直接保存图片到系统相册
  111. uni.downloadFile({
  112. url: this.muster.qrcode_url,
  113. success: (res) => {
  114. console.log(res)
  115. if (res.statusCode === 200) {
  116. uni.saveImageToPhotosAlbum({
  117. filePath: res.tempFilePath,
  118. success: function() {
  119. uni.showToast({
  120. title: "保存成功",
  121. icon: "none"
  122. });
  123. },
  124. fail: function() {
  125. uni.showToast({
  126. title: "保存失败",
  127. icon: "none"
  128. });
  129. }
  130. });
  131. }
  132. }
  133. })
  134. }
  135. },
  136. fail: (res) => {},
  137. });
  138. },
  139. }
  140. }
  141. </script>
  142. <style lang="less">
  143. page {
  144. background-color: #F4F4F4;
  145. font-size: 28rpx;
  146. }
  147. .pages {
  148. margin: 40rpx 30rpx;
  149. .content {
  150. margin: 24rpx 0 94rpx;
  151. }
  152. .image {
  153. width: 200rpx;
  154. height: 200rpx;
  155. // background-color: pink;
  156. margin: 40rpx auto 73rpx;
  157. image {
  158. width: 100%;
  159. height: 100%;
  160. }
  161. }
  162. .submit {
  163. margin: 0 auto;
  164. box-sizing: border-box;
  165. text-align: center;
  166. color: #FCFCFC;
  167. width: 654rpx;
  168. height: 92rpx;
  169. line-height: 92rpx;
  170. background: #1E9F6A;
  171. border-radius: 8rpx 16rpx 8rpx 16rpx;
  172. }
  173. }
  174. </style>