buy.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <template name="buy">
  2. <view class="buy-layer" :class="show ?'slidein':''">
  3. <form bindsubmit='doBuy'>
  4. <view class="tit ">正在购买</view>
  5. <view class='msg' bindtap='handleTip'>查看购买说明</view>
  6. <scroll-view scroll-y class="list">
  7. <view wx:for="{{buylist}}" class="item {{buyIndex === index?'active':''}}" data-index="{{index}}" data-buyid="{{item.id}}" data-cash="{{item.cash}}" data-num="{{item.num}}" bindtap='selectBuy' wx:key="{{item.id}}">
  8. <text class='name'>{{item.name}}</text>
  9. <text>¥{{item.price}}</text>
  10. </view>
  11. </scroll-view>
  12. <view class="btn-wrapper ">
  13. <view class="button cancel" bindtap="hideBuy">取消
  14. </view>
  15. <view class="button primary ">确认
  16. <button formType="submit"></button>
  17. </view>
  18. </view>
  19. </form>
  20. </view>
  21. <view class="mask" wx:if="{{tipShow}}">
  22. <view class="buytip-layer layer " catchtap="handleStop">
  23. <view class='buy-tit'>购买说明</view>
  24. <rich-text class='p' nodes='{{buydesc}}'></rich-text>
  25. <view class="btn-wrapper">
  26. <view class="button" bindtap="hideTip">我知道了</view>
  27. </view>
  28. </view>
  29. </view>
  30. <view class="mask success-tip" wx:if="{{paysucshow}}">
  31. <view class="layer">
  32. <view class='tit'>支付成功</view>
  33. <view class='msg'>您已成功购买{{paycount}}本电子刊</view>
  34. <view class="btn-wrapper">
  35. <view class="button" bindtap="gotoCodeDetail">查看兑换码</view>
  36. <view class="button" bindtap="gotoRead">立即阅读</view>
  37. </view>
  38. </view>
  39. </view>
  40. </template>
  41. <script>
  42. export default {
  43. name: "buy",
  44. props: {
  45. show : false
  46. },
  47. data() {
  48. return {
  49. }
  50. },
  51. methods:{
  52. showDrawer : function(key) {
  53. if (key) {
  54. this.$emit('showDrawer', key);
  55. } else {
  56. this.Dever.alert('您点错了吧~');
  57. }
  58. },
  59. handle : function(e) {
  60. this.showDrawer(this.button[e.index].key);
  61. }
  62. },
  63. components:{
  64. }
  65. }
  66. </script>
  67. </script>
  68. <style>
  69. .buy-layer{
  70. padding: 50rpx 55rpx 62rpx;
  71. background-color: #fff;
  72. position: absolute;
  73. bottom: 0;
  74. left: 0;
  75. right: 0;
  76. transform: translateY(100%);
  77. transition-property: transform;
  78. transition-duration: 0.3s;
  79. transition-timing-function: ease-in;
  80. }
  81. .buy-layer.slidein{
  82. transform: translateY(0);
  83. }
  84. .buy-layer .tit{
  85. font-weight: bolder;
  86. font-size: 36rpx;
  87. margin: 0 0 40rpx;
  88. text-align: center;
  89. }
  90. .buy-layer .msg{
  91. font-size: 22rpx;
  92. line-height: 36rpx;
  93. width: 640rpx;
  94. margin: 0 auto 47rpx;
  95. text-align: center;
  96. text-decoration: underline;
  97. color: #666;
  98. }
  99. .buy-layer .btn-wrapper{
  100. display: flex;
  101. justify-content: space-between;
  102. padding-top: 20rpx;
  103. }
  104. .buy-layer .btn-wrapper .button{
  105. border: 0;
  106. min-width: 0;
  107. box-sizing: border-box;
  108. color: #999999;
  109. width: 284rpx;
  110. border-radius: 5rpx;
  111. }
  112. .buy-layer .btn-wrapper .button.primary{
  113. border:0;
  114. color: #fff;
  115. }
  116. .buy-layer .btn-wrapper .button.cancel{
  117. border:0;
  118. background-color: #CCCCCC;
  119. color: #fff;
  120. }
  121. .list{
  122. max-height: 500rpx;
  123. }
  124. .list .item{
  125. height: 100rpx;
  126. border-radius: 10rpx;
  127. border: 1rpx solid #999;
  128. color: #999;
  129. margin-bottom: 30rpx;
  130. box-sizing: border-box;
  131. padding: 0 30rpx;
  132. display: flex;
  133. justify-content: space-between;
  134. align-items: center;
  135. font-size: 30rpx;
  136. }
  137. .list .item.active{
  138. border-color: #000;
  139. color: #000;
  140. }
  141. .list .item .name{
  142. display: flex;
  143. align-items: center;
  144. }
  145. .list .item .name:before{
  146. content: '';
  147. width: 40rpx;
  148. height: 40rpx;
  149. display: block;
  150. background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDRDQ0Q2RkQ3NEE5MTFFOUEzNTVDN0U4MTY0MUFCNjUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDRDQ0Q2RkU3NEE5MTFFOUEzNTVDN0U4MTY0MUFCNjUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENENDRDZGQjc0QTkxMUU5QTM1NUM3RTgxNjQxQUI2NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENENDRDZGQzc0QTkxMUU5QTM1NUM3RTgxNjQxQUI2NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp1bz7wAAAN7SURBVHjazJm/SxxBFMfXMaIoYsBCuDQighYBjYKFklQGCSZCsBCTJmdjYxACV+VPsBLS2NzZhMMiRUwOIrE60EL8dVUURGwULIRIMFwQMd+B78Ljsbc7d94Pv/AhuHsz77s7OzNvXuq2t7e9EtQARsAoGAA9oAO08P4VOAeHYBesgw1wrTsaHBwMDfSgSGPdYB5Mg/aQ31mjXeQF+AguQBosgiPXgMbxdzHwGRyAuQhzhdTOtgfsK+bSyOUNzoIF0Bpw7x/YAjlwAn7z+kPQCfrAEGgUberBG/AKJMBSWPC6kG+wCSQ5nFoZkOK/+YgHtP2MgXdgImDU7LDP4FvMFzPEbWAtwJz92J+Al+CLgzmPv/kKXoPH4Ie6b2Os7ezstLkatE+8Cp6Ja3/tU4LnYN8rXb84aeLs05eNtQqTTS4Gk8rcKRjmkJZLy+zzVJlMRhmcVcN6yoY5r/zKsW9pchpvcbaQwRhnqxzWcXDsVU7HjCGHewEmY0EG9VIyV6E3p3eSHGP5apUvyogdYkrN1pRXJcFkijF9TeEtdkuD81xAfSW86iuhFvN532CDmhiZOy4lpb7FfcaWE6bBMCuRe2vKq51Sau8eMUyZ5N6aqaHBDD34GjXM53xtOW5flRrmPD34GjBMNuXiWWtJDz2GmbCvk3tgUHroMCJN90Q+V0tJDy3Gu+cyPOB4IhOutaSHK8PTl6/OkIb1VTIoPZwbHg199YU0vLFHhCoYlB4ODc+tvoaYURfSbSWdMaMeEpd2jcoiGpmf1Urj6gS4bnjivxAX446d1ZV4L0wytvW0YViOSKun6Hfo7DbE3G0Jw9uvRi+Nre/aXwcXOQlkdl2qSv1OF9SEXJQJq62VrMgsooihLsfkiKusagVv70hXFmKsm7SKQ9NwFRIIu6xsgmb+/Qf0wuCZPjSdqbS7mflZVwXNdTFGs0z9fXNB5+IlNWEegWzEAn6XN5dlDDkxlqIqCzNsKE1ulvmbjLNPaS7L2JGljzyrUFk13LYs8dNxCSqkfvaRVMNqY00EVbgKpVuXLJml1XU70/bAdzAZsS3KYtQk2+yp2eoxxhjMXQYuqg416nIXMD0xWxP6m9NyqbDaDr7R5JRKu2zgp8RVN1xzE1w5IhNWF9mO3tr1CXxSe7erLti2l32duTQqtspvV/f34INXpv+GiNJ/AQYAgCbhym+3rl8AAAAASUVORK5CYII=) no-repeat;
  151. background-size: 40rpx 40rpx;
  152. flex-shrink: 0;
  153. padding-right: 30rpx;
  154. }
  155. .list .item.active .name:before{
  156. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABgmlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kb9LQlEUxz9qYVhhVFBDg0Q1aZiB1NKglAXVYAb9WvTlj0Dt8Z4R0hq0CgVRS7+G+gtqDZqDoCiCaGlpLmopeZ2XghJ5Lueez/3eew73ngvWSFrJ6HVeyGRzWjgUcM3NL7jsL9hpxYGNjqiiq1MzYxFq2uc9FjPeesxatc/9a43LcV0BS4PwiKJqOeFx4cn1nGryjnC7koouC58JuzW5oPCdqcdK/GpyssTfJmuRcBCsLcKuZBXHqlhJaRlheTk9mfSaUr6P+ZKmeHZ2RmK3eBc6YUIEcDHBKEH8DDAssx8PPvplRY1872/+NKuSq8iskkdjhSQpcrhFXZPqcYkJ0eMy0uTN/v/tq54Y9JWqNwWg/tkw3nvBvg3FgmF8HRlG8RhsT3CZreSvHsLQh+iFitZzAM5NOL+qaLFduNiCzkc1qkV/JZu4NZGAt1Nonoe2G3AslnpW3ufkASIb8lXXsLcPfXLeufQDE6lnwO9DRkoAAAAJcEhZcwAACxMAAAsTAQCanBgAAAKDSURBVFiF1dk/axRBGMfxT06CgaBJI4FgISGQMtEijSin2Ik2V1qFFHkF+grSWaayFS++gZDC2CQgqIWQUjSQwkYIIpGIYkCL3SW7k7nL3t4fLz9YOHaeeea7M7vP88zciGoaxU3cww3MYQrjafsRvuIjPuA13uBPxfFKaxZrOMDfDq+DtO9sP8Cm0cRxBbDwOk59TZcZeKSEzQqe4lKk7TfeYxf7+J7en8Q1zGMRFyN9f+AxnpUBjWkM6+KzsIFGalPGTyPtE/O1XtJPQRPYjjjbwkKnznJaSH2EfrfTMUtpLAJ3hKUuwEItpT5DyFIzGS7rF8m71GvNp77D5W6rlQjcTB/gMs04DbnSyngah4rL2o+ZCzWvuNyHWoSgpuKT9PKdO0tLwdjN0GBWMQhvDRAuU/7rPhZknDXFJ+gmlFTVQsCwljWMKubWjT6DjOI2rkTa8sH8ILVVVyRv9BFuAm/Tcb45/TE0ApY6rOZu/FIh7XQA9y4AeBjYjKUMWfsqbOZu7AwQ7hMuR2x3cjabNUmxmWm3T3CvJFVNpj3ckcS8UHmGuZqkEs60PyC4uiSDxJRnmKo5KdM5qediGsED3FeujqwCFzKMU3wvltt0fJKze4ELZ8CF79xnXG3TJ9Nyvl9NkgczTbbpeD33+xGet4CsOnMxhqOs86noHdEifirOSjOA7GbmMuWz2h6dhZm7bSB7AUcQZug8UMcgX/YILhqo64HjMqkuBtktHC1SXdVioRVkVThaFAtUL7dCyG7gWpZbdFew3pJs3je6gOOMgpUhL/k5B5smhnzbmWmoN+6cg6MPhvzwKNNQHL+d6wPMvP7bEXCnGvghepkljmlgf0P8A8uurmx6Sm7EAAAAAElFTkSuQmCC);
  157. }
  158. .buytip{
  159. font-size: 24rpx;
  160. color: #999999;
  161. text-decoration: underline;
  162. padding-bottom: 40rpx;
  163. }
  164. .p{
  165. font-size: 24rpx;
  166. text-align: justify;
  167. line-height: 40rpx;
  168. margin-bottom: 12rpx;
  169. display: block;
  170. box-sizing: border-box;
  171. }
  172. .buy-tit{
  173. font-size: 40rpx;
  174. /* font-weight: bolder; */
  175. text-align: center;
  176. margin-bottom: 40rpx;
  177. }
  178. .mask .buytip-layer{
  179. padding: 60rpx;
  180. }
  181. .buytip-layer .button{
  182. width: 300rpx;
  183. line-height: 80rpx;
  184. height: 80rpx;
  185. background-color: #000;
  186. color: #fff;
  187. border: 0;
  188. border-radius: 5rpx;
  189. margin: 0 auto;
  190. }
  191. .success-tip .layer{
  192. padding: 0;
  193. border-radius: 5rpx;
  194. }
  195. .success-tip .layer .msg{
  196. font-size: 32rpx;
  197. text-align: center;
  198. }
  199. .success-tip .layer .tit{
  200. font-size: 36rpx;
  201. text-align: center;
  202. margin: 62rpx 0 65rpx;
  203. }
  204. .success-tip .layer .btn-wrapper{
  205. display: flex;
  206. padding-top: 87rpx;
  207. }
  208. .success-tip .layer .btn-wrapper .button{
  209. border: 0;
  210. flex: 1;
  211. min-width: 0;
  212. box-sizing: border-box;
  213. font-size: 32rpx;
  214. color: #000;
  215. }
  216. .success-tip .layer .btn-wrapper .button:first-child{
  217. border-top: 1rpx solid #CCCCCC;
  218. border-radius: 0;
  219. }
  220. .success-tip .layer .btn-wrapper .button:last-child{
  221. background-color: #000;
  222. color: #fff;
  223. border-radius: 0 0 5rpx 0;
  224. }
  225. </style>