Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

sigManage - 副本.vue 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. </template>
  3. <script setup lang='ts'>
  4. import {
  5. ref
  6. } from 'vue'
  7. import {
  8. unifyTemplate
  9. } from '@/hooks/unifyTemplate'
  10. import {
  11. onLoad
  12. } from '@dcloudio/uni-app';
  13. import {
  14. request
  15. } from '@/utils/network/request'
  16. const {
  17. initData, //初始化数据
  18. qdOrderVal //qdOrder中数据 ref
  19. } = unifyTemplate() //初始化数据
  20. //获取页面配置
  21. onLoad((opin) => {
  22. initData(opin, 3).then(data => {
  23. // contractTesting(data.qdOrder.qdOrderNo, data.config.jumpPage)
  24. contractQuery(data.qdOrder.qdOrderNo, data.config.jumpPage)
  25. })
  26. })
  27. // 合同查询
  28. function contractQuery(qdOrderNo, jumpPage) {
  29. const data = {
  30. orderId: qdOrderVal.value.qtOrderNo //订单id
  31. }
  32. request('7e039f28efcb4ff6ae7e3a2111339b87', {
  33. data,
  34. }).then((res) => {
  35. if (res.statusCode === 0) {
  36. const data = JSON.parse(res.bizContent)
  37. if (data.signmentState !== 1 || data.contractState !== 1) {
  38. // 合同处理
  39. handleContract()
  40. } else {
  41. // 都为1说明可以进行签约检测
  42. contractTesting(qdOrderNo, jumpPage)
  43. }
  44. }
  45. })
  46. }
  47. // 合同处理
  48. function handleContract() {
  49. console.log(qdOrderVal.value);
  50. let ifCode: any
  51. if (qdOrderVal.value.userType == 1) {
  52. // 个人合同
  53. ifCode = 'ec36c36b501341b19407990265a36313'
  54. } else {
  55. ifCode = 'b808a5b65cec4fe4b4a873874f9541e8 '
  56. }
  57. const data = {
  58. orderId: qdOrderVal.value.qtOrderNo //订单id
  59. }
  60. request(ifCode, {
  61. data,
  62. }).then((res) => {
  63. if (res.statusCode === 0) {
  64. const data = JSON.parse(res.bizContent)
  65. window.open(data.shortUrl, '_self')
  66. }
  67. })
  68. }
  69. // 签约检测
  70. function contractTesting(qdOrderNo, jumpPage) {
  71. const data = {
  72. qdOrderNo,
  73. }
  74. request('fdfbdddba6ec49f8b451cf2e299b4feb', {
  75. data,
  76. }).then((res) => {
  77. if (res.statusCode === 0) {
  78. const data = JSON.parse(res.bizContent)
  79. if (data.status !== 0) {
  80. // 后台调用它方接口报错
  81. uni.showModal({
  82. title: '警告',
  83. content: data.msg,
  84. success: function(res) {}
  85. });
  86. return
  87. }
  88. if (data.signStatus === 1 && data.accountStatus === 1 && data.bindStatus === 1) {
  89. // 上面三值都为1才进行下一步,否则进行签约初始化
  90. uni.navigateTo({
  91. url: '/' + jumpPage,
  92. animationType: 'pop-in',
  93. animationDuration: 500
  94. })
  95. /* 自定义返回 */
  96. } else {
  97. // 进行签约初始化
  98. signingInitialization(qdOrderNo)
  99. }
  100. // qdOrderStore.orderInfo.value.orderId = JSON.parse(res.bizContent).orderId
  101. // 通过检测
  102. }
  103. })
  104. }
  105. // 签约初始化
  106. function signingInitialization(qdOrderNo) {
  107. const data = {
  108. qdOrderNo
  109. }
  110. request('94569071cf814517908cd35693f1f2e1', {
  111. data,
  112. }).then((res) => {
  113. if (res.statusCode === 0) {
  114. const data = JSON.parse(res.bizContent)
  115. if (data.status !== 0) {
  116. // 后台调用它方接口报错
  117. uni.showModal({
  118. title: '警告',
  119. content: data.msg,
  120. success: function(res) {}
  121. });
  122. return
  123. }
  124. if (data.returnType === 0) {
  125. // 0-无需跳转,关闭H5即可 1-需跳转至返回url
  126. // const opened = window.open('about:blank', '_self');
  127. // opened.opener = null;
  128. // opened.close();
  129. closeWin()
  130. } else {
  131. window.open(data.signUrl, '_self')
  132. }
  133. }
  134. })
  135. }
  136. // 关闭当前页面方法
  137. function closeWin() {
  138. // @ts-ignore
  139. var jWeixin = import('jweixin-module')
  140. // @ts-ignore
  141. jWeixin.miniProgram.getEnv(function(res) {
  142. if (res.miniprogram) {
  143. // @ts-ignore
  144. jWeixin.miniProgram.navigateTo({
  145. url: '/path/to/page'
  146. })
  147. } else {
  148. const opened = window.open('about:blank', '_self');
  149. opened.opener = null;
  150. opened.close()
  151. }
  152. })
  153. }
  154. </script>
  155. <!-- 签约管理 -->
  156. <style lang='scss' scoped>
  157. .sig-manage {
  158. height: 100vh;
  159. width: 100%;
  160. display: flex;
  161. justify-content: center;
  162. align-items: center;
  163. }
  164. </style>