exchange.html 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!-- +---------------------------------------------------------------------- -->
  2. <!-- | CRMEB [ CRMEB赋能开发者,助力企业发展 ] -->
  3. <!-- +---------------------------------------------------------------------- -->
  4. <!-- | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. -->
  5. <!-- +---------------------------------------------------------------------- -->
  6. <!-- | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 -->
  7. <!-- +---------------------------------------------------------------------- -->
  8. <!-- | Author: CRMEB Team <admin@crmeb.com> -->
  9. <!-- +---------------------------------------------------------------------- -->
  10. {extend name="public/container"}
  11. {block name="title"}专题兑换{/block}
  12. {block name="head_top"}
  13. <style>
  14. html, body {
  15. height: 100%;
  16. -webkit-tap-highlight-color: transparent;
  17. }
  18. body {
  19. background: url("{__WAP_PATH}zsff/images/exchange1.png") center/cover no-repeat;
  20. overflow: hidden;
  21. }
  22. </style>
  23. {/block}
  24. {block name="content"}
  25. <div v-cloak id="app">
  26. <div class="exchange-code">
  27. <form class="exchange-code-form" @submit.prevent="exchange">
  28. <input v-model.trim="code" type="text" maxlength="6" placeholder="请输入兑换码">
  29. <div><span>温馨提示:</span>每个兑换码只能兑换一次哦~</div>
  30. <input :disabled="!code" type="submit" value="立即兑换">
  31. </form>
  32. <div :class="{ mask: isSuccess }"></div>
  33. <div v-show="isSuccess" class="dialog">
  34. <img src="{__WAP_PATH}zsff/images/exchange3.png" alt="">
  35. <div>兑换成功</div>
  36. <div>您的课程已兑换成功,快去学习吧!</div>
  37. <a :href="(is_light ? '{:url('special/single_details')}' : '{:url('special/details')}') + '?id=' + special_id">立即查看</a>
  38. </div>
  39. <base-login :login-show="loginShow" :site-name="site_name" @login-close="loginClose"></base-login>
  40. </div>
  41. <quick-menu></quick-menu>
  42. </div>
  43. {/block}
  44. {block name="foot"}
  45. <script>
  46. require(['vue', 'helper', 'store', 'components/base-login/index', 'quick'], function (Vue, $h, $http, BaseLogin) {
  47. var isWechat = {$isWechat ? 'true' : 'false'};
  48. var site_name = '{$Auth_site_name}';
  49. var special_id='{$special_id}';
  50. var vm = new Vue({
  51. el: '#app',
  52. components: {
  53. 'base-login': BaseLogin
  54. },
  55. data: {
  56. code: '',
  57. isSuccess: false,
  58. loginShow: false,
  59. isWechat: isWechat,
  60. site_name: site_name,
  61. special_id: special_id,
  62. is_light: 0
  63. },
  64. methods: {
  65. exchange: function () {
  66. if (!/^\d{6}$/.test(this.code)) {
  67. return $h.pushMsg('请输入正确的兑换码');
  68. }
  69. $http.baseGet($h.U({ c: 'index', a: 'user_login' }), function (res) {
  70. $h.loadFFF();
  71. $http.basePost($h.U({
  72. c: 'special',
  73. a: 'exchangeSubmit'
  74. }), {
  75. special_id:vm.special_id,
  76. code: vm.code
  77. }, function (res) {
  78. $h.loadClear();
  79. vm.is_light = res.data.data.is_light;
  80. vm.isSuccess = true;
  81. }, function () {
  82. $h.loadClear();
  83. });
  84. }, function () {
  85. this.loginShow = true;
  86. }.bind(this));
  87. },
  88. changeVal: function (opt) {
  89. if (typeof opt !== 'object') {
  90. opt = {};
  91. }
  92. var action = opt.action || '';
  93. var value = opt.value || '';
  94. this[action] && this[action](value);
  95. },
  96. //关闭登录
  97. loginClose: function (value) {
  98. this.loginShow = false;
  99. value && this.logComplete();
  100. },
  101. //登录完成回调事件
  102. logComplete: function () {
  103. this.exchange();
  104. }
  105. }
  106. });
  107. });
  108. </script>
  109. {/block}