選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

car-release.vue 36KB

1年前
11ヶ月前
1年前
1年前
1年前
1年前
10ヶ月前
1年前
1年前
1年前
2年前
2年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
10ヶ月前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
11ヶ月前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
1年前
2年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
1年前
1年前
1年前
2年前
2年前
2年前
10ヶ月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
10ヶ月前
1年前
1年前
11ヶ月前
1年前
1年前
1年前
11ヶ月前
1年前
2年前
2年前
1年前
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259
  1. <template>
  2. <navBar title="行驶证信息上传" :scrollTop="scrollTop"></navBar>
  3. <navBgCar></navBgCar>
  4. <view class="content">
  5. <view class="item-tips">
  6. <view class="title"> 上传后请核对识别信息 </view>
  7. <view class="tip"> 如有错误请及时手动修改 </view>
  8. </view>
  9. <view class="picture-wrapper" @click="takePhotoMode('3')">
  10. <view class="bg">
  11. <view class="">
  12. <view class="name"> 行驶证主页 </view>
  13. <view class="value"> 上传行驶证的主页 </view>
  14. <view class="tip">
  15. <view class="tip-value"> 拍摄规范 </view>
  16. </view>
  17. </view>
  18. <image v-if="!state.form.vehPosImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-zhu.png`">
  19. </image>
  20. <image v-else class="icon" :src="strReplace(state.form.vehPosImgUrl)"></image>
  21. </view>
  22. </view>
  23. <view class="picture-wrapper" @click="takePhotoMode('4')">
  24. <view class="bg">
  25. <view class="">
  26. <view class="name"> 行驶证副页 </view>
  27. <view class="value"> 上传行驶证的副页 </view>
  28. <view class="tip">
  29. <view class="tip-value"> 拍摄规范 </view>
  30. </view>
  31. </view>
  32. <image v-if="!state.form.vehNegImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-fu.png`">
  33. </image>
  34. <image v-else class="icon" :src="strReplace(state.form.vehNegImgUrl)"></image>
  35. </view>
  36. </view>
  37. <view class="picture-wrapper" @click="cardFileImageUpdate(1)">
  38. <view class="bg">
  39. <view class="">
  40. <view class="name"> 车头照 </view>
  41. <view class="value"> 上传汽车的45度车头照片 </view>
  42. <view class="tip">
  43. <view class="tip-value"> 拍摄规范 </view>
  44. </view>
  45. </view>
  46. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}applyCard/chetou.png`">
  47. </image>
  48. <image v-else class="icon" :src="strReplace(state.form.vehBodyUrl)"></image>
  49. </view>
  50. </view>
  51. <view class="uni-list tractor">
  52. <radio-group @change="radioChange" v-if="state.form.vanType=='2'">
  53. <text class="title">是否是牵引车</text>
  54. <label style="margin-right: 60rpx;" class="uni-list-cell uni-list-cell-pd "
  55. v-for="(item, index) in state.items" :key="item.value">
  56. <radio :value="item.value" :checked="index === state.current" />{{item.name}}
  57. </label>
  58. </radio-group>
  59. </view>
  60. <!-- 货车 牵引车 需要传道路运输许可证-->
  61. <view class="picture-wrapper" v-if="state.form.vanType=='2' && state.form.tractorSign==1"
  62. @click="cardFileImageUpdate(2)">
  63. <view class="bg">
  64. <view class="">
  65. <view class="name"> 道路运输许可证 </view>
  66. <view class="value"> 上传道路运输许可证 </view>
  67. <view class="tip">
  68. <view class="tip-value"> 拍摄规范 </view>
  69. </view>
  70. </view>
  71. <image v-if="!state.form.roadTransportPermitPicUrl" class="icon"
  72. :src="`${$imgUrl}applyCard/chetou.png`">
  73. </image>
  74. <image v-else class="icon" :src="strReplace(state.form.roadTransportPermitPicUrl)"></image>
  75. </view>
  76. </view>
  77. <view class="shibie-wrapper">
  78. <view class="title"> 识别内容如下 </view>
  79. <view class="">
  80. <u-form label-width="200" :model="state.form" ref="uForm">
  81. <u-form-item label="车牌号">
  82. <car-number-input @numberInputResult="carNumber"
  83. :defaultStr="state.form.vehiclePlate"></car-number-input>
  84. </u-form-item>
  85. <u-form-item label="所有人">
  86. <u-input inputAlign="right" placeholder="请输入所有人" v-model="state.form.ownerName"
  87. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  88. </u-form-item>
  89. <u-form-item label="车辆类型">
  90. <u-input inputAlign="right" placeholder="请输入车辆类型" v-model="state.form.vehicleType"
  91. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  92. </u-form-item>
  93. <u-form-item label="品牌型号">
  94. <u-input inputAlign="right" placeholder="请输入品牌型号" v-model="state.form.vehicleModel"
  95. :disabled="state.isEnableChangeOCRCarInfo" maxlength="30" />
  96. </u-form-item>
  97. <u-form-item label="使用性质">
  98. <u-input inputAlign="right" placeholder="请输入使用性质" v-model="state.form.character"
  99. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  100. </u-form-item>
  101. <u-form-item label="车辆识别代号">
  102. <u-input inputAlign="right" placeholder="请输入车辆识别代号" v-model="state.form.vin"
  103. :disabled="state.isEnableChangeOCRCarInfo" maxlength="50" />
  104. </u-form-item>
  105. <u-form-item label="发动机号码">
  106. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.form.engineNum"
  107. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  108. </u-form-item>
  109. <u-form-item label="注册日期">
  110. <picker mode="date" :value="state.form.registerDate" @change="bindDateChange1"
  111. :disabled="state.isEnableChangeOCRCarInfo">
  112. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  113. {{state.form.registerDate}}
  114. </view>
  115. </picker>
  116. </u-form-item>
  117. <u-form-item label="发证日期">
  118. <picker mode="date" :value="state.form.issueDate" @change="bindDateChange2"
  119. :disabled="state.isEnableChangeOCRCarInfo">
  120. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  121. {{state.form.issueDate}}
  122. </view>
  123. </picker>
  124. </u-form-item>
  125. <u-form-item label="核定载人数">
  126. <u-input inputAlign="right" placeholder="请输入核定载人数" v-model="state.form.approvedCountShow"
  127. :disabled="state.isEnableChangeOCRCarInfo" maxlength="3" />
  128. </u-form-item>
  129. <u-form-item label="整备质量">
  130. <u-input inputAlign="right" placeholder="请输入整备质量" v-model="state.form.maintenaceMassShow"
  131. :disabled="state.isEnableChangeOCRCarInfo" maxlength="7" />
  132. </u-form-item>
  133. <view class="form-item">
  134. <label>外廊尺寸</label>
  135. <view class="input-box">
  136. <text class="sub-label">长</text>
  137. <input v-model="state.outlineL" @input="outlineInput"
  138. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  139. <text class="sub-text">X</text>
  140. <text class="sub-label">宽</text>
  141. <input v-model="state.outlineW" @input="outlineInput"
  142. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  143. <text class="sub-text">X</text>
  144. <text class="sub-label">高</text>
  145. <input v-model="state.outlineH" @input="outlineInput"
  146. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  147. <text class="sub-text">mm</text>
  148. </view>
  149. </view>
  150. <u-form-item label="总质量">
  151. <u-input inputAlign="right" placeholder="请输入总质量" v-model="state.form.totalMassShow"
  152. :disabled="state.isEnableChangeOCRCarInfo" />
  153. </u-form-item>
  154. <u-form-item label="核定载质量" v-if="state.form.permittedWeight">
  155. <u-input inputAlign="right" placeholder="核定载质量" v-model="state.form.permittedWeight"
  156. :disabled="state.isEnableChangeOCRCarInfo" />
  157. </u-form-item>
  158. <u-form-item label="车轴数">
  159. <u-input inputAlign="right" placeholder="请输入车轴数" v-model="state.form.axleCount" type="number"
  160. maxlength="2" />
  161. </u-form-item>
  162. <view class="form-item">
  163. <label>车辆用户类型</label>
  164. <view class="select" @click="state.actionSheetShow = true">{{state.form.useUserTypeName}}</view>
  165. <image :src="`${$imgUrl}common/arror-down.png`" class="icon"
  166. @click="state.actionSheetShow = true"></image>
  167. </view>
  168. </u-form>
  169. </view>
  170. </view>
  171. <view class="green-tip">
  172. 如识别信息有误,请手动修改,确认无误后,点击下一步!
  173. </view>
  174. <view class="action">
  175. <button type="default" class="button" @click="savaHandle()">
  176. 下一步
  177. </button>
  178. </view>
  179. <!-- 车辆类型弹窗 -->
  180. <u-popup mode="bottom" v-model="state.actionSheetShow">
  181. <view class="window">
  182. <view class="window-item" v-for="item in state.actionSheetList" :key="item.value"
  183. @click="userType(item)">{{item.text}}</view>
  184. </view>
  185. </u-popup>
  186. <u-popup mode="bottom" v-model="state.show">
  187. <view v-if="state.data.transferLogs && state.data.transferLogs.length" class="">
  188. <view class="bettwen-center">
  189. <view style="padding: 20rpx" class="title"> 选择卡签 </view>
  190. <view class="goto" @click="pass"> 直接跳过,不使用此套卡签 </view>
  191. </view>
  192. <view @click="guohuAction(item)" class="card" v-for="(item, index) in state.data.transferLogs"
  193. :key="index" style="margin-top: 30rpx; margin-bottom: 30rpx">
  194. <view v-if="item.status === 'WAITING'" class="card-left">
  195. <image :src="`${$imgUrl}card2.png`" mode=""></image>
  196. <view class="card-center">
  197. <view class="flex">
  198. <view class=""> 卡号: </view>
  199. <view class="card-center-head">
  200. {{ item.cardId }}
  201. </view>
  202. </view>
  203. <view style="margin-top: 10rpx" class="flex">
  204. <view class=""> OBU编号: </view>
  205. <view class="card-center-head">
  206. {{ item.obuId }}
  207. </view>
  208. </view>
  209. </view>
  210. </view>
  211. </view>
  212. </view>
  213. </u-popup>
  214. </view>
  215. <view class="choice-takePhoto-wrap" v-if="state.isTakePhotoModeShow" @click="cancle">
  216. <view class="choice-takePhoto">
  217. <view @click.stop="takePhoto(state.choiceIndex)" style="border-radius: 20rpx 20rpx 0 0;">拍照</view>
  218. <view @click.stop="xiangce(state.choiceIndex)">从手机相册选择</view>
  219. <view @click.stop="cancle">取消</view>
  220. </view>
  221. </view>
  222. <viewfinder v-if="state.phoneType" :phoneType="state.phoneType" :images="state.images"
  223. :showStartPhoto="state.showImg" @confirmReturn="confirmReturn" @camera="camera"></viewfinder>
  224. </template>
  225. <script setup lang="ts">
  226. import { reactive, ref } from "vue";
  227. import viewfinder from "../../components/viewfinder.vue"
  228. import navBgCar from "./components/nav-bg-car4";
  229. import navBar from "@/components/nav-bar/nav-bar2.vue";
  230. import carNumberInput from "@/components/car-number-input/car-number-input.vue";
  231. import {
  232. etcCarCardInfoSubmit,
  233. etcCarOcrCard,
  234. queryGuoHuJianCe,
  235. queryGuoHuCaoZuo,
  236. ocrAllQuery,
  237. carMessageApi,
  238. vehicleUpload
  239. } from "@/utils/network/api.js";
  240. import { request, requestNew } from "@/utils/network/request.js";
  241. import { stringToJson } from "@/utils/network/encryption";
  242. import { onLoad, onPageScroll } from "@dcloudio/uni-app";
  243. import { getItem, StorageKeys } from "@/utils/storage";
  244. import { msg, strReplace, hasLogin, uploadFile, compressImage,chooseImageCompress } from "@/utils/utils";
  245. import {
  246. getCodeName
  247. } from "@/datas/queryKey.js";
  248. const scrollTop = ref(0);
  249. //监听页面滚动
  250. onPageScroll((e) => {
  251. scrollTop.value = e.scrollTop;
  252. });
  253. //车牌号输入
  254. const carNumber = (val : any) => {
  255. state.form.vehiclePlate = val.trim();
  256. };
  257. const camera = () => {
  258. state.phoneType = 0
  259. }
  260. //提交车辆信息
  261. const savaHandle = () => {
  262. if (!state.form.vehPosImgUrl) {
  263. msg("请上传行驶证的主页");
  264. return;
  265. }
  266. if (!state.form.vehNegImgUrl) {
  267. msg("请上传行驶证的副页");
  268. return;
  269. }
  270. if (!state.form.vehBodyUrl) {
  271. msg("请上传车头照");
  272. return;
  273. }
  274. if (!state.form.ownerName) {
  275. msg("请输入所有人");
  276. return;
  277. }
  278. if (!state.form.vehicleType) {
  279. msg("请输入车辆类型");
  280. return;
  281. }
  282. if (!state.form.character) {
  283. msg("请输入使用性质");
  284. return;
  285. }
  286. if (!state.form.vin) {
  287. msg("请输入车辆识别代号");
  288. return;
  289. }
  290. if (!state.form.engineNum) {
  291. msg("请输入发动机号码");
  292. return;
  293. }
  294. if (!state.form.approvedCountShow) {
  295. msg("请输入核定载人数");
  296. return;
  297. }
  298. if (!state.outlineL || state.outlineL == '0') {
  299. msg("请输入外廊尺寸长");
  300. return;
  301. }
  302. if (!state.outlineW || state.outlineW == '0') {
  303. msg("请输入外廊尺寸宽");
  304. return;
  305. }
  306. if (!state.outlineH || state.outlineH == '0') {
  307. msg("请输入外廊尺寸高");
  308. return;
  309. }
  310. console.log("state.form.tractorSign",state.form.tractorSign,state.form.roadTransportPermitPicUrl)
  311. if (state.form.tractorSign == 1 && !state.form.roadTransportPermitPicUrl) {
  312. msg("请上传道路运输许可证");
  313. return;
  314. }
  315. if (state.form.vanType == 1) {
  316. state.form.axleCount = 2;
  317. } else {
  318. if (!state.form.axleCount) {
  319. msg("请输入车轴数");
  320. return;
  321. }
  322. }
  323. state.form.vehicleId =
  324. state.form.vehiclePlate + "_" + state.vehiclePlateColor;
  325. state.form.opId = getItem(StorageKeys.OpenId);
  326. state.form.approvedCount = parseFloat(state.form.approvedCount);
  327. state.form.maintenaceMass = parseFloat(state.form.maintenaceMass);
  328. // state.form.totalMass = parseFloat(state.form.totalMass);
  329. state.form.permittedWeight = parseFloat(state.form.permittedWeight);
  330. state.form.permittedTowWeight = parseFloat(state.form.permittedTowWeight);
  331. console.log("state.form.approvedCountShow", state.form.approvedCountShow, state.form.approvedCountShow.toString().indexOf('人'))
  332. // return;
  333. if (state.form.approvedCountShow.toString().indexOf('人') > 0) {
  334. state.form.approvedCount = state.form.approvedCountShow.replace("人", "");
  335. } else {
  336. state.form.approvedCount = state.form.approvedCountShow;
  337. }
  338. if (state.form.maintenaceMassShow.toString().indexOf('kg') > 0) {
  339. state.form.maintenaceMass = state.form.maintenaceMassShow.replace("kg", "");
  340. } else {
  341. state.form.maintenaceMass = state.form.maintenaceMassShow;
  342. }
  343. console.log("state.form.totalMassShow", state.form.totalMassShow)
  344. if (state.form.totalMassShow.toString().indexOf('kg') > 0) {
  345. state.form.totalMass = state.form.totalMassShow.replace("kg", "");
  346. } else {
  347. state.form.totalMass = state.form.totalMassShow;
  348. }
  349. const options = {
  350. type: 2,
  351. data: state.form,
  352. method: "POST",
  353. showLoading: true,
  354. };
  355. requestNew(vehicleUpload, options)
  356. .then((res) => {
  357. const data = stringToJson(res.bizContent);
  358. queryGuoHuJianCeAction().then((value) => {
  359. console.log("过户检测", value)
  360. if (value.transferLogs && value.transferLogs.length > 0) {
  361. let arr = value.transferLogs;
  362. state.data.transferLogs = []
  363. for (var k = 0; k < arr.length; k++) {
  364. if (arr[k]['status'] == "WAITING") {
  365. state.data.transferLogs.push(arr[k])
  366. }
  367. }
  368. console.log("state.data.transferLogs", state.data.transferLogs)
  369. console.log("state.data.transferLogs", state.data.transferLogs.length)
  370. setTimeout(() => {
  371. if (state.data.transferLogs.length > 0) {
  372. state.show = true;
  373. } else {
  374. uni.redirectTo({
  375. url: `/subpackage/orders/product-detail?orderId=${state.form.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  376. });
  377. }
  378. }, 1000)
  379. } else {
  380. if (!hasLogin()) {
  381. uni.redirectTo({
  382. url: `/subpackage/orders/addAddress?orderId=${state.form.orderId
  383. }&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}`,
  384. });
  385. } else {
  386. uni.redirectTo({
  387. url: `/subpackage/orders/product-detail?orderId=${state.form.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  388. });
  389. }
  390. }
  391. });
  392. })
  393. .catch((res) => {
  394. console.log(res);
  395. });
  396. };
  397. const pass = () => {
  398. state.show = false
  399. state.form.vehicleId =
  400. state.form.vehiclePlate + "_" + state.vehiclePlateColor;
  401. state.form.opId = getItem(StorageKeys.OpenId);
  402. state.form.approvedCount = parseFloat(state.form.approvedCount);
  403. state.form.maintenaceMass = parseFloat(state.form.maintenaceMass);
  404. state.form.totalMass = parseFloat(state.form.totalMass);
  405. state.form.permittedWeight = parseFloat(state.form.permittedWeight);
  406. state.form.permittedTowWeight = parseFloat(state.form.permittedTowWeight);
  407. const options = {
  408. type: 2,
  409. data: state.form,
  410. method: "POST",
  411. showLoading: true,
  412. };
  413. request(etcCarCardInfoSubmit, options).then((res) => {
  414. uni.redirectTo({
  415. url: `/subpackage/orders/product-detail?orderId=${state.form.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  416. });
  417. })
  418. }
  419. const selectConfirm = (index : any) => {
  420. console.log(index);
  421. state.form.useUserType = state.actionSheetList[index].value;
  422. state.form.useUserTypeName = state.actionSheetList[index].text;
  423. };
  424. //选择车辆用户类型
  425. const userType = (item : any) => {
  426. state.form.useUserType = item.value;
  427. state.form.useUserTypeName = item.text;
  428. state.actionSheetShow = false;
  429. }
  430. //车头照图片上传 val 1 车头照 2 道路运输证
  431. const cardFileImageUpdate = (val) => {
  432. uni.chooseImage({
  433. count: 1, //只能选取一张照片
  434. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  435. sourceType: ["camera", "album"], //从相册选择
  436. success: function (res) {
  437. uploadFile(res.tempFilePaths[0], "", "").then((data) => {
  438. if (val == 1) {
  439. state.form.vehBodyUrl = data;
  440. } else {
  441. state.form.roadTransportPermitPicUrl = data;
  442. }
  443. })
  444. },
  445. });
  446. };
  447. const state = reactive({
  448. phoneType: 0, // 1 身份证正面 2 身份证反面 3行驶证正面 4行驶证反面
  449. choiceIndex: 1, // 1 身份证正面 2 身份证反面
  450. isTakePhotoModeShow: false, //选择拍照方式是否出来
  451. changeColor: false,
  452. showImg: true,
  453. images: '',
  454. data: {
  455. transferLogs: [],
  456. },
  457. actionSheetShow: false,
  458. actionSheetList: [],
  459. form: {
  460. orderId: "", //订单ID
  461. character: "", //使用性质
  462. registerDate: "请输入注册日期", //注册日期
  463. customerId: "", //用户编号
  464. vehicleId: "",
  465. vehiclePlate: "", //车牌编号
  466. issueDate: "请输入发证日期", //发证日期
  467. vehPosImgUrl: "", //行驶证正面
  468. vehNegImgUrl: "", //行驶证证反面
  469. vanType: "0", //1,客车 2.货车
  470. useUserType: 0, //车辆用户类型
  471. useUserTypeName: "普通车",
  472. vehicleSign: 2, //前/后装标识
  473. vin: "", //车辆识别代号
  474. engineNum: "", //发动机号码
  475. vehicleType: "", //车辆类型
  476. vehicleModel: "", //行驶证品牌型号
  477. approvedCount: undefined, //核定人数
  478. approvedCountShow: undefined,//展示的
  479. totalMass: undefined, //总质量
  480. totalMassShow: undefined, //总质量
  481. maintenaceMass: undefined, //整备质量
  482. maintenaceMassShow: undefined, //整备质量展示的
  483. permittedWeight: "", //核定载质量
  484. vehicleDimensions: "", //车辆尺寸
  485. permittedTowWeight: "", //准牵引总质量
  486. axleCount: "", //车轴数
  487. ownerName: "", //车主姓名
  488. ownerIdType: "", //车主证件类型
  489. ownerIdNum: "", //车主证件号码
  490. ownPosImgUrl: "", //车主证件正面图片
  491. ownNegImgUrl: "", //车主证件反面图片
  492. agreementId: "", //签约编号
  493. channelId: "5201018892300000001", //编号渠道
  494. scenePayType: "", //
  495. transportIdNum: "", //道路运输证编号
  496. licenseIdNum: "", //经营许可证编号
  497. vehBodyUrl: "", //车身照片
  498. proxyUrl: "", //委托书地址
  499. roadTransportPermitPicUrl: "", //道路运输许可证
  500. opId: "",
  501. tractorSign: 0, //是否是牵引车 1 是 0 不是
  502. },
  503. vehiclePlateColor: undefined,
  504. orderId: "",
  505. // type: undefined, //标记来源是否登录 1为未登录数据 - 需要新增地址
  506. show: false,
  507. isMyPeopple: true,
  508. outlineL: "",
  509. outlineW: "",
  510. outlineH: "",
  511. isEnableChangeOCRCarInfo: true, //申办时是否允许修改OCR识别出来的车辆信息数据
  512. items: [{
  513. value: '1',
  514. name: '是',
  515. },
  516. {
  517. value: '0',
  518. name: '否',
  519. checked: 'true'
  520. }],
  521. current: 1,
  522. });
  523. onLoad((option : any) => {
  524. state.form.orderId = option.orderId;
  525. state.form.vanType = option.vanType;
  526. state.vehiclePlateColor = option.vehiclePlateColor;
  527. if (option.vehicleId) {
  528. state.form.vehicleId = option.vehicleId;
  529. }
  530. console.log("option", option)
  531. getGlobalParam();
  532. if (option.type == 1) {
  533. state.actionSheetList = [{
  534. text: "普通车",
  535. value: 0,
  536. }]
  537. } else {
  538. state.actionSheetList = [{
  539. text: "普通车",
  540. value: 0,
  541. },
  542. {
  543. text: "道路运输证经营范围仅有“货物专用运输(集装箱) ”的牵引车办理J类型集装箱",
  544. value: 24,
  545. },
  546. {
  547. text: "道路运输证经营范围不含“货物专用运输(集装箱)”的牵引车",
  548. value: 27,
  549. },
  550. {
  551. text: '道路运输证经营范围除“货物专用运输 (集装 箱)"外,还有“普通货运”等其他项目的牵引车办理J2类型集装箱',
  552. value: 28,
  553. }]
  554. }
  555. });
  556. //外廓尺寸输入框
  557. const outlineInput = (e) => {
  558. state.form.vehicleDimensions =
  559. state.outlineL + "X" + state.outlineW + "X" + state.outlineH + "mm";
  560. };
  561. //过户检测
  562. const queryGuoHuJianCeAction = () => {
  563. var data = {
  564. orderId: state.form.orderId,
  565. };
  566. const options = {
  567. type: 2,
  568. data: data,
  569. method: "POST",
  570. showLoading: true,
  571. };
  572. return new Promise(async (resolve, reject) => {
  573. const res = await request(queryGuoHuJianCe, options);
  574. const data = stringToJson(res.bizContent);
  575. console.log("过户检测111", data)
  576. resolve(data);
  577. }).catch((error) => {
  578. reject(error);
  579. });
  580. };
  581. //过户操作
  582. const guohuAction = (val) => {
  583. var data = {
  584. orderId: state.form.orderId,
  585. serviceType: "USE",
  586. obuId: val.obuId,
  587. cardId: val.cardId,
  588. };
  589. const options = {
  590. type: 2,
  591. data: data,
  592. method: "POST",
  593. showLoading: true,
  594. };
  595. return new Promise(async (resolve, reject) => {
  596. const res = await request(queryGuoHuCaoZuo, options);
  597. const data = stringToJson(res.bizContent);
  598. state.show = false;
  599. uni.redirectTo({
  600. url: `/subpackage/orders/product-detail?orderId=${state.form.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  601. });
  602. }).catch((error) => {
  603. reject(error);
  604. });
  605. };
  606. const getGlobalParam = () => {
  607. const data = getItem('globalParam')
  608. console.log("全局配置数据", getCodeName('IS_ENABLE', data.applyChangeOCRCarInfo))
  609. // 申办时是否允许修改OCR识别出来的车辆信息数据
  610. if (getCodeName('IS_ENABLE', data.applyChangeOCRCarInfo) == '启用') {
  611. state.isEnableChangeOCRCarInfo = false;
  612. } else {
  613. state.isEnableChangeOCRCarInfo = true;
  614. }
  615. // 中办时是否允许带出车辆信息
  616. console.log("11", getCodeName('IS_ENABLE', data.applyCarInfo))
  617. if (getCodeName('IS_ENABLE', data.applyCarInfo) == '启用') {
  618. // 获取车辆信息
  619. getCarMessage()
  620. console.log("11")
  621. }
  622. }
  623. const getCarMessage = () => {
  624. const options = {
  625. type: 2,
  626. data: {
  627. vehicleId: state.form.vehicleId,
  628. },
  629. method: "POST",
  630. showLoading: true,
  631. };
  632. request(carMessageApi, options).then((res) => {
  633. const data = stringToJson(res.bizContent);
  634. console.log("通过vehicleId查询车辆信息", data)
  635. if (data.data) {
  636. writeMsg(data.data)
  637. }
  638. })
  639. }
  640. const writeMsg = (allData) => {
  641. console.log("车辆信息", allData);
  642. state.form.ownPosImgUrl = allData['ownerPosImgUrl']
  643. state.form.ownNegImgUrl = allData['ownerNegImgUrl']
  644. state.form.userName = allData['contacts']
  645. state.form.userIdNum = allData['ownerIdNum']
  646. state.form.ownerIdNum = allData['ownerIdNum']
  647. state.form.address = allData['ownerAddress']
  648. state.form.tel = allData['ownerTel']
  649. state.form.vehPosImgUrl = allData['vehPosImgUrl']
  650. state.form.vehNegImgUrl = allData['vehNegImgUrl']
  651. state.form.vehBodyUrl = allData['vehBodyUrl']
  652. state.form.vehiclePlate = allData['vehiclePlate']
  653. state.form.ownerName = allData['ownerName']
  654. state.form.vehicleType = allData['vehicleType']
  655. if (allData['useCharacter'] == 1) {
  656. state.form.character = "营运" //使用性质
  657. } else if (allData['useCharacter'] == 2) {
  658. state.form.character = "非营运" //使用性质
  659. } else {
  660. state.form.character = "未知" //使用性质
  661. }
  662. state.form.vin = allData['vin']
  663. state.form.engineNum = allData['engineNum']
  664. state.form.registerDate = allData['registerDate']
  665. state.form.issueDate = allData['issueDate']
  666. state.form.approvedCountShow = allData['approvedCount']
  667. state.form.maintenaceMassShow = allData['maintenaceMass']
  668. state.form.approvedCount = allData['approvedCount']
  669. state.form.maintenaceMass = allData['maintenaceMass']
  670. allData['vehicleDimensions']
  671. state.form.vehicleDimensions = allData['vehicleDimensions']
  672. let arr = allData['vehicleDimensions'].split("X");
  673. state.outlineL = parseInt(arr[0]); //外廓 长
  674. state.outlineW = parseInt(arr[1]); //外廓 宽
  675. state.outlineH = parseInt(arr[2].substring(0, arr[2].length - 2)); //外廓 高
  676. state.form.totalMassShow = allData['totalMass']
  677. state.form.totalMass = allData['totalMass']
  678. state.form.axleCount = allData['axleCount'] ? allData['axleCount'] : 2
  679. if (allData['useUserType'] == 0) {
  680. state.form.useUserTypeName = "普通车"
  681. } else if (allData['useUserType'] == 24) {
  682. state.form.useUserTypeName = "道路运输证经营范围仅有“货物专用运输(集装箱) ”的牵引车办理J类型集装箱"
  683. } else if (allData['useUserType'] == 27) {
  684. state.form.useUserTypeName = "道路运输证经营范围不含“货物专用运输(集装箱)”的牵引车"
  685. } else if (allData['useUserType'] == 28) {
  686. state.form.useUserTypeName = "道路运输证经营范围除'货物专用运输 (集装 箱)'外,还有“普通货运”等其他项目的牵引车办理J2类型集装箱"
  687. }
  688. state.vehiclePlateColor = allData['vehiclePlateColor']
  689. state.form.customerId = allData['customerId']
  690. state.form.vehicleModel = allData['vehicleModel']
  691. state.form.permittedWeight = allData['permittedWeight'] ? allData['permittedWeight'] : 0;
  692. state.form.permittedTowWeight = allData['permittedTowWeight']
  693. state.changeColor = true
  694. if (allData['tractorSign'] == "1") {
  695. qian()
  696. state.form.roadTransportPermitPicUrl = allData['roadTransportPermitPicUrl']
  697. } else {
  698. notQian()
  699. }
  700. }
  701. const bindDateChange1 = (e) => {
  702. state.form.registerDate = e.detail.value
  703. state.changeColor = true;
  704. }
  705. const bindDateChange2 = (e) => {
  706. state.form.issueDate = e.detail.value
  707. state.changeColor = true;
  708. }
  709. const xiangce = (val) => {
  710. console.log("val", val)
  711. if (state.choiceIndex == 3) {
  712. var imageType = 1;
  713. } else {
  714. var imageType = 2;
  715. }
  716. state.changeColor = true;
  717. chooseImageCompress((res)=>{
  718. state.images = res.tempFilePath?res.tempFilePath:res.tempFilePaths[0]
  719. state.showImg = false
  720. state.phoneType = state.choiceIndex
  721. state.isTakePhotoModeShow = false
  722. })
  723. }
  724. const takePhoto = (val) => {
  725. console.log("拍照", val)
  726. state.phoneType = val;
  727. state.showImg = true;
  728. }
  729. const confirmReturn = (val) => {
  730. if (state.choiceIndex == 3) {
  731. var imageType = 1;
  732. } else {
  733. var imageType = 2;
  734. }
  735. state.changeColor = true;
  736. state.phoneType = 0
  737. state.isTakePhotoModeShow = false
  738. uploadFile(val.tempImagePath, imageType, etcCarOcrCard).then((data) => {
  739. // uploadFile(val.tempImagePath, state.choiceIndex, ocrAllQuery).then((data) => {
  740. console.log('输出内容=====================', state.choiceIndex)
  741. if (state.choiceIndex === "3") {
  742. if (data.plate_a.length > 8) {
  743. state.form.vehiclePlate = data.plate_a.substring(0, 8);
  744. } else {
  745. state.form.vehiclePlate = data.plate_a;
  746. }
  747. state.form.ownerName = data.man;
  748. state.form.vehicleType = data.vehicle;
  749. // state.form.character = data.character;
  750. state.form.character = 2;
  751. state.form.vin = data.vin;
  752. state.form.engineNum = data.engine;
  753. state.form.registerDate = data.register;
  754. state.form.issueDate = data.issue;
  755. state.form.vehPosImgUrl = data.imageUrl;
  756. state.form.vehicleModel = data.model;
  757. console.log("走不是牵引车的", data.vehicle.indexOf('牵引车'), data.vehicle)
  758. if (data.vehicle.indexOf('牵引车') > 0) {
  759. console.log("是牵引车的")
  760. qian()
  761. } else {
  762. console.log("走不是牵引车的")
  763. notQian()
  764. }
  765. } else {
  766. state.form.approvedCount = data.apc;
  767. state.form.approvedCountShow = data.apc;
  768. state.form.maintenaceMass = data.unladen;
  769. state.form.maintenaceMassShow = data.unladen;
  770. // 91接口差
  771. // // #ifdef MP-WEIXIN
  772. // state.form.vehicleDimensions = data.overall.replaceAll("×", "X");
  773. // // #endif
  774. // // #ifdef MP-ALIPAY
  775. // state.form.vehicleDimensions = data.overall.replace(/×/g, "X");
  776. // // #endif
  777. // let arr = data.overall.split("×");
  778. // #ifdef MP-WEIXIN
  779. state.form.vehicleDimensions = data.overall.replaceAll("x", "X");
  780. // #endif
  781. // #ifdef MP-ALIPAY
  782. state.form.vehicleDimensions = data.overall.replace(/x/g, "X");
  783. // #endif
  784. let arr = state.form.vehicleDimensions.split("X");
  785. state.outlineL = arr[0]; //外廓 长
  786. state.outlineW = arr[1]; //外廓 宽
  787. state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高
  788. state.form.totalMass = data.gross ? data.gross : 0;
  789. state.form.totalMassShow = data.gross ? data.gross : 0;
  790. console.log("state.form.totalMassShow", state.form.totalMassShow)
  791. state.form.vehNegImgUrl = data.imageUrl;
  792. state.form.permittedWeight = data.alc ? data.alc : 0;
  793. state.form.permittedTowWeight = data.towing ? data.towing : 0;
  794. console.log('=====================', state.form.vehNegImgUrl, state)
  795. }
  796. state.isTakePhotoModeShow = false
  797. })
  798. console.log("图片地址val", val.tempImagePath)
  799. }
  800. const takePhotoMode = (index) => {
  801. console.log("index", index)
  802. state.isTakePhotoModeShow = true
  803. state.choiceIndex = index
  804. }
  805. const cancle = () => {
  806. state.isTakePhotoModeShow = false
  807. }
  808. const radioChange = (evt) => {
  809. console.log("evt.detail.value", evt.detail.value)
  810. for (let i = 0; i < state.items.length; i++) {
  811. if (state.items[i].value === evt.detail.value) {
  812. state.current = i;
  813. state.form.tractorSign = evt.detail.value;
  814. break;
  815. }
  816. }
  817. }
  818. // 牵引车
  819. const qian = () => {
  820. state.items = [{
  821. value: '1',
  822. name: '是',
  823. checked: 'true'
  824. },
  825. {
  826. value: '0',
  827. name: '否',
  828. }]
  829. for (let i = 0; i < state.items.length; i++) {
  830. console.log("")
  831. if (state.items[i].value === '1') {
  832. state.current = i;
  833. state.form.tractorSign = 1;
  834. break;
  835. }
  836. }
  837. }
  838. // 不是牵引车
  839. const notQian = () => {
  840. state.items = [{
  841. value: '1',
  842. name: '是',
  843. },
  844. {
  845. value: '0',
  846. name: '否',
  847. checked: 'true'
  848. }]
  849. for (let i = 0; i < state.items.length; i++) {
  850. console.log("不是牵引车", state.items[i].value, state.items[i].value === '0')
  851. if (state.items[i].value === '0') {
  852. state.current = i;
  853. state.form.tractorSign = 0;
  854. break;
  855. }
  856. }
  857. }
  858. </script>
  859. <style lang="scss" scoped>
  860. .hui {
  861. color: #ccc;
  862. }
  863. .hei {
  864. color: black;
  865. }
  866. .goto {
  867. margin-right: 20rpx;
  868. padding: 10rpx;
  869. color: #00b38b;
  870. border: 1rpx solid #00b38b;
  871. border-radius: 20rpx;
  872. }
  873. .flex {
  874. display: flex;
  875. align-items: center;
  876. }
  877. .bettwen-center {
  878. display: flex;
  879. align-items: center;
  880. justify-content: space-between;
  881. }
  882. .card {
  883. margin: 20rpx;
  884. height: 150rpx;
  885. background: #ffffff;
  886. box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8);
  887. border-radius: 20rpx;
  888. padding: 20rpx;
  889. display: flex;
  890. justify-content: space-between;
  891. align-items: center;
  892. margin-bottom: 30rpx;
  893. .card-left {
  894. display: flex;
  895. align-items: center;
  896. image {
  897. width: 100rpx;
  898. height: 90rpx;
  899. }
  900. .card-center {
  901. margin-left: 30rpx;
  902. .card-center-head {
  903. font-size: 32rpx;
  904. font-family: Noto Sans S Chinese;
  905. font-weight: 400;
  906. color: #333333;
  907. }
  908. .tips {
  909. font-size: 26rpx;
  910. font-family: Noto Sans S Chinese;
  911. font-weight: 400;
  912. color: #666666;
  913. .tips-card {
  914. width: 70rpx;
  915. height: 40rpx;
  916. background: #d3f2ef;
  917. border-radius: 6rpx;
  918. font-size: 20rpx;
  919. font-family: Noto Sans S Chinese;
  920. font-weight: 400;
  921. color: #0a8f8a;
  922. padding: 5rpx 10rpx;
  923. margin-left: 20rpx;
  924. }
  925. }
  926. }
  927. }
  928. .choose-item {
  929. margin-right: 20rpx;
  930. width: 50rpx;
  931. height: 50rpx;
  932. border: 1rpx solid #00b38b;
  933. border-radius: 50%;
  934. display: flex;
  935. justify-content: center;
  936. align-items: center;
  937. .active {
  938. width: 38rpx;
  939. height: 38rpx;
  940. background: #00b38b;
  941. border-radius: 50%;
  942. }
  943. }
  944. }
  945. .content {
  946. position: relative;
  947. margin-top: -50rpx;
  948. padding: 0rpx 30rpx;
  949. position: relative;
  950. .img-pos {
  951. position: absolute;
  952. left: 270rpx;
  953. top: -38rpx;
  954. right: 50rpx;
  955. .img-flex {
  956. display: flex;
  957. justify-content: space-between;
  958. align-items: center;
  959. .car-img {
  960. width: 86rpx;
  961. height: 42rpx;
  962. }
  963. .flag-img {
  964. width: 30rpx;
  965. height: 35rpx;
  966. }
  967. }
  968. }
  969. .action {
  970. padding-left: 20rpx;
  971. padding-right: 20rpx;
  972. padding-bottom: 30rpx;
  973. .button {
  974. height: 80rpx;
  975. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  976. border-radius: 40rpx;
  977. font-size: 32rpx;
  978. font-weight: 400;
  979. color: #ffffff;
  980. line-height: 80rpx;
  981. }
  982. }
  983. .item-tips {
  984. .title {
  985. font-size: 30rpx;
  986. font-family: Microsoft YaHei;
  987. font-weight: 400;
  988. color: #000000;
  989. line-height: 24rpx;
  990. }
  991. .tip {
  992. margin-top: 16rpx;
  993. font-size: 24rpx;
  994. font-family: Microsoft YaHei;
  995. font-weight: 400;
  996. color: #999999;
  997. line-height: 24rpx;
  998. }
  999. }
  1000. .picture-wrapper {
  1001. margin-top: 40rpx;
  1002. .bg {
  1003. background: #ffffff;
  1004. box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8);
  1005. border-radius: 20rpx;
  1006. padding: 40rpx;
  1007. display: flex;
  1008. // align-items: center;
  1009. justify-content: space-between;
  1010. .name {
  1011. font-size: 34rpx;
  1012. font-family: Microsoft YaHei;
  1013. font-weight: 400;
  1014. color: #000000;
  1015. line-height: 34rpx;
  1016. }
  1017. .value {
  1018. margin-top: 20rpx;
  1019. font-size: 24rpx;
  1020. font-family: Microsoft YaHei;
  1021. font-weight: 400;
  1022. color: #999999;
  1023. line-height: 24rpx;
  1024. }
  1025. .tip {
  1026. margin-top: 20rpx;
  1027. text-align: center;
  1028. width: 110rpx;
  1029. height: 40rpx;
  1030. background: rgba(33, 190, 177, 0.2);
  1031. border-radius: 6rpx;
  1032. .tip-value {
  1033. font-size: 20rpx;
  1034. font-family: Microsoft YaHei;
  1035. font-weight: 400;
  1036. color: #0a8f8a;
  1037. line-height: 40rpx;
  1038. opacity: 1;
  1039. }
  1040. }
  1041. }
  1042. .icon {
  1043. width: 294rpx;
  1044. height: 188rpx;
  1045. }
  1046. }
  1047. .shibie-wrapper {
  1048. margin-top: 60rpx;
  1049. .title {
  1050. font-size: 30rpx;
  1051. font-family: Microsoft YaHei;
  1052. font-weight: 400;
  1053. color: #000000;
  1054. line-height: 30rpx;
  1055. }
  1056. }
  1057. .buchong-wrapper {
  1058. margin-top: 60rpx;
  1059. .title {
  1060. font-size: 30rpx;
  1061. font-family: Microsoft YaHei;
  1062. font-weight: 400;
  1063. color: #000000;
  1064. line-height: 30rpx;
  1065. }
  1066. }
  1067. .green-tip {
  1068. margin-top: 50rpx;
  1069. font-size: 24rpx;
  1070. font-family: Microsoft YaHei;
  1071. font-weight: 400;
  1072. color: #00b38b;
  1073. line-height: 24rpx;
  1074. margin-bottom: 60rpx;
  1075. }
  1076. }
  1077. .form-item {
  1078. display: flex;
  1079. font-size: 28rpx;
  1080. justify-content: space-between;
  1081. align-items: center;
  1082. }
  1083. .form-item label {}
  1084. .form-item .input-box {
  1085. display: flex;
  1086. align-items: center;
  1087. }
  1088. .form-item .select {
  1089. flex: 1;
  1090. background: #f1f1f1;
  1091. padding: 6rpx 20rpx;
  1092. margin: 0 10rpx;
  1093. min-height: 48rpx;
  1094. line-height: 48rpx;
  1095. border-radius: 8rpx;
  1096. }
  1097. .form-item .icon {
  1098. width: 28rpx;
  1099. height: 32rpx;
  1100. }
  1101. .form-item .input-box input {
  1102. width: 90rpx;
  1103. background: #f1f1f1;
  1104. border-radius: 8rpx;
  1105. padding: 0 5rpx;
  1106. }
  1107. .form-item .sub-text {
  1108. color: #808080;
  1109. padding-left: 10rpx;
  1110. }
  1111. .form-item .sub-label {
  1112. padding: 0 10rpx;
  1113. }
  1114. .window {
  1115. padding: 60rpx 30rpx;
  1116. }
  1117. .window .window-item {
  1118. border: 1px solid #00b38b;
  1119. background: rgba(0, 179, 139, .1);
  1120. border-radius: 10rpx;
  1121. padding: 16rpx 30rpx;
  1122. font-size: 30rpx;
  1123. margin-bottom: 10rpx;
  1124. }
  1125. ::v-deep .u-input__input {
  1126. background: transparent;
  1127. }
  1128. .choice-takePhoto {
  1129. position: absolute;
  1130. bottom: 0;
  1131. background-color: white;
  1132. width: 100%;
  1133. border-radius: 20rpx 20rpx 0 0;
  1134. }
  1135. .choice-takePhoto>view:first-child {
  1136. text-align: center;
  1137. height: 80rpx;
  1138. line-height: 80rpx;
  1139. border-bottom: 1rpx solid rgba(127, 127, 127, 0.3);
  1140. background-color: white;
  1141. }
  1142. .choice-takePhoto>view:last-child {
  1143. text-align: center;
  1144. height: 80rpx;
  1145. line-height: 80rpx;
  1146. border-top: 6rpx solid rgba(127, 127, 127, 0.1);
  1147. background-color: white;
  1148. }
  1149. .choice-takePhoto>view {
  1150. text-align: center;
  1151. height: 80rpx;
  1152. line-height: 80rpx;
  1153. background-color: white;
  1154. }
  1155. .choice-takePhoto-wrap {
  1156. width: 100%;
  1157. height: 100vh;
  1158. background-color: rgba(127, 127, 127, 0.2);
  1159. position: fixed;
  1160. left: 0;
  1161. top: 0;
  1162. z-index: 11111;
  1163. }
  1164. .tractor {
  1165. font-size: 32rpx;
  1166. margin-top: 40rpx;
  1167. }
  1168. .tractor .title {
  1169. margin-right: 60rpx;
  1170. }
  1171. // .tractor .title .label {
  1172. // margin-right: 40rpx !important;
  1173. // }
  1174. </style>