purchasesuccess.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <template>
  2. <div class="purchasesuccess">
  3. <div class="j-main logout_main">
  4. <div class="logout_tips">
  5. <div class="success">
  6. <img src="@/assets/image/icon-checkbox-choose.png" class="success-icon" alt />
  7. </div>
  8. <p class="success_text">兑换成功</p>
  9. <div class="success_money">
  10. <span class="icon_num"></span>
  11. <span class="money_num">{{query}}</span>
  12. </div>
  13. <p class="success_days">{{count}}s后自动跳转到文档页面</p>
  14. </div>
  15. <div class="logout_infor">
  16. <div class="infor_group">
  17. <div class="infor_cell">
  18. <div class="infor_title">支付方式</div>
  19. <div class="infor_value">{{payinfor.payWay}}支付</div>
  20. </div>
  21. <div class="infor_cell">
  22. <div class="infor_title">兑换时间</div>
  23. <div class="infor_value">{{payinfor.payTime}}</div>
  24. </div>
  25. <div class="infor_cell">
  26. <div class="infor_title">流水编号</div>
  27. <div class="infor_value">{{payinfor.code}}</div>
  28. </div>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="j-footer apply_footer">
  33. <button class="apply_button" @click="complete()">查看文档</button>
  34. </div>
  35. </div>
  36. </template>
  37. <script lang="ts">
  38. import { Component, Vue } from 'vue-property-decorator'
  39. import { dateFormatter } from '../../utils/globalFunctions'
  40. import { mapMutations } from 'vuex'
  41. @Component({
  42. name: 'test',
  43. ...mapMutations({
  44. clearLibState: 'main/clearMyLibState'
  45. })
  46. })
  47. export default class extends Vue {
  48. clearLibState: any
  49. count = 3
  50. timer: any
  51. $router: any
  52. query: any
  53. payinfor = {
  54. docId: '', // id
  55. payTime: '',
  56. payWay: '',
  57. code: '',
  58. currency: 0
  59. }
  60. created () {
  61. this.query = location.href.split('/')[location.href.split('/').length - 1] // 获取num
  62. this.setCountDown()
  63. this.setSession()
  64. this.clearLibState('clearLib') // 清除我的文库列表缓存数据
  65. }
  66. setSession () {
  67. let paydata: any = sessionStorage.getItem('paydata')
  68. console.log(paydata)
  69. if (paydata) {
  70. paydata = JSON.parse(paydata)
  71. this.payinfor.payTime = dateFormatter(paydata.payTime * 1000, 'yyyy/MM/dd')
  72. this.payinfor.payWay = paydata.payWay
  73. this.payinfor.code = paydata.code
  74. this.payinfor.docId = paydata.query
  75. }
  76. }
  77. // 倒计时
  78. setCountDown () {
  79. if (!this.timer) {
  80. this.timer = setInterval(() => {
  81. if (this.count > 0 && this.count <= 10) {
  82. this.count--
  83. } else {
  84. clearInterval(this.timer)
  85. this.timer = null
  86. this.$router.replace({
  87. name: 'details',
  88. params: {
  89. id: this.payinfor.docId
  90. }
  91. })
  92. }
  93. }, 1000)
  94. }
  95. }
  96. // 查看文档按钮
  97. complete () {
  98. this.$router.replace({
  99. name: 'details',
  100. params: {
  101. id: this.payinfor.docId
  102. }
  103. })
  104. }
  105. }
  106. </script>
  107. <style lang="scss">
  108. .purchasesuccess {
  109. .logout_tips {
  110. width: 100%;
  111. height: 245px;
  112. display: flex;
  113. flex-direction: column;
  114. align-items: center;
  115. background: #fff;
  116. .success {
  117. margin-top: 40px;
  118. width: 80px;
  119. height: 80px;
  120. .success_icon {
  121. width: 100%;
  122. height: 100%;
  123. }
  124. }
  125. .success_text {
  126. margin-top: 8px;
  127. font-size: 18px;
  128. line-height: 26px;
  129. color: #2abed1;
  130. }
  131. .success_money{
  132. display: flex;
  133. align-items: center;
  134. height: 30px;
  135. .icon_num{
  136. display: flex;
  137. width: 24px;
  138. height: 24px;
  139. background: url(data:image/png;base64,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) no-repeat;
  140. background-size: contain;
  141. }
  142. .money_num{
  143. margin-left: 4px;
  144. color: #171826;
  145. font-weight: medium;
  146. font-size: 24px;
  147. line-height: 30px;
  148. }
  149. }
  150. .success_days {
  151. margin-top: 24px;
  152. font-size: 13px;
  153. line-height: 20px;
  154. color: #5f5e64;
  155. }
  156. }
  157. .logout_infor{
  158. flex: 1;
  159. margin-top: 8px;
  160. padding-left: 16px;
  161. background: #fff;
  162. .infor_group{
  163. display: flex;
  164. flex-direction: column;
  165. width: 100%;
  166. height: auto;
  167. .infor_cell{
  168. display: flex;
  169. justify-content: space-between;
  170. align-items: center;
  171. padding-right: 16px;
  172. height: 53px;
  173. border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
  174. .infor_title{
  175. font-size: 16px;
  176. line-height: 24px;
  177. color: #171826;
  178. }
  179. .infor_value{
  180. font-size: 14px;
  181. line-height: 20px;
  182. color: #9B9CA3;
  183. }
  184. }
  185. }
  186. }
  187. .apply_footer {
  188. display: flex;
  189. align-items: center;
  190. justify-content: center;
  191. padding: 8px 16px 12px;
  192. background: rgba(255, 255, 255, 0.96);
  193. filter: drop-shadow(0px -2px 8px rgba(54, 147, 179, 0.051));
  194. }
  195. .apply_button {
  196. width: 100%;
  197. height: 46px;
  198. border-radius: 8px;
  199. background: #2abed1;
  200. font-size: 18px;
  201. color: #f7f9fa;
  202. }
  203. }
  204. </style>