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

basicInformation.vue 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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
  6. :formData="formData"
  7. :config="config"
  8. @submit="submit"
  9. :vanType="vanTypes"
  10. ></form-builder-vue>
  11. </div>
  12. </div>
  13. </template>
  14. <script setup lang="ts">
  15. import { unifyTemplate } from '@/hooks/unifyTemplate';
  16. import { TypeData, Index } from '@/components/form-builder/tools';
  17. import { nextTick, ref } from 'vue';
  18. import { onLoad } from '@dcloudio/uni-app';
  19. import { request } from '@/utils/network/request';
  20. import fromDatas from './fromData.js';
  21. let config = ref<any>({
  22. submitName: '下一步',
  23. titleWidth: 160
  24. });
  25. let formData = ref(fromDatas);
  26. const {
  27. formBuilderVue, //组件
  28. CustomHeader, //头部组件
  29. initData, //初始化数据
  30. isShow, //是否展示formBuilderVue组件
  31. qdOrderVal, //qdOrder中数据 ref
  32. cusQdOrderVal
  33. } = unifyTemplate(); //初始化数据
  34. let vanTypes = ref('all');
  35. //获取页面配置
  36. onLoad((opin) => {
  37. initData(opin, -1).then((data) => {
  38. formData.value = JSON.parse(data.config.tableConfig);
  39. if (!isSkip(qdOrderVal.value, formData.value)) {
  40. if (qdOrderVal.value.vanType == 1) {
  41. // 客车
  42. vanTypes.value = 'passengerCar';
  43. } else {
  44. // 货车
  45. vanTypes.value = 'truck';
  46. }
  47. isShow.value = true;
  48. delete data.config.tableConfig;
  49. config.value = Object.assign(data.config, config.value);
  50. nextTick(() => {
  51. handleHide();
  52. });
  53. } else {
  54. uni.navigateTo({
  55. url: '/' + data.config.jumpPage,
  56. animationType: 'pop-in',
  57. animationDuration: 500
  58. });
  59. }
  60. });
  61. });
  62. // let options = {
  63. // userType: '用户类型',
  64. // vehicleColor: '车牌颜色',
  65. // vehiclePlate: '车牌号'
  66. // }
  67. let hideArr = ref<any>([]);
  68. function isSkip(qdOrder, formData) {
  69. let formLen = formData.length;
  70. for (let item of formData) {
  71. if (qdOrder[item.value] !== undefined) {
  72. console.log(item);
  73. hideArr.value.push(item.title);
  74. formLen--;
  75. }
  76. }
  77. return !formLen;
  78. }
  79. //有哪些字段隐藏哪些字段
  80. function handleHide() {
  81. hideArr.value.forEach((item) => {
  82. console.log(item);
  83. formData.value[Index(item, formData.value)].show = true;
  84. });
  85. }
  86. /**
  87. * 请求函数,e为处理后的value
  88. * */
  89. function submit(e: any) {
  90. // qdorder数据
  91. cusQdOrderVal.value = {
  92. ...cusQdOrderVal.value,
  93. ...e
  94. };
  95. let data = {
  96. vehiclePlate: e.vehiclePlate,
  97. vehiclePlateColor: e.vehicleColor
  98. };
  99. console.log('车牌校验请求接口', data,cusQdOrderVal.value);
  100. request('147', {
  101. data
  102. }).then((res) => {
  103. if (res.statusCode === 0) {
  104. console.log(res);
  105. let { jumpPage } = config.value;
  106. uni.navigateTo({
  107. url: '/' + jumpPage,
  108. animationType: 'pop-in',
  109. animationDuration: 500
  110. });
  111. }
  112. });
  113. // let key = cusQdOrderVal.value.vehiclePlate.search('贵Z')
  114. // if (key === -1) {
  115. // uni.showModal({
  116. // title: '提示',
  117. // content: '当前功能正在内测中,敬请期待!',
  118. // success: function(res) {
  119. // if (res.confirm) {} else if (res.cancel) {}
  120. // }
  121. // });
  122. // return
  123. // }
  124. }
  125. </script>
  126. <style lang="scss" scoped></style>