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 10KB

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