sliderDialog.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <view class="slider-check-dialog">
  3. <view class="slider-check-content">
  4. <view class="slider-close" @click="sliderClose(AWSC)"></view>
  5. <view class="slider-check-tip" :class="{ 'slider-tip-red': isSlider}">请滑动下方滑块,完成验证</view>
  6. <view id="yzm-slider"></view>
  7. <text @click="AWSC.emitData" class="slider-check-btn"></text>
  8. </view>
  9. </view>
  10. </template>
  11. <script>
  12. export default {
  13. mounted() {
  14. },
  15. data() {
  16. return {
  17. sliderObj: {
  18. sessionId: '',
  19. sig: '',
  20. token: '',
  21. },
  22. isSlider:false,
  23. }
  24. },
  25. methods: {
  26. receiveRenderData(data) {
  27. this.$emit('emitFun', data)
  28. },
  29. sliderClose(AWSC) {
  30. AWSC.getReset();
  31. // this.$emit('sliderClose')
  32. uni.redirectTo({
  33. url: `/pages/login/index`
  34. })
  35. }
  36. }
  37. }
  38. </script>
  39. <script module="AWSC" lang="renderjs">
  40. export default {
  41. mounted() {
  42. const script = document.createElement('script');
  43. script.src = 'https://g.alicdn.com/AWSC/AWSC/awsc.js';
  44. document.body.appendChild(script);
  45. script.onload = () => {
  46. this.init()
  47. }
  48. },
  49. data() {
  50. return {
  51. sessionId: '',
  52. sig: '',
  53. token: '',
  54. nc:null,
  55. }
  56. },
  57. methods: {
  58. init() {
  59. let that =this
  60. AWSC.use("nc", function(state, module) {
  61. that.nc = module.init({
  62. // 应用类型标识。它和使用场景标识(scene字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的appkey字段值,请务必正确填写。
  63. appkey: "FFFF0N00000000007EC0",
  64. //使用场景标识。它和应用类型标识(appkey字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的scene值,请务必正确填写。
  65. scene: "nc_message_h5",
  66. // 声明滑动验证需要渲染的目标ID。
  67. renderTo: "yzm-slider",
  68. //前端滑动验证通过时会触发该回调参数。您可以在该回调参数中将会话ID(sessionId)、签名串(sig)、请求唯一标识(token)字段记录下来,随业务请求一同发送至您的服务端调用验签。
  69. success: function(data) {
  70. that.getData(data)
  71. },
  72. // 滑动验证失败时触发该回调参数。
  73. fail: function(failCode) {
  74. console.log('失败:' + failCode)
  75. },
  76. // 验证码加载出现异常时触发该回调参数。
  77. error: function(errorCode) {
  78. console.log('异常:' + errorCode)
  79. }
  80. });
  81. })
  82. },
  83. getReset(){
  84. this.sessionId = '';
  85. this.sig = '';
  86. this.token = '';
  87. this.nc.reset();
  88. },
  89. getData(data){
  90. this.isSlider = false;
  91. console.log(data)
  92. this.sessionId =data.sessionId
  93. this.sig =data.sig
  94. this.token =data.token
  95. AWSC.emitData;
  96. },
  97. emitData(e, ownerInstance) {
  98. if(this.sessionId){
  99. ownerInstance.callMethod('receiveRenderData', {
  100. sessionId: this.sessionId,
  101. sig: this.sig,
  102. token: this.token
  103. })
  104. }else{
  105. this.isSlider = true;
  106. }
  107. }
  108. }
  109. }
  110. </script>