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

userInfoUploading.vue 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <template>
  2. <div>
  3. <custom-header title="用户信息"></custom-header>
  4. <div style="padding-top: 20rpx">
  5. <form-builder-vue v-if="start" :formData="formData" :config="config" @uploadImg="uploadImg" @radioChange="radioChange"
  6. @submit="submit">
  7. </form-builder-vue>
  8. </div>
  9. <agreement v-if="false" :start="start" @disagree="disagree" @consent="consent">
  10. <view class="text">为了更好的向您提供服务,我们需要收集您的用户、车辆等信息用于ETC发行、售后。请您务必审慎阅读、充分理解<a
  11. href="https://cli.im/url">《用户协议》</a>和<a>《隐私政策》</a>各条款。如果您同意,请点击下面按钮开始接受我们的服务,如果不同意将会限制您使用部分功能。
  12. </view>
  13. </agreement>
  14. </div>
  15. <!-- -->
  16. </template>
  17. <script setup lang='ts'>
  18. import CustomHeader from '@/components/CustomHeader.vue';
  19. import formBuilderVue from '@/components/form-builder/form-builder-vue3'
  20. import Agreement from '@/components/Agreement.vue';
  21. import {
  22. TypeData,
  23. Index
  24. } from '@/components/form-builder/tools'
  25. import {
  26. IdCard
  27. } from '../../static/data/testData.js'
  28. import {
  29. fileURL
  30. } from '@/static/js/network/api.js';
  31. import {
  32. reactive,
  33. ref,
  34. nextTick
  35. } from 'vue'
  36. import {
  37. onLoad
  38. } from '@dcloudio/uni-app';
  39. import {
  40. request
  41. } from '../../static/js/network/request'
  42. //获取页面配置
  43. onLoad((opin) => {
  44. // request('ac8756cc31eb4816b8eaeb71907ff9c1', {
  45. // data: {
  46. // qdOrderNo: 'qddd123456'
  47. // }
  48. // }).then((res) => {
  49. // let data = JSON.parse(res.bizContent)
  50. // formData.value = JSON.parse(data.config.tableConfig)
  51. // console.log('输出内容',formData.value)
  52. // start.value = false
  53. // nextTick(()=>{
  54. // start.value = true
  55. // })
  56. // })
  57. })
  58. const start = ref(false)
  59. function disagree() {
  60. start.value = false
  61. }
  62. function consent() {
  63. start.value = false
  64. }
  65. let config = ({
  66. btnBack: true,
  67. submitName: '下一步',
  68. titleWidth: 160
  69. })
  70. let formData = ref([{
  71. 'title': '用户证件照',
  72. 'type': 8,
  73. 'vertical': 2,
  74. 'underline': false,
  75. 'required': false,
  76. 'placeholderImg': fileURL + '/image/applyCard/renxiang.png,' + fileURL + '/image/applyCard/guohui.png',
  77. 'inputType': 1,
  78. 'value': 'userIdPoImageUrl,userIdNeImageUrl',
  79. 'hint': '注意事项:且上传有效证件照且图片大小不超过2M,证件正面照,证件反面照',
  80. }, {
  81. 'title': '姓名',
  82. 'type': 2,
  83. 'inputType': 'number',
  84. 'vertical': 1,
  85. 'userName': '',
  86. 'value': 'userName',
  87. 'required': false,
  88. 'hint': '请输入姓名',
  89. 'maxlength': 3
  90. }, {
  91. 'title': '证件类型',
  92. 'type': 4,
  93. 'value': 'userIdType',
  94. 'required': false,
  95. 'hint': '请选择证件类型',
  96. 'name': 'key',
  97. 'itemKey': 'value',
  98. 'itemData': IdCard
  99. }, {
  100. 'title': '用户类型',
  101. 'type': 4,
  102. 'value': 'userType',
  103. 'required': false,
  104. 'name': 'key',
  105. 'itemKey': 'value',
  106. 'itemData': [{
  107. 'value': '个人',
  108. 'key': 1
  109. }, {
  110. 'value': '单位',
  111. 'key': 2
  112. }]
  113. }, {
  114. 'title': '证件号码',
  115. 'type': 2,
  116. 'value': 'userIdNum',
  117. 'required': false,
  118. 'hint': '请输入证件号码'
  119. }, {
  120. 'title': '住址',
  121. 'type': 5,
  122. 'value': 'address',
  123. 'required': false,
  124. 'hint': '请输入住址'
  125. }, {
  126. 'title': '发证机关',
  127. 'type': 2,
  128. 'value': 'office',
  129. 'required': false,
  130. 'hint': '请输入发证机关',
  131. 'maxlength': 3
  132. }, {
  133. 'title': '证件开始有效日期',
  134. 'type': 4,
  135. 'mode': 'date',
  136. 'value': 'validStartDate',
  137. 'hint': '请选择起始日期',
  138. 'maxlength': 3
  139. }, {
  140. 'title': '证件截止有效日期',
  141. 'type': 4,
  142. 'mode': 'date',
  143. 'value': 'validEndDate',
  144. 'hint': '请选择截止日期',
  145. 'maxlength': 3
  146. }, {
  147. 'title': '本人办理',
  148. 'type': 7,
  149. 'underline': false,
  150. 'value': 'demo',
  151. 'itemData': [{
  152. 'checked': true, //默认选中
  153. 'value': '1',
  154. 'name': '是'
  155. }, {
  156. 'checked': false,
  157. 'value': '2',
  158. 'name': '否'
  159. }],
  160. }, {
  161. 'title': '经办人证件照',
  162. 'type': 8,
  163. 'underline': false,
  164. 'vertical': 2,
  165. 'inputType': 1,
  166. 'placeholderImg': fileURL + '/image/applyCard/renxiang.png,' + fileURL + '/image/applyCard/guohui.png',
  167. 'value': 'agentIdPoImageUrl,agentIdNeImageUrl',
  168. 'hint1': '经办人证件正面照',
  169. 'hint2': '经办人证件反面照',
  170. 'hint': '注意事项:且上传有效证件照且图片大小不超过2M',
  171. 'show': true
  172. }, {
  173. 'title': '经办人姓名',
  174. 'type': 2,
  175. 'value': 'agentName',
  176. 'hint': '请输入经办人姓名',
  177. 'show': true
  178. }, {
  179. 'title': '经办人证件号码',
  180. 'type': 2,
  181. 'value': 'agentIdNum',
  182. 'hint': '请输入证件号码',
  183. 'show': true
  184. }, {
  185. 'title': '经办人邮箱',
  186. 'underline': true,
  187. 'type': 2,
  188. 'value': 'name',
  189. 'hint': '请输入经办人邮箱',
  190. 'show': true
  191. }])
  192. //单项选择器
  193. function radioChange(e: any, item: TypeData) {
  194. if (item.title === '本人办理') {
  195. if (e.detail.value === '1') {
  196. formData[Index('经办人证件照', formData)].show = true
  197. formData[Index('经办人姓名', formData)].show = true
  198. formData[Index('经办人证件号码', formData)].show = true
  199. formData[Index('经办人邮箱', formData)].show = true
  200. } else {
  201. formData[Index('经办人证件照', formData)].show = false
  202. formData[Index('经办人姓名', formData)].show = false
  203. formData[Index('经办人证件号码', formData)].show = false
  204. formData[Index('经办人邮箱', formData)].show = false
  205. }
  206. }
  207. }
  208. //图像文件上传
  209. function uploadImg(data: any, item: TypeData, index: Number) {
  210. console.log('图片文件', data, item, index, '结果长度', Index('姓名', formData))
  211. //调整文件格式
  212. if (item.title === '用户证件照') {
  213. if (data && data.begindate || data.enddate) {
  214. let startData = data.begindate
  215. let endData = data.enddate
  216. data.begindate = startData.substring(0, 4) + "-" + startData.substring(4, 6) + "-" + startData.substring(6,
  217. 8)
  218. data.enddate = endData.substring(0, 4) + "-" + endData.substring(4, 6) + "-" + endData.substring(6, 8)
  219. }
  220. let arr = [
  221. [Index('姓名', formData), 'name'],
  222. [Index('住址', formData), 'address'],
  223. [Index('证件号码', formData), 'idno'],
  224. [Index('证件开始有效日期', formData), 'begindate'],
  225. [Index('证件截止有效日期', formData), 'enddate']
  226. ]
  227. for (var i = 0; i < arr.length; i++) {
  228. if (data[arr[i][1]]) {
  229. formData[arr[i][0]][formData[arr[i][0]].value] = data[arr[i][1]]
  230. }
  231. }
  232. } else if (item.title === '经办人证件照') {
  233. let arr = [
  234. [Index('经办人姓名', formData), 'name'],
  235. [Index('经办人证件号码', formData), 'idno'],
  236. ]
  237. for (var i = 0; i < arr.length; i++) {
  238. if (data[arr[i][1]]) {
  239. formData[arr[i][0]][formData[arr[i][0]].value] = data[arr[i][1]]
  240. }
  241. }
  242. }
  243. }
  244. function submit(item: any) {
  245. // console.log('输出内容', item)
  246. uni.navigateTo({
  247. url: '/pages/drivingLicense/drivingLicense',
  248. animationType: 'pop-in',
  249. animationDuration: 500
  250. })
  251. //Sing
  252. // wx.navigateToMiniProgram({
  253. // appId: 'wx008c60533388527a',
  254. // path: '/pages/login/appAuth?orderId=da01db164dc94aa482a0515863074e96',
  255. // query: {
  256. // 'orderId': 'da01db164dc94aa482a0515863074e96'
  257. // },
  258. // success(res) {
  259. // // 跳转成功后的回调函数
  260. // console.log('成功', res)
  261. // },
  262. // fail(err) {
  263. // // 跳转失败后的回调函数
  264. // console.log('失败', err)
  265. // }
  266. // });
  267. }
  268. </script>
  269. <style lang='scss' scoped>
  270. </style>