callPage.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <view class="container">
  3. </view>
  4. </template>
  5. <script>
  6. var config = require('../../common/config.js');
  7. var http = require('../../common/http.js');
  8. var common = require('../../common/common.js');
  9. export default {
  10. data() {
  11. return {
  12. code:'', //返回code
  13. message:'', //返回message
  14. backImg:'', //返回图片id
  15. backVideo:'', //返回视频id
  16. backNo:'', //接口调用批次号
  17. idcard: '', //返回身份证号
  18. name: '', //返回用户姓名
  19. serialNumber: '', //序列号
  20. intervalId: null,
  21. face_token: '',
  22. face_key: '',
  23. };
  24. },
  25. /**
  26. * 生命周期函数--监听页面加载
  27. */
  28. onLoad: function(options) {
  29. var me = this;
  30. // // 获取参数
  31. me.setData({
  32. code:options.code,
  33. message:decodeURIComponent(options.message),
  34. backImg:options.backImg,
  35. backVideo:options.backVideo,
  36. backNo:options.backNo,
  37. idcard: options.idcard,
  38. name: decodeURIComponent(options.name),
  39. serialNumber: options.serialNumber
  40. })
  41. this.loadFaceStatus();
  42. this.startInterval();
  43. },
  44. /**
  45. * 生命周期函数--监听页面显示
  46. */
  47. onShow: function() {
  48. },
  49. methods: {
  50. loadFaceStatus() {
  51. common.loading()
  52. const me = this
  53. http.postApi(config.API_USER_FACE_STATUS,{
  54. card_no: me.idcard,
  55. name: me.name,
  56. serial_no: me.serialNumber
  57. },(resp) => {
  58. if (resp.data.code === 200) {
  59. if (resp.data.data.status == 1) {
  60. // 1 认证中
  61. } else if (resp.data.data.status == 2) {
  62. // 2 认证失败
  63. uni.hideLoading()
  64. me.stopInterval();
  65. // me.navToAuthIdentity()
  66. const remark = resp.data.data.remark!=''?'原因:'+resp.data.data.remark:''
  67. uni.setStorageSync('faceKey', me.face_key);
  68. uni.showModal({
  69. title: '提示',
  70. content: `认证失败,${remark},请重试`,
  71. showCancel: false,
  72. confirmText: '确定',
  73. success: function (res) {
  74. if (res.confirm) {
  75. setTimeout(() => {
  76. uni.switchTab({
  77. url: '/pages/index/index'
  78. });
  79. },500)
  80. }
  81. },
  82. fail: function (res) { },
  83. complete: function (res) { },
  84. })
  85. } else if (resp.data.data.status == 3) {
  86. // 3 认证成功
  87. uni.hideLoading()
  88. me.stopInterval();
  89. uni.showToast({
  90. title: '认证成功,即将跳转',
  91. icon: 'success',
  92. duration: 2000
  93. });
  94. setTimeout(() => {
  95. uni.switchTab({
  96. url: '/pages/index/index'
  97. });
  98. },2000)
  99. }
  100. } else{
  101. uni.hideLoading()
  102. me.stopInterval();
  103. common.simpleToast(resp.data.msg)
  104. setTimeout(() => {
  105. uni.switchTab({
  106. url: '/pages/index/index'
  107. });
  108. },1500)
  109. }
  110. })
  111. },
  112. navToAuthIdentity() {
  113. http.postApi(config.API_USER_FACE_TOKEN,{},(resp) => {
  114. if (resp.data.code === 200) {
  115. this.face_token = resp.data.data.token
  116. this.face_key = resp.data.data.key
  117. } else{
  118. common.simpleToast(resp.data.msg)
  119. }
  120. })
  121. },
  122. startInterval() {
  123. this.intervalId = setInterval(() => {
  124. this.loadFaceStatus();
  125. }, 2000);
  126. },
  127. stopInterval() {
  128. clearInterval(this.intervalId);
  129. this.intervalId = null;
  130. },
  131. },
  132. onUnload() {
  133. // 清除定时器,防止内存泄漏
  134. if (this.intervalId) {
  135. this.stopInterval();
  136. }
  137. }
  138. };
  139. </script>
  140. <style>
  141. @import './callPage.css';
  142. </style>