add-qrcode.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <view class="code_box">
  3. <view class="video_box">
  4. <video src="http://api.wd.cliu.cc/storage/video/d156c83e2f3c18ff3697e5d218c0e9df.mp4" controls
  5. poster="http://api.wd.cliu.cc/storage/video/video_cover.png"></video>
  6. </view>
  7. <view class="code_title">上传微信二维码名片,方便客户加你微信咨询购买</view>
  8. <image :src="imgUrl" class="code_img" @click="upLoadImg"></image>
  9. <view class="code_hint">点击二维码可重新上传</view>
  10. <view class="sub_box flexC">
  11. <view class="btn flexC" @click="uploadCode">确认提交</view>
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. imgUrl: '/static/imgs/shop/upload_wx.png'
  20. };
  21. },
  22. methods: {
  23. upLoadImg() {
  24. uni.chooseImage({
  25. count: 1, //默认9
  26. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  27. sourceType: ['album'], //从相册选择
  28. success: res => {
  29. // const imgType = ['image/png', 'image/jpg', 'image/jpeg'];
  30. const tempFilePaths = res.tempFilePaths;
  31. // let type = res.tempFiles[0].type;
  32. // if (imgType.indexOf(type) === -1) {
  33. // uni.showModal({
  34. // content: '上传图片格式必须为: png或jpg格式',
  35. // showCancel: false
  36. // });
  37. // return false;
  38. // }
  39. this.imgUrl = tempFilePaths[0];
  40. }
  41. });
  42. },
  43. uploadCode() {
  44. if (this.imgUrl == '/static/imgs/shop/upload_wx.png') {
  45. uni.showModal({
  46. content: '请先上传微信二维码',
  47. showCancel: false
  48. });
  49. return false;
  50. }
  51. uni.showLoading({
  52. title: '提交中...'
  53. });
  54. uni.uploadFile({
  55. url: `${this.$config.redirect_uri}/api/store_goods/upload_wx_qr_code_img`,
  56. filePath: this.imgUrl,
  57. name: 'img',
  58. header: {
  59. Authorization: 'Bearer ' + uni.getStorageSync('token')
  60. // Authorization:
  61. // 'Bearer ' +
  62. // 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuYXBwLmppdXdlaXl1bi5jblwvYXBpXC9sb2dpblwvZ2V0X3VzZXJfb3BlbmlkIiwiaWF0IjoxNjE3MTA1MTI5LCJleHAiOjE2MTc5NjkxMjksIm5iZiI6MTYxNzEwNTEyOSwianRpIjoidElBRHBwakZMUXVkSmtpSiIsInN1YiI6NDk0MjgsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.g8YdgFXY_hzN308um5hWrKf7OPlo5Q9SVgwTjO_8Bdw'
  63. },
  64. success: res => {
  65. uni.hideLoading();
  66. let data = JSON.parse(res.data);
  67. uni.hideLoading();
  68. if (data.code == 200) {
  69. uni.setStorageSync('qrCode', data.data);
  70. uni.navigateBack({});
  71. } else {
  72. uni.showModal({
  73. content: res.data || '上传二维码失败,请重试',
  74. showCancel: false
  75. });
  76. }
  77. },
  78. fail: err => {
  79. uni.hideLoading();
  80. uni.showModal({
  81. content: '上传二维码失败,请重试',
  82. showCancel: false
  83. });
  84. }
  85. });
  86. }
  87. }
  88. };
  89. </script>
  90. <style lang="scss" scoped>
  91. .code_box {
  92. width: 690rpx;
  93. margin: 0 auto;
  94. text-align: center;
  95. .video_box {
  96. width: 690rpx;
  97. margin: 30rpx auto 0;
  98. height: 350rpx;
  99. border-radius: 24rpx;
  100. position: relative;
  101. .video_cover {
  102. width: 100%;
  103. height: 100%;
  104. position: absolute;
  105. top: 0;
  106. left: 0;
  107. z-index: 999;
  108. }
  109. video {
  110. width: 690rpx;
  111. height: 350rpx;
  112. border-radius: 24rpx;
  113. }
  114. }
  115. .code_title {
  116. font-size: 30rpx;
  117. font-weight: bold;
  118. margin-top: 40rpx;
  119. }
  120. .code_img {
  121. width: 300rpx;
  122. height: 300rpx;
  123. margin: 54rpx 0;
  124. }
  125. .wx_img {
  126. width: 264rpx;
  127. height: 347rpx;
  128. margin: 54rpx 0;
  129. }
  130. .code_hint {
  131. color: $base-color;
  132. font-size: 28rpx;
  133. margin-bottom: 80rpx;
  134. }
  135. .sub_box {
  136. position: fixed;
  137. bottom: 0;
  138. left: 0;
  139. background: #fff;
  140. width: 100%;
  141. height: 100rpx;
  142. border-top: 2rpx solid #eeeeee;
  143. .btn {
  144. width: 690rpx;
  145. height: 88rpx;
  146. background: $base-line-bg;
  147. margin: 0 auto;
  148. border-radius: 44rpx;
  149. font-size: 32rpx;
  150. color: #fff;
  151. font-weight: bold;
  152. letter-spacing: 4rpx;
  153. }
  154. }
  155. }
  156. </style>