sliderDialog.vue 3.1 KB

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