You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mailingAddress.vue 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <template>
  2. <div>
  3. <custom-header :back="false" title="邮寄"></custom-header>
  4. <div style="padding-top: 20rpx" v-if='isShow'>
  5. <form-builder-vue :formData="formData" :config="config" @radioChange="radioChange" @submit="submit">
  6. </form-builder-vue>
  7. </div>
  8. </div>
  9. </template>
  10. <script setup lang='ts'>
  11. import {
  12. unifyTemplate
  13. } from '@/hooks/unifyTemplate'
  14. import {
  15. TypeData,
  16. Index
  17. } from '@/components/form-builder/tools'
  18. import {
  19. ref,
  20. } from 'vue'
  21. import {
  22. onLoad
  23. } from '@dcloudio/uni-app';
  24. import {
  25. request
  26. } from '@/utils/network/request'
  27. import fromData from './fromData.js'
  28. let config = ref < any > ({
  29. submitName: '提交',
  30. titleWidth: 160
  31. })
  32. let formData = ref(fromData)
  33. const {
  34. formBuilderVue, //组件
  35. CustomHeader, //头部组件
  36. initData, //初始化数据
  37. isShow, //是否展示formBuilderVue组件
  38. qdOrderVal //qdOrder中数据 ref
  39. } = unifyTemplate() //初始化数据
  40. //获取页面配置
  41. onLoad((opin) => {
  42. initData(opin, 0).then(data => {
  43. formData.value = JSON.parse(data.config.tableConfig)
  44. isShow.value = true
  45. delete data.config.tableConfig
  46. config.value = Object.assign(data.config, config.value)
  47. })
  48. })
  49. //单项选择器
  50. function radioChange(e: any, item: TypeData) {
  51. if (item.title === '是否邮寄') {
  52. if (e.detail.value == '1') {
  53. formData.value[Index('收件人', formData.value)].show = true
  54. formData.value[Index('收件人手机号', formData.value)].show = true
  55. formData.value[Index('省市区', formData.value)].show = true
  56. formData.value[Index('详细地址', formData.value)].show = true
  57. formData.value[Index('邮政编码', formData.value)].show = true
  58. } else {
  59. formData.value[Index('收件人', formData.value)].show = false
  60. formData.value[Index('收件人手机号', formData.value)].show = false
  61. formData.value[Index('省市区', formData.value)].show = false
  62. formData.value[Index('详细地址', formData.value)].show = false
  63. formData.value[Index('邮政编码', formData.value)].show = false
  64. }
  65. }
  66. }
  67. /**
  68. * 请求函数,e为处理后的value
  69. * */
  70. function submit(e: any) {
  71. // qdorder数据
  72. let {
  73. userType,
  74. vanType,
  75. vehicleColor,
  76. vehiclePlate,
  77. qdOrderNo
  78. } = qdOrderVal.value
  79. // 客货类型
  80. qdOrderVal.value.type = vanType > 3 ? 2 : vanType
  81. const data = {
  82. userType,
  83. qdOrderNo,
  84. vehiclePlate,
  85. vehiclePlateColor: vehicleColor,
  86. type: vanType > 3 ? 2 : vanType,
  87. orderSource: 'H5',
  88. ...e
  89. }
  90. let {
  91. commitInterface,
  92. jumpPage
  93. } = config.value
  94. console.log(data);
  95. request(commitInterface || '3dc2df0ba7004fffbd97192cbaa66b6f', {
  96. data,
  97. }).then((res) => {
  98. if (res.statusCode === 0) {
  99. // 通过orderId关联产品
  100. relatedProducts(qdOrderVal.value.productCode || qdOrderVal.value.promoteId, JSON.parse(res
  101. .bizContent).orderId)
  102. uni.navigateTo({
  103. url: '/' + jumpPage,
  104. animationType: 'pop-in',
  105. animationDuration: 500
  106. })
  107. }
  108. })
  109. }
  110. /**
  111. * 关联产品
  112. * */
  113. function relatedProducts(promoteId: string, orderId: string) {
  114. const data = {
  115. promoteId,
  116. orderId
  117. }
  118. request('198172b1858d474fa8e35225d65014d7', {
  119. showLoading: true,
  120. data,
  121. }).then((res) => {
  122. console.log('关联成功', res)
  123. })
  124. }
  125. </script>
  126. <style lang='scss' scoped>
  127. </style>