您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <!-- <view class="container">
  3. <view class="check-content">
  4. <view class="posi">
  5. <u-checkbox-group>
  6. <u-checkbox v-model="checked" shape="circle">
  7. </u-checkbox>
  8. </u-checkbox-group>
  9. <view class="content">
  10. 我已阅读并同意 <text class="item-line" @click="handleDialog('etc')">《ETC用户协议》</text>和<text class="item-line"
  11. @click="handleDialog('risk')">《风险提示告知书》</text>
  12. </view>
  13. </view>
  14. </view>
  15. <view class='btn-buttom'>
  16. <button class="btn btn-text as-gravity-center nav-bg as-weight" @click='handleNext'>下一步
  17. </button>
  18. </view>
  19. <u-modal v-model="isShow" width='700rpx' mask-close-able :show-title='false' :show-confirm-button='false'>
  20. <view class="slot-content">
  21. <ETCUserAgreement v-if='type=="etc"'/>
  22. <Risk v-else/>
  23. </view>
  24. </u-modal>
  25. </view> -->
  26. </template>
  27. <script setup lang='ts'>
  28. import {
  29. ref
  30. } from 'vue'
  31. import {
  32. unifyTemplate
  33. } from '@/hooks/unifyTemplate'
  34. import {
  35. onLoad
  36. } from '@dcloudio/uni-app';
  37. import {
  38. request
  39. } from '@/utils/network/request'
  40. import ETCUserAgreement from '@/components/ETCUserAgreement.vue'
  41. import Risk from '@/components/Risk.vue'
  42. const {
  43. initData, //初始化数据
  44. qdOrderVal //qdOrder中数据 ref
  45. } = unifyTemplate() //初始化数据
  46. //获取页面配置
  47. onLoad((opin) => {
  48. initData(opin, 3).then(data => {
  49. // contractTesting(data.qdOrder.qdOrderNo, data.config.jumpPage)
  50. // contractQuery(data.qdOrder.qdOrderNo, data.config.jumpPage,data)
  51. uni.navigateTo({
  52. url: '/' + data.config.jumpPage,
  53. animationType: 'pop-in',
  54. animationDuration: 500
  55. })
  56. })
  57. })
  58. const checked = ref(false)
  59. // 合同查询
  60. function contractQuery(qdOrderNo, jumpPage,orderData) {
  61. const data = {
  62. orderId: qdOrderVal.value.qtOrderNo //订单id
  63. }
  64. request('7e039f28efcb4ff6ae7e3a2111339b87', {
  65. data,
  66. }).then((res) => {
  67. if (res.statusCode === 0) {
  68. const data = JSON.parse(res.bizContent)
  69. if (data.signmentState !== 1 || data.contractState !== 1) {
  70. // 合同处理
  71. handleContract(orderData)
  72. } else {
  73. uni.navigateTo({
  74. url: '/' + jumpPage,
  75. animationType: 'pop-in',
  76. animationDuration: 500
  77. })
  78. // 都为1说明可以进行签约检测
  79. // contractTesting(qdOrderNo, jumpPage)
  80. }
  81. }
  82. })
  83. }
  84. const isShow = ref(false)
  85. const type = ref('')
  86. function handleDialog(types) {
  87. isShow.value = true
  88. if (types == 'etc') {
  89. type.value = 'etc'
  90. } else {
  91. type.value = 'risk'
  92. }
  93. }
  94. function handleNext() {
  95. console.log(checked.value);
  96. }
  97. // 合同处理
  98. function handleContract(orderData) {
  99. console.log(qdOrderVal.value);
  100. let ifCode: any
  101. if (orderData.order.userType === 'PERSONAL_USER') {
  102. // 个人合同
  103. ifCode = 'ec36c36b501341b19407990265a36313'
  104. } else {
  105. ifCode = 'b808a5b65cec4fe4b4a873874f9541e8'
  106. }
  107. const data = {
  108. orderId: qdOrderVal.value.qtOrderNo //订单id
  109. }
  110. request(ifCode, {
  111. data,
  112. }).then((res) => {
  113. if (res.statusCode === 0) {
  114. const data = JSON.parse(res.bizContent)
  115. window.open(data.shortUrl, '_self')
  116. }
  117. })
  118. }
  119. </script>
  120. <!-- 签约管理 -->
  121. <style lang='scss' scoped>
  122. .sig-manage {
  123. height: 100vh;
  124. width: 100%;
  125. display: flex;
  126. justify-content: center;
  127. align-items: center;
  128. }
  129. .container {
  130. height: 100%;
  131. width: 100%;
  132. display: flex;
  133. flex-direction: column;
  134. }
  135. :deep(.u-checkbox__label) {
  136. margin: 0;
  137. margin-right: 5rpx;
  138. }
  139. .check-content {
  140. flex: 1 1 auto;
  141. position: relative;
  142. .posi {
  143. position: absolute;
  144. padding: 20rpx;
  145. bottom: 30rpx;
  146. left: 0;
  147. width: 100%;
  148. }
  149. }
  150. .content {
  151. display: inline;
  152. word-wrap: break-word;
  153. }
  154. .item-line {
  155. color: $u-type-primary;
  156. cursor: pointer;
  157. }
  158. .btn {
  159. height: 80rpx;
  160. opacity: 1;
  161. border-radius: 100rpx;
  162. margin: 20rpx;
  163. }
  164. .btn-text {
  165. color: #FFFFFF;
  166. font-size: 28rpx;
  167. }
  168. .nav-bg {
  169. /* background: linear-gradient(to right, #13E7C1, #43A1E0); */
  170. border: 1px solid #FFFFFF;
  171. background: #1AAC1B;
  172. }
  173. .btn-buttom {
  174. flex: 0 0 auto;
  175. }
  176. .slot-content {
  177. height: 82vh;
  178. overflow-y: auto;
  179. }
  180. </style>