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.

car-details.vue 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <template>
  2. <view class="bg">
  3. <view class="title_wrap"><text class="title">车辆信息</text></view>
  4. <u-form label-width="230" :model="state.msg" ref="uForm" :label-style='labelStyle'>
  5. <u-form-item label="卡号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  6. <u-input v-model="state.msg['cardId']" input-align='right'/>
  7. </u-form-item>
  8. <u-form-item label="签号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  9. <u-input v-model="state.msg['obuId']" input-align='right'/>
  10. </u-form-item>
  11. <u-form-item label="车辆所有人信息" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  12. <u-input v-model="state.msg['info']['ownerName']" input-align='right'/>
  13. </u-form-item>
  14. <u-form-item label="车辆所有人证件类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' v-if="state.msg.info.ownerIdType">
  15. <text>{{getCodeName('CERTIFICATE_TYPE', state.msg.info.ownerIdType)}}</text>
  16. </u-form-item>
  17. <!-- <u-form-item label="车辆所有人证件号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  18. borderBottom>
  19. <u-input v-model="state.msg.info.ownerIdNum" input-align='right'/>
  20. </u-form-item> -->
  21. <!-- <u-form-item label="车辆所有号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  22. borderBottom>
  23. <u-input v-model="state.msg.info.ownerName" input-align='right'/>
  24. </u-form-item> -->
  25. <u-form-item label="车辆号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  26. borderBottom>
  27. <u-input v-model="state.msg.info.vehiclePlate" inputAlign="right" />
  28. </u-form-item>
  29. <u-form-item label="行驶证车辆类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  30. borderBottom>
  31. <u-input v-model="state.msg.info.vehicleType" inputAlign="right"/>
  32. </u-form-item>
  33. <u-form-item label="车辆识别代号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  34. <u-input inputAlign="right" placeholder="请输入车辆识别代号" v-model="state.msg.info.vin"/>
  35. </u-form-item>
  36. <u-form-item label="发动机号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  37. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.msg.info.engineNum"/>
  38. </u-form-item>
  39. <u-form-item label="车辆收费车型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  40. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.msg.info.engineNum"/>
  41. </u-form-item>
  42. <u-form-item label="核定载人数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  43. <u-input inputAlign="right" placeholder="请输入核定载人数" v-model="state.msg.info.approvedCount" />
  44. </u-form-item>
  45. <u-form-item label="总质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  46. <u-input inputAlign="right" placeholder="请输入总质量" v-model="state.msg.info.totalMass"/>
  47. </u-form-item>
  48. <u-form-item label="整备质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  49. <u-input inputAlign="right" placeholder="请输入整备质量" v-model="state.msg.info.maintenanceMass"/>
  50. </u-form-item>
  51. <u-form-item label="核定载质量" v-if="state.msg.info.permittedWeight" :left-icon='`${$imgUrl}issuance/point-form.png`'
  52. :left-icon-style='leftIcon'>
  53. <u-input inputAlign="right" placeholder="核定载质量" v-model="state.msg.info.permittedWeight"/>
  54. </u-form-item>
  55. <u-form-item label="外廓尺寸" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  56. <u-input inputAlign="right" placeholder="外廓尺寸" v-model="state.msg.info.vehicleDimensions"/>
  57. </u-form-item>
  58. <u-form-item label="准牵引总质量" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  59. <u-input inputAlign="right" placeholder="准牵引总质量" v-model="state.msg.info.permittedTowWeight"/>
  60. </u-form-item>
  61. <u-form-item label="车轮数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  62. <u-input inputAlign="right" placeholder="请输入车轮数" v-model="state.msg.info.wheelCount"/>
  63. </u-form-item>
  64. <u-form-item label="车轴数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  65. <u-input inputAlign="right" placeholder="请输入车轴数" v-model="state.msg.info.axleCount"/>
  66. </u-form-item>
  67. <u-form-item label="车辆使用性质" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  68. <u-input inputAlign="right" placeholder="请输入车辆使用性质" v-model="state.msg.info.useCharacter" />
  69. </u-form-item>
  70. </u-form>
  71. <view class="picture-wrapper" @click="see(strReplace(state.msg.info.vehPosImgUrl))">
  72. <view class="bg1">
  73. <view class="">
  74. <view class="name"> 行驶证主页 </view>
  75. <view class="value"> 上传行驶证的主页 </view>
  76. <view class="tip">
  77. <view class="tip-value"> 拍摄规范 </view>
  78. </view>
  79. </view>
  80. <image v-if="!state.msg.info.vehPosImgUrl" class="icon" :src="`${$imgUrl}issuance/xz.png`"
  81. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  82. </image>
  83. <image v-else class="icon" :src="strReplace(state.msg.info.vehPosImgUrl)"
  84. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  85. </view>
  86. </view>
  87. <view class="picture-wrapper" @click="see(strReplace(state.msg.info.vehNegImgUrl))">
  88. <view class="bg1">
  89. <view class="">
  90. <view class="name"> 行驶证副页 </view>
  91. <view class="value"> 上传行驶证的副页 </view>
  92. <view class="tip">
  93. <view class="tip-value"> 拍摄规范 </view>
  94. </view>
  95. </view>
  96. <image v-if="!state.msg.info.vehNegImgUrl" class="icon" :src="`${$imgUrl}issuance/xf.png`"
  97. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  98. </image>
  99. <image v-else class="icon" :src="strReplace(state.msg.info.vehNegImgUrl)"
  100. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  101. </view>
  102. </view>
  103. <view class="picture-wrapper" @click="see(state.msg.info.vehBodyUrl)">
  104. <view class="bg1">
  105. <view class="">
  106. <view class="name"> 车头照 </view>
  107. <view class="value"> 上传汽车的45度车头照片 </view>
  108. <view class="tip">
  109. <view class="tip-value"> 拍摄规范 </view>
  110. </view>
  111. </view>
  112. <image v-if="!state.msg.info.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/chetou.png`"
  113. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  114. </image>
  115. <image v-else class="icon" :src="strReplace(state.msg.info.vehBodyUrl)"
  116. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  117. </view>
  118. </view>
  119. <button type="default" class="ui-btn" @click="carChange(state.msg.info.vehicleId)" style="width: 638rpx;margin-top: 40rpx;">车辆信息变更</button>
  120. </view>
  121. </template>
  122. <script setup lang="ts">
  123. import { getCodeName } from "@/datas/queryKey.js";
  124. import { reactive } from "vue";
  125. import { onLoad } from "@dcloudio/uni-app";
  126. import {navTo,strReplace} from "@/utils/utils";
  127. import { source } from "@/utils/network/difference";
  128. import {vehicleInformationChange} from "@/utils/network/api.js";
  129. import {requestNew} from "@/utils/network/request.js";
  130. const labelStyle = {
  131. color: "#004576",
  132. fontSize: "28rpx",
  133. }
  134. const leftIcon = {
  135. height: '100%',
  136. width: '8rpx',
  137. display: 'flex',
  138. 'align-items': 'center',
  139. 'margin-right': '4rpx',
  140. }
  141. const state = reactive({
  142. form: {
  143. customerName: "",
  144. customerTel: "",
  145. vehiclePlate: "",
  146. vehiclePlateColor: "",
  147. vehiclePlateColorStr:"",//车牌颜色中文
  148. questionType:"",
  149. questionTypeStr:"",
  150. etcUser:"",
  151. etcUserStr:"",
  152. eventOccurrenceDate:"",//2016-09-01 00:00:00
  153. supportingMaterialsUrlShow:[],
  154. insertTime:"",
  155. vehicleImagesUrl1:"",
  156. vehicleImagesUrl2:"",
  157. name:"",
  158. part:"",
  159. customerIdNum:"",
  160. customerIdNum1:"",
  161. userImagesUrl1:"",
  162. userImagesUrl2:"",
  163. vin:"",
  164. engineNum:"",
  165. vehBodyUrl:"",
  166. },
  167. vehicleId:"",
  168. msg:{},//所有数据
  169. });
  170. onLoad((options) => {
  171. state.vehicleId=options.vehicleId
  172. getCarDetails()
  173. })
  174. const getCarDetails = () => {
  175. const options = {
  176. type: 2,
  177. data: {
  178. vehicleId:state.vehicleId
  179. },
  180. method: "POST",
  181. showLoading: true,
  182. };
  183. //调用方式
  184. requestNew(vehicleInformationChange, options)
  185. .then((res) => {
  186. console.log('车辆信息', res)
  187. state.msg=res
  188. })
  189. .catch((err) => {
  190. console.log(err);
  191. });
  192. }
  193. const carChange = (vehicleId) => {
  194. navTo(`/pages/bluetooth/bluetooth?routeType=10&vehicleId=${vehicleId}`)
  195. }
  196. const see=(item)=>{
  197. uni.previewImage({
  198. urls:[item],
  199. longPressActions: {
  200. itemList: ['发送给朋友', '保存图片', '收藏'],
  201. success: function(data) {
  202. console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
  203. },
  204. fail: function(err) {
  205. console.log(err.errMsg);
  206. }
  207. }
  208. });
  209. }
  210. </script>
  211. <style scoped lang="scss">
  212. .bg {
  213. background-color: white;
  214. width: 90%;
  215. margin: 0 auto;
  216. margin-top: 20rpx;
  217. border-radius: 12px;
  218. border: 1px solid #FFFFFF;
  219. padding: 30rpx 20rpx;
  220. overflow: hidden;
  221. box-sizing: border-box;
  222. .title_wrap {
  223. display: flex;
  224. font-weight: 400;
  225. justify-content: space-between;
  226. .title {
  227. font-size: 30rpx;
  228. color: #01243A;
  229. }
  230. }
  231. }
  232. .picture-wrapper {
  233. margin-top: 30rpx;
  234. .bg1 {
  235. background: #F5F9FB;
  236. border-radius: 10rpx;
  237. padding: 40rpx 30rpx;
  238. display: flex;
  239. width: 100%;
  240. justify-content: space-between;
  241. box-sizing: border-box;
  242. .name {
  243. padding-top: 30rpx;
  244. font-size: 32rpx;
  245. font-family: SourceHanSansSC, SourceHanSansSC;
  246. font-weight: 500;
  247. color: #111;
  248. line-height: 34rpx;
  249. }
  250. .value {
  251. margin-top: 20rpx;
  252. font-size: 22rpx;
  253. font-family: SourceHanSansSC, SourceHanSansSC;
  254. font-weight: 400;
  255. color: #999999;
  256. line-height: 24rpx;
  257. }
  258. .tip {
  259. margin-top: 20rpx;
  260. text-align: center;
  261. width: 100rpx;
  262. height: 30rpx;
  263. // background: rgba(204, 179, 117);
  264. border-radius: 6rpx;
  265. border: 1rpx solid #CCB375;
  266. .tip-value {
  267. font-size: 20rpx;
  268. font-family: Microsoft YaHei;
  269. font-weight: 400;
  270. color: #CCB375;
  271. line-height: 30rpx;
  272. opacity: 1;
  273. }
  274. }
  275. }
  276. .icon {
  277. width: 304rpx;
  278. height: 190rpx;
  279. background-image: var(--bgimg);
  280. background-size: 100% 100%;
  281. background-repeat: no-repeat;
  282. }
  283. }
  284. </style>