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-release.vue 55KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749
  1. <template>
  2. <navBar title="行驶证信息上传" :scrollTop="scrollTop" navbgClass="nav-bgXin" fontColor='#fff'></navBar>
  3. <navBgCar :activeNum='4'></navBgCar>
  4. <view class="content">
  5. <view class="t-card">
  6. <view class="item-tips">
  7. <view class="title"> 上传后请核对识别信息 </view>
  8. <view class="tip"> 如有错误请及时手动修改 </view>
  9. </view>
  10. <view class="picture-wrapper" @click="takePhotoMode('3')">
  11. <view class="bg">
  12. <view class="">
  13. <view class="name"> 行驶证主页 </view>
  14. <view class="value"> 上传行驶证的主页 </view>
  15. <view class="tip">
  16. <view class="tip-value"> 拍摄规范 </view>
  17. </view>
  18. </view>
  19. <image v-if="!state.form.vehPosImgUrl" class="icon" :src="`${$imgUrl}issuance/xz.png`"
  20. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  21. </image>
  22. <image v-else class="icon" :src="imgPathMontage(state.form.vehPosImgUrlName)"
  23. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  24. </view>
  25. </view>
  26. <view class="picture-wrapper" @click="takePhotoMode('4')">
  27. <view class="bg">
  28. <view class="">
  29. <view class="name"> 行驶证副页 </view>
  30. <view class="value"> 上传行驶证的副页 </view>
  31. <view class="tip">
  32. <view class="tip-value"> 拍摄规范 </view>
  33. </view>
  34. </view>
  35. <image v-if="!state.form.vehNegImgUrl" class="icon" :src="`${$imgUrl}issuance/xf.png`"
  36. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  37. </image>
  38. <image v-else class="icon" :src="imgPathMontage(state.form.vehNegImgUrlName)"
  39. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  40. </view>
  41. </view>
  42. <view class="picture-wrapper" @click="cardFileImageUpdate(99)">
  43. <view class="bg">
  44. <view class="">
  45. <view class="name"> 车头照 </view>
  46. <view class="value"> 上传汽车的45度车头照片 </view>
  47. <view class="tip">
  48. <view class="tip-value"> 拍摄规范 </view>
  49. </view>
  50. </view>
  51. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/chetou.png`"
  52. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  53. </image>
  54. <image v-else class="icon" :src="imgPathMontage(state.form.vehBodyUrlName)"
  55. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  56. </view>
  57. </view>
  58. <view class="uni-list tractor">
  59. <radio-group @change="radioChange" v-if="state.form.vanType==2">
  60. <text class="title">是否是牵引车</text>
  61. <label style="margin-right: 60rpx;" class="uni-list-cell uni-list-cell-pd "
  62. v-for="(item, index) in state.items" :key="item.value">
  63. <radio :value="item.value" :checked="index === state.current" />{{item.name}}
  64. </label>
  65. </radio-group>
  66. </view>
  67. <!-- 货车 牵引车 需要传道路运输许可证-->
  68. <!-- <view class="picture-wrapper" v-if="state.form.vanType==2 && state.form.tractorSign==1"
  69. @click="cardFileImageUpdate(2)">
  70. <view class="bg">
  71. <view class="">
  72. <view class="name"> 道路运输许可证 </view>
  73. <view class="value"> 上传道路运输许可证 </view>
  74. <view class="tip">
  75. <view class="tip-value"> 拍摄规范 </view>
  76. </view>
  77. </view>
  78. <image v-if="!state.form.roadTransportPermitPicUrl" class="icon"
  79. :src="`${$imgUrl}issuance/chetou.png`"
  80. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  81. </image>
  82. <image v-else class="icon" :src="imgPathMontage(state.form.roadTransportPermitPicUrl)"
  83. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  84. </view>
  85. </view> -->
  86. </view>
  87. <view class="shibie-wrapper">
  88. <view class="title"> 识别内容如下 </view>
  89. <view class="">
  90. <u-form label-width="240" :model="state.form" ref="uForm" :label-style='labelStyle'>
  91. <u-form-item label="车牌号" :left-icon='`${$imgUrl}issuance/point-form.png`'
  92. :left-icon-style='leftIcon'>
  93. <car-number-input @numberInputResult="carNumber"
  94. :defaultStr="state.form.vehiclePlate"></car-number-input>
  95. </u-form-item>
  96. <u-form-item label="所有人" :left-icon='`${$imgUrl}issuance/point-form.png`'
  97. :left-icon-style='leftIcon'>
  98. <u-input inputAlign="right" placeholder="请输入所有人" v-model="state.form.ownerName"
  99. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  100. </u-form-item>
  101. <u-form-item label="车辆类型" :left-icon='`${$imgUrl}issuance/point-form.png`'
  102. :left-icon-style='leftIcon'>
  103. <u-input inputAlign="right" placeholder="请输入车辆类型" v-model="state.form.vehicleType"
  104. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  105. </u-form-item>
  106. <u-form-item label="品牌型号" :left-icon='`${$imgUrl}issuance/point-form.png`'
  107. :left-icon-style='leftIcon'>
  108. <u-input inputAlign="right" placeholder="请输入品牌型号" v-model="state.form.vehicleModel"
  109. :disabled="state.isEnableChangeOCRCarInfo" maxlength="30" />
  110. </u-form-item>
  111. <u-form-item label="收费车型" :left-icon='`${$imgUrl}issuance/point-form.png`'
  112. :left-icon-style='leftIcon'>
  113. <!-- <u-input inputAlign="right" placeholder="请输入使用性质" v-model="state.form.character"
  114. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  115. <picker :value="state.form.registerDate" @change="bindDateChange1"
  116. :disabled="state.isEnableChangeOCRCarInfo">
  117. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  118. {{state.form.registerDate}}
  119. </view>
  120. </picker> -->
  121. <picker @change="feeVehicleTypeChange" placeholder="请选择收费车型"
  122. :disabled="state.isEnableChangeOCRCarInfo" range-key="name" :value="state.form.feeVehicleTypeIndex"
  123. :range="getDicWithType('VEHICLE_TYPE')">
  124. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  125. {{state.form.feeVehicleTypeName}}
  126. </view>
  127. </picker>
  128. </u-form-item>
  129. <u-form-item label="使用性质" :left-icon='`${$imgUrl}issuance/point-form.png`'
  130. :left-icon-style='leftIcon'>
  131. <!-- <u-input inputAlign="right" placeholder="请输入使用性质" v-model="state.form.character"
  132. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  133. <picker :value="state.form.registerDate" @change="bindDateChange1"
  134. :disabled="state.isEnableChangeOCRCarInfo">
  135. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  136. {{state.form.registerDate}}
  137. </view>
  138. </picker> -->
  139. <picker @change="characterChange" placeholder="请选择使用性质"
  140. :disabled="state.isEnableChangeOCRCarInfo" range-key="name" :value="state.form.characterIndex"
  141. :range="getDicWithType('VERHICLE_USE')">
  142. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  143. {{state.form.characterName}}
  144. </view>
  145. </picker>
  146. </u-form-item>
  147. <u-form-item label="车辆识别代号" :left-icon='`${$imgUrl}issuance/point-form.png`'
  148. :left-icon-style='leftIcon'>
  149. <u-input inputAlign="right" placeholder="请输入车辆识别代号" v-model="state.form.vin"
  150. :disabled="state.isEnableChangeOCRCarInfo" maxlength="50" />
  151. </u-form-item>
  152. <u-form-item label="发动机号码" :left-icon='`${$imgUrl}issuance/point-form.png`'
  153. :left-icon-style='leftIcon'>
  154. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.form.engineNum"
  155. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  156. </u-form-item>
  157. <u-form-item label="注册日期" :left-icon='`${$imgUrl}issuance/point-form.png`'
  158. :left-icon-style='leftIcon'>
  159. <picker mode="date" :value="state.form.registerDate" @change="bindDateChange1"
  160. :disabled="state.isEnableChangeOCRCarInfo">
  161. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  162. {{state.form.registerDate}}
  163. </view>
  164. </picker>
  165. </u-form-item>
  166. <u-form-item label="发证日期" :left-icon='`${$imgUrl}issuance/point-form.png`'
  167. :left-icon-style='leftIcon'>
  168. <picker mode="date" :value="state.form.issueDate" @change="bindDateChange2"
  169. :disabled="state.isEnableChangeOCRCarInfo">
  170. <view class="uni-input" style="text-align: right;" :class="state.changeColor?'hei':'hui'">
  171. {{state.form.issueDate}}
  172. </view>
  173. </picker>
  174. </u-form-item>
  175. <u-form-item label="核定载人数" :left-icon='`${$imgUrl}issuance/point-form.png`'
  176. :left-icon-style='leftIcon'>
  177. <u-input inputAlign="right" placeholder="请输入核定载人数" v-model="state.form.approvedCountShow"
  178. :disabled="state.isEnableChangeOCRCarInfo" maxlength="3" />
  179. </u-form-item>
  180. <u-form-item label="整备质量" :left-icon='`${$imgUrl}issuance/point-form.png`'
  181. :left-icon-style='leftIcon'>
  182. <u-input inputAlign="right" placeholder="请输入整备质量" v-model="state.form.maintenaceMassShow"
  183. :disabled="state.isEnableChangeOCRCarInfo" maxlength="7" />
  184. </u-form-item>
  185. <view class="form-item">
  186. <label class='l-label'>
  187. <image class="icon-img" :src="`${$imgUrl}issuance/point-form.png`" /><text>外廊尺寸</text>
  188. </label>
  189. <view class="input-box">
  190. <text class="sub-label">长</text>
  191. <input v-model="state.outlineL" @input="outlineInput"
  192. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  193. <text class="sub-label">宽</text>
  194. <input v-model="state.outlineW" @input="outlineInput"
  195. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  196. <text class="sub-label">高</text>
  197. <input v-model="state.outlineH" @input="outlineInput"
  198. :disabled="state.isEnableChangeOCRCarInfo" type="number" maxlength="5" />
  199. <text class="sub-text">mm</text>
  200. </view>
  201. </view>
  202. <u-form-item label="总质量" :left-icon='`${$imgUrl}issuance/point-form.png`'
  203. :left-icon-style='leftIcon'>
  204. <u-input inputAlign="right" placeholder="请输入总质量" v-model="state.form.totalMassShow"
  205. :disabled="state.isEnableChangeOCRCarInfo" />
  206. </u-form-item>
  207. <u-form-item label="核定载质量" v-if="state.form.permittedWeight"
  208. :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  209. <u-input inputAlign="right" placeholder="核定载质量" v-model="state.form.permittedWeight"
  210. :disabled="state.isEnableChangeOCRCarInfo" />
  211. </u-form-item>
  212. <u-form-item label="车轴数" :left-icon='`${$imgUrl}issuance/point-form.png`'
  213. :left-icon-style='leftIcon'>
  214. <u-input inputAlign="right" placeholder="请输入车轴数" v-model="state.form.axleCount" type="number"
  215. maxlength="2" />
  216. </u-form-item>
  217. <view class="form-item">
  218. <label class='l-label'>
  219. <image class="icon-img" :src="`${$imgUrl}issuance/point-form.png`" /><text>车辆用户类型</text>
  220. </label>
  221. <view class="select" @click="state.actionSheetShow = true">{{state.form.useUserTypeName}}</view>
  222. <image :src="`${$imgUrl}common/arror-down.png`" class="icon"
  223. @click="state.actionSheetShow = true">
  224. </image>
  225. </view>
  226. <view
  227. class="picture-wrapper"
  228. v-if="state.form.useUserType != 0"
  229. @click="cardFileImageUpdate(101)"
  230. >
  231. <view class="bg">
  232. <view class="">
  233. <view class="name"> 道路运输许可证 </view>
  234. <view class="value"> 上传道路运输许可证 </view>
  235. <view class="tip">
  236. <view class="tip-value"> 拍摄规范 </view>
  237. </view>
  238. </view>
  239. <image v-if="!state.form.roadTransportPermitPicUrl" class="icon"
  240. :src="`${$imgUrl}issuance/chetou.png`"
  241. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  242. </image>
  243. <image v-else class="icon" :src="imgPathMontage(state.form.roadTransportPermitPicUrlName)"
  244. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  245. </view>
  246. </view>
  247. <u-form-item v-if="state.form.useUserType != 0" label="经营许可证编号" :left-icon='`${$imgUrl}issuance/point-form.png`'
  248. :left-icon-style='leftIcon'>
  249. <u-input inputAlign="right" placeholder="请输入经营许可证编号" v-model="state.form.licenseIdNum"
  250. :disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
  251. </u-form-item>
  252. </u-form>
  253. </view>
  254. <!-- 车主信息 -->
  255. <view class="" v-if="state.showOwner">
  256. <view class="uni-list" style="margin: 20rpx 0;">
  257. <radio-group @change="ownerRadioChange" class="ownerRadio">
  258. <label v-for="(item, index) in carOwnerList" :key="item.value" class="left-owner-radio">
  259. <radio :value="item.value" :checked="index === ownerCurrent">{{item.name}}</radio>
  260. </label>
  261. </radio-group>
  262. </view>
  263. <view class="" v-if="state.form.ownerIdType == '101'">
  264. <view class="t-con">
  265. <view class="item-tips">
  266. <view class="title"> 上传后请核对识别信息 </view>
  267. <view class="tip"> 如有错误请及时手动修改 </view>
  268. </view>
  269. <view class="picture-wrapper" @click="takePhotoMode('1','my')">
  270. <view class="bg">
  271. <view class="">
  272. <view class="name"> 人像面 </view>
  273. <view class="value"> 上传身份证的人像面 </view>
  274. <view class="tip">
  275. <view class="tip-value"> 拍摄规范 </view>
  276. </view>
  277. </view>
  278. <image v-if="!state.form.ownerPosImgUrl" class="icon"
  279. :src="`${$imgUrl}issuance/sfz.png`"
  280. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  281. </image>
  282. <image v-else class="icon" :src="imgPathMontage(state.form.ownerPosImgUrlName)"
  283. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  284. </view>
  285. </view>
  286. <view class="picture-wrapper" @click="takePhotoMode('2','my')">
  287. <view class="bg">
  288. <view class="">
  289. <view class="name"> 国徽面 </view>
  290. <view class="value"> 上传身份证的国徽面 </view>
  291. <view class="tip">
  292. <view class="tip-value"> 拍摄规范 </view>
  293. </view>
  294. </view>
  295. <image v-if="!state.form.ownerNegImgUrl" class="icon"
  296. :src="`${$imgUrl}issuance/sff.png`"
  297. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}">
  298. </image>
  299. <image v-else class="icon" :src="imgPathMontage(state.form.ownerNegImgUrlName)"
  300. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  301. </view>
  302. </view>
  303. <view class="picture-wrapper" v-if="state.userType == 'PERSONAL_USER'" @click="cardFileImageUpdate(100)">
  304. <view class="bg">
  305. <view class="">
  306. <view class="name"> 委托书 </view>
  307. <view class="value"> 上传文字清晰的委托书 </view>
  308. <view class="tip">
  309. <view class="tip-value"> 拍摄规范 </view>
  310. </view>
  311. </view>
  312. <image v-if="!state.form.proxyUrl" class="icon" :src="`${$imgUrl}issuance/weituo.png`"
  313. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}">
  314. </image>
  315. <image v-else class="icon" :src="imgPathMontage(state.form.proxyUrlName)"
  316. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  317. </view>
  318. </view>
  319. </view>
  320. <view class="shibie-wrapper">
  321. <view class="title"> 识别内容如下 </view>
  322. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  323. <u-form-item label="车主姓名" :left-icon='`${$imgUrl}issuance/point-form.png`'
  324. :left-icon-style='leftIcon'>
  325. <u-input v-model="state.form.idName" placeholder='请输入车主姓名' maxlength="20"
  326. @input="replaceInput" inputAlign="right" />
  327. </u-form-item>
  328. <u-form-item label="车主身份证号" :left-icon='`${$imgUrl}issuance/point-form.png`'
  329. :left-icon-style='leftIcon'>
  330. <u-input placeholder='请输入车主身份证' type="idcard" v-model="state.form.ownerIdNum"
  331. maxlength="18" inputAlign="right" />
  332. </u-form-item>
  333. <u-form-item label="车主地址" :left-icon='`${$imgUrl}issuance/point-form.png`'
  334. :left-icon-style='leftIcon'>
  335. <u-input placeholder='请输入车主地址' :autoHeight='true' v-model="state.form.ownerIdAddress"
  336. maxlength="50" inputAlign="right" />
  337. </u-form-item>
  338. <u-form-item label="车主联系方式" :left-icon='`${$imgUrl}issuance/point-form.png`'
  339. :left-icon-style='leftIcon'>
  340. <u-input placeholder='请输入车主联系方式' type="number" v-model="state.form.ownerTel"
  341. maxlength="11" inputAlign="right" />
  342. </u-form-item>
  343. </u-form>
  344. </view>
  345. </view>
  346. <view class="" v-if="state.form.ownerIdType == '203'">
  347. <view class="t-con">
  348. <view class="item-tips">
  349. <view class="title"> 上传后请核对识别信息 </view>
  350. <view class="tip"> 如有错误请及时手动修改 </view>
  351. </view>
  352. <view class="picture-wrapper" @click="cardImageOcrYY()">
  353. <view class="bg">
  354. <view class="">
  355. <view class="name"> 营业执照 </view>
  356. <view class="value"> 上传企业的营业执照 </view>
  357. <view class="tip">
  358. <view class="tip-value"> 拍摄规范 </view>
  359. </view>
  360. </view>
  361. <image v-if="!state.form.ownerPosImgUrl" class="icon"
  362. :src="`${$imgUrl}applyCard/zhizhao.png`"
  363. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  364. </image>
  365. <image v-else class="icon" :src="strReplace(state.form.ownerPosImgUrlName)"
  366. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  367. </view>
  368. </view>
  369. <view class="picture-wrapper" v-if="state.userType == 'PERSONAL_USER'" @click="cardFileImageUpdate(100)">
  370. <view class="bg">
  371. <view class="">
  372. <view class="name"> 委托书 </view>
  373. <view class="value"> 上传文字清晰的委托书 </view>
  374. <view class="tip">
  375. <view class="tip-value"> 拍摄规范 </view>
  376. </view>
  377. </view>
  378. <image v-if="!state.form.proxyUrl" class="icon" :src="`${$imgUrl}issuance/weituo.png`"
  379. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}">
  380. </image>
  381. <image v-else class="icon" :src="imgPathMontage(state.form.proxyUrlName)"
  382. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  383. </view>
  384. </view>
  385. </view>
  386. <view class="shibie-wrapper">
  387. <view class="title"> 识别内容如下 </view>
  388. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  389. <u-form-item label="公司名称" :left-icon='`${$imgUrl}issuance/point-form.png`'
  390. :left-icon-style='leftIcon'>
  391. <u-input v-model="state.form.idName" placeholder='请输入公司名称' maxlength="20"
  392. @input="replaceInput" inputAlign="right" />
  393. </u-form-item>
  394. <u-form-item label="社会信用代码" :left-icon='`${$imgUrl}issuance/point-form.png`'
  395. :left-icon-style='leftIcon'>
  396. <u-input placeholder='请输入社会信用代码' type="idcard" v-model="state.form.ownerIdNum"
  397. maxlength="18" inputAlign="right" />
  398. </u-form-item>
  399. <u-form-item label="地址" :left-icon='`${$imgUrl}issuance/point-form.png`'
  400. :left-icon-style='leftIcon'>
  401. <u-input placeholder='请输入地址' :autoHeight='true' v-model="state.form.ownerIdAddress"
  402. maxlength="50" inputAlign="right" />
  403. </u-form-item>
  404. <u-form-item label="联系方式" :left-icon='`${$imgUrl}issuance/point-form.png`'
  405. :left-icon-style='leftIcon'>
  406. <u-input placeholder='请输入联系方式' type="number" v-model="state.form.ownerTel"
  407. maxlength="11" inputAlign="right" />
  408. </u-form-item>
  409. </u-form>
  410. </view>
  411. </view>
  412. </view>
  413. </view>
  414. <view class="action">
  415. <view class="btn-tip">
  416. 如识别信息有误,请手动修改,确认无误后,点击下一步!
  417. </view>
  418. <button type="default" class="ui-btn" @click="savaHandle()">
  419. 下一步
  420. </button>
  421. </view>
  422. </view>
  423. <!-- 车辆类型弹窗 -->
  424. <u-popup mode="bottom" v-model="state.actionSheetShow">
  425. <view class="window">
  426. <view class="window-item" v-for="item in state.actionSheetList" :key="item.value" @click="userType(item)">
  427. {{item.text}}
  428. </view>
  429. </view>
  430. </u-popup>
  431. <u-popup mode="bottom" v-model="state.show">
  432. <view v-if="state.data.transferLogs && state.data.transferLogs.length" class="">
  433. <view class="bettwen-center">
  434. <view style="padding: 20rpx" class="title"> 选择卡签 </view>
  435. <view class="goto" @click="pass"> 直接跳过,不使用此套卡签 </view>
  436. </view>
  437. <view @click="guohuAction(item)" class="card" v-for="(item, index) in state.data.transferLogs" :key="index"
  438. style="margin-top: 30rpx; margin-bottom: 30rpx">
  439. <view v-if="item.status === 'WAITING'" class="card-left">
  440. <image :src="`${$imgUrl}card2.png`" mode=""></image>
  441. <view class="card-center">
  442. <view class="flex">
  443. <view class=""> 卡号: </view>
  444. <view class="card-center-head">
  445. {{ item.cardId }}
  446. </view>
  447. </view>
  448. <view style="margin-top: 10rpx" class="flex">
  449. <view class=""> OBU编号: </view>
  450. <view class="card-center-head">
  451. {{ item.obuId }}
  452. </view>
  453. </view>
  454. </view>
  455. </view>
  456. </view>
  457. </view>
  458. </u-popup>
  459. <uploadImg :isTakePhotoModeShow="state.isTakePhotoModeShow" :phoneType="state.choiceIndex" @close="close"
  460. @ocrResult="ocrResult">
  461. </uploadImg>
  462. </template>
  463. <script setup lang="ts">
  464. import { reactive, ref } from "vue";
  465. import uploadImg from '@/components/uploadOcr';
  466. import navBgCar from "./components/nav-bg-car1";
  467. import navBar from "@/components/nav-bar/nav-bar2.vue";
  468. import carNumberInput from "@/components/car-number-input/car-number-input.vue";
  469. import {
  470. etcCarCardInfoSubmit,
  471. queryGuoHuJianCe,
  472. queryGuoHuCaoZuo,
  473. carMessageApi,
  474. vehicleUpload,
  475. vehicleLicenseOcr,
  476. vehicUsePropert,
  477. vehicCharge,
  478. ocrAllQuery,
  479. contractQuery,
  480. } from "@/utils/network/api.js";
  481. import { request, requestNew } from "@/utils/network/request.js";
  482. import { stringToJson } from "@/utils/network/encryption";
  483. import { onLoad, onPageScroll } from "@dcloudio/uni-app";
  484. import { getItem, StorageKeys } from "@/utils/storage";
  485. import { issueOrder } from "@/stores/issueOrder";
  486. import { msg, strReplace, imgPathMontage, hasLogin, uploadFile, compressImage, chooseImageCompress } from "@/utils/utils";
  487. import { navTo } from "@/utils/utils";
  488. import { getCodeName, getDicWithType } from "@/datas/queryKey.js";
  489. const { orderInfo } = issueOrder()
  490. const scrollTop = ref(0);
  491. const labelStyle = {
  492. color: "#004576",
  493. fontSize: "28rpx",
  494. }
  495. const leftIcon = {
  496. height: '100%',
  497. width: '8rpx',
  498. display: 'flex',
  499. 'align-items': 'center',
  500. 'margin-right': '3rpx',
  501. }
  502. const array = [
  503. {
  504. name: "家庭自用",
  505. value: "1"
  506. }, {
  507. name: "非营业客车",
  508. value: "2"
  509. }, {
  510. name: "营业客车",
  511. value: "3"
  512. }, {
  513. name: "非营业货车",
  514. value: "4"
  515. }, {
  516. name: "营业货车",
  517. value: "5"
  518. }, {
  519. name: "特种车",
  520. value: "6"
  521. }, {
  522. name: "挂车",
  523. value: "7"
  524. }, {
  525. name: "应急救援车",
  526. value: "8"
  527. }
  528. ]
  529. let index = 0;
  530. function characterChange(e) {
  531. console.log('picker发送选择改变,携带值为', e.detail.value)
  532. index = e.detail.value;
  533. state.form.character = getDicWithType('VERHICLE_USE')[index].code
  534. state.form.characterName = getDicWithType('VERHICLE_USE')[index].name;
  535. state.form.characterIndex = index;
  536. }
  537. const feeVehicleTypeChange = (e) => {
  538. index = e.detail.value;
  539. state.form.feeVehicleType = getDicWithType('VEHICLE_TYPE')[index].code;
  540. state.form.feeVehicleTypeName = getDicWithType('VEHICLE_TYPE')[index].name;
  541. state.form.feeVehicleTypeIndex = index;
  542. }
  543. //监听页面滚动
  544. onPageScroll((e) => {
  545. scrollTop.value = e.scrollTop;
  546. });
  547. const close = (e) => {
  548. console.log("e", e)
  549. state.isTakePhotoModeShow = e
  550. }
  551. //车牌号输入
  552. const carNumber = (val : any) => {
  553. state.form.vehiclePlate = val.trim();
  554. };
  555. const camera = () => {
  556. state.phoneType = 0
  557. }
  558. const carOwnerList = ref([
  559. { name: "个人", value: "101" },
  560. { name: "企业", value: "203" },
  561. ])
  562. const ownerCurrent = ref(0);
  563. const ownerRadioChange = (evt) => {
  564. console.log(evt)
  565. state.form.ownerIdType = evt.detail.value;
  566. // if (state.form.ownerIdType != evt.detail.value) {
  567. state.form.idName = "";
  568. state.form.ownerIdNum = "";
  569. state.form.ownerIdAddress = "";
  570. state.form.ownerPosImgUrl = "";
  571. state.form.proxyUrl = "";
  572. state.form.ownerNegImgUrl = "";
  573. state.form.ownerTel = "";
  574. // }
  575. for (let i = 0; i < this.items.length; i++) {
  576. if (this.items[i].value === evt.detail.value) {
  577. ownerCurrent.value = i;
  578. break;
  579. }
  580. }
  581. }
  582. // 获取车辆使用性质
  583. const getCharacter = (options) => {
  584. let approvedCount;
  585. if (state.form.approvedCountShow.toString().indexOf('人') > 0) {
  586. approvedCount = state.form.approvedCountShow.replace("人", "");
  587. } else {
  588. approvedCount = state.form.approvedCountShow;
  589. }
  590. let totalMass;
  591. if (state.form.totalMassShow.toString().indexOf('kg') > 0) {
  592. totalMass = state.form.totalMassShow.replace("kg", "");
  593. } else {
  594. totalMass = state.form.totalMassShow;
  595. }
  596. let data = {
  597. "approvedCount": approvedCount,
  598. "axleCount": state.form.axleCount,
  599. "totalMass": totalMass,
  600. "vanType": state.form.vanType,
  601. "vehicleDimensions": state.form.vehicleDimensions,
  602. "plateNum": state.form.vehiclePlate,
  603. "vehicleTypeName": state.form.vehicleType,
  604. "vehicleUsePropertName": state.form.character
  605. }
  606. let params = {
  607. type: 2,
  608. data: data,
  609. method: "POST",
  610. showLoading: true,
  611. };
  612. requestNew(vehicCharge, params)
  613. .then((res) => {
  614. state.form.characterName = getDicWithType('VERHICLE_USE').find(val => val.code == res.vehicUse).name || '';
  615. state.form.characterIndex = getDicWithType('VERHICLE_USE').findIndex(val => val.code == res.vehicUse) || 0;
  616. state.form.character = res.vehicUse
  617. state.form.feeVehicleTypeName = getDicWithType('VEHICLE_TYPE').find(val => val.code == res.feeVehicleType).name || ''
  618. state.form.feeVehicleTypeIndex = getDicWithType('VEHICLE_TYPE').findIndex(val => val.code == res.feeVehicleType) || 0;
  619. state.form.feeVehicleType = res.feeVehicleType;
  620. })
  621. .catch((err) => {
  622. console.log(err);
  623. });
  624. }
  625. // 判断是否与用户信息一致
  626. const vehicleUploadReq = (options) => {
  627. let data = {
  628. ...options,
  629. character: state.form.character,
  630. feeVehicleType: state.form.feeVehicleType,
  631. }
  632. let params = {
  633. type: 2,
  634. data: data,
  635. method: "POST",
  636. showLoading: true,
  637. };
  638. requestNew(vehicleUpload, params)
  639. .then((resIn) => {
  640. if (resIn.flag == 1) {
  641. // 车辆信息与用户信息不符,上传车主信息
  642. state.showOwner = true;
  643. state.userType = resIn.userType;
  644. state.form.ownerIdType = "101";
  645. } else if (resIn.flag == 2) {
  646. if (resIn.approvalStatus == 2) {
  647. // 会详细列出具体字段的错误信息。
  648. // uni.showModal({
  649. // title: '提示',
  650. // content: "等待人工审核",
  651. // success: function (res) {
  652. // if (res.confirm) {
  653. // } else if (res.cancel) {
  654. // console.log('用户点击取消2');
  655. // }
  656. // }
  657. // });
  658. const options = {
  659. type: 2,
  660. data: {
  661. orderNo: state.form.orderNo, //订单编号
  662. },
  663. method: "POST",
  664. showLoading: true,
  665. };
  666. requestNew(contractQuery, options).then(res => {
  667. if (res.flag) {
  668. navTo(
  669. `/subpackage/orders/product-detail?orderId=${state.form.orderNo}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  670. );
  671. } else {
  672. navTo(`/subpackage/orders/order_payment?orderId=${state.form.orderNo}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`);
  673. }
  674. })
  675. }
  676. }
  677. })
  678. .catch((err) => {
  679. console.log(err);
  680. });
  681. }
  682. //提交车辆信息
  683. const savaHandle = () => {
  684. if (!state.form.vehPosImgUrl) {
  685. msg("请上传行驶证的主页");
  686. return;
  687. }
  688. if (!state.form.vehNegImgUrl) {
  689. msg("请上传行驶证的副页");
  690. return;
  691. }
  692. if (!state.form.vehBodyUrl) {
  693. msg("请上传车头照");
  694. return;
  695. }
  696. if (!state.form.ownerName) {
  697. msg("请输入所有人");
  698. return;
  699. }
  700. if (!state.form.vehicleType) {
  701. msg("请输入车辆类型");
  702. return;
  703. }
  704. if (!state.form.character) {
  705. msg("请输入使用性质");
  706. return;
  707. }
  708. if (!state.form.vin) {
  709. msg("请输入车辆识别代号");
  710. return;
  711. }
  712. if (!state.form.engineNum) {
  713. msg("请输入发动机号码");
  714. return;
  715. }
  716. if (!state.form.approvedCountShow) {
  717. msg("请输入核定载人数");
  718. return;
  719. }
  720. if (!state.outlineL || state.outlineL == '0') {
  721. msg("请输入外廊尺寸长");
  722. return;
  723. }
  724. if (!state.outlineW || state.outlineW == '0') {
  725. msg("请输入外廊尺寸宽");
  726. return;
  727. }
  728. if (!state.outlineH || state.outlineH == '0') {
  729. msg("请输入外廊尺寸高");
  730. return;
  731. }
  732. console.log("state.form.tractorSign", state.form.tractorSign, state.form.roadTransportPermitPicUrl)
  733. if (state.form.tractorSign == 1 && !state.form.roadTransportPermitPicUrl) {
  734. msg("请上传道路运输许可证");
  735. return;
  736. }
  737. if (state.form.vanType == 1) {
  738. state.form.axleCount = 2;
  739. } else {
  740. if (!state.form.axleCount) {
  741. msg("请输入车轴数");
  742. return;
  743. }
  744. }
  745. state.form.vehicleId =
  746. state.form.vehiclePlate + "_" + state.vehiclePlateColor;
  747. state.form.opId = getItem(StorageKeys.OpenId);
  748. state.form.approvedCount = parseFloat(state.form.approvedCount);
  749. state.form.maintenaceMass = parseFloat(state.form.maintenaceMass);
  750. // state.form.totalMass = parseFloat(state.form.totalMass);
  751. state.form.permittedWeight = parseFloat(state.form.permittedWeight);
  752. state.form.permittedTowWeight = parseFloat(state.form.permittedTowWeight);
  753. console.log("state.form.approvedCountShow", state.form.approvedCountShow, state.form.approvedCountShow.toString().indexOf('人'))
  754. // return;
  755. if (state.form.approvedCountShow.toString().indexOf('人') > 0) {
  756. state.form.approvedCount = state.form.approvedCountShow.replace("人", "");
  757. } else {
  758. state.form.approvedCount = state.form.approvedCountShow;
  759. }
  760. if (state.form.maintenaceMassShow.toString().indexOf('kg') > 0) {
  761. state.form.maintenaceMass = state.form.maintenaceMassShow.replace("kg", "");
  762. } else {
  763. state.form.maintenaceMass = state.form.maintenaceMassShow;
  764. }
  765. console.log("state.form.totalMassShow", state.form.totalMassShow)
  766. if (state.form.totalMassShow.toString().indexOf('kg') > 0) {
  767. state.form.totalMass = state.form.totalMassShow.replace("kg", "");
  768. } else {
  769. state.form.totalMass = state.form.totalMassShow;
  770. }
  771. const options = {
  772. type: 2,
  773. data: state.form,
  774. method: "POST",
  775. showLoading: true,
  776. };
  777. vehicleUploadReq(state.form);
  778. };
  779. const pass = () => {
  780. state.show = false
  781. state.form.vehicleId =
  782. state.form.vehiclePlate + "_" + state.vehiclePlateColor;
  783. state.form.opId = getItem(StorageKeys.OpenId);
  784. state.form.approvedCount = parseFloat(state.form.approvedCount);
  785. state.form.maintenaceMass = parseFloat(state.form.maintenaceMass);
  786. state.form.totalMass = parseFloat(state.form.totalMass);
  787. state.form.permittedWeight = parseFloat(state.form.permittedWeight);
  788. state.form.permittedTowWeight = parseFloat(state.form.permittedTowWeight);
  789. const options = {
  790. type: 2,
  791. data: state.form,
  792. method: "POST",
  793. showLoading: true,
  794. };
  795. request(etcCarCardInfoSubmit, options).then((res) => {
  796. uni.redirectTo({
  797. url: `/subpackage/orders/product-detail?orderId=${state.form.orderNo}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  798. });
  799. })
  800. }
  801. const selectConfirm = (index : any) => {
  802. console.log(index);
  803. state.form.useUserType = state.actionSheetList[index].value;
  804. state.form.useUserTypeName = state.actionSheetList[index].text;
  805. };
  806. //选择车辆用户类型
  807. const userType = (item : any) => {
  808. if(item.value != 0) {
  809. }
  810. state.form.useUserType = item.value;
  811. state.form.useUserTypeName = item.text;
  812. state.actionSheetShow = false;
  813. }
  814. //车头照图片上传 val 1 车头照 2 道路运输证 5 委托书
  815. const cardFileImageUpdate = (val) => {
  816. uni.chooseImage({
  817. count: 1, //只能选取一张照片
  818. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  819. sourceType: ["camera", "album"], //从相册选择
  820. success: function (res) {
  821. uploadFile(res.tempFilePaths[0], val).then((data : any) => {
  822. if (val == 99) {
  823. state.form.vehBodyUrl = data.imageUrl;
  824. state.form.vehBodyUrlName = res.tempFilePaths[0];
  825. } else if (val == 100) {
  826. state.form.proxyUrl = data.imageUrl;
  827. state.form.proxyUrlName = res.tempFilePaths[0];
  828. } else if (val == 101){
  829. state.form.roadTransportPermitPicUrl = data.imageUrl;
  830. state.form.roadTransportPermitPicUrlName = res.tempFilePaths[0];
  831. }
  832. })
  833. },
  834. });
  835. };
  836. const state = reactive({
  837. phoneType: 0, // 1 身份证正面 2 身份证反面 3行驶证正面 4行驶证反面
  838. choiceIndex: 1, // 1 身份证正面 2 身份证反面
  839. isTakePhotoModeShow: false, //选择拍照方式是否出来
  840. changeColor: false,
  841. showImg: true,
  842. images: '',
  843. showOwner: false,
  844. userType: null,
  845. data: {
  846. transferLogs: [],
  847. },
  848. orcChoices: {
  849. front: false,
  850. back: false,
  851. },
  852. actionSheetShow: false,
  853. actionSheetList: [],
  854. form: {
  855. orderNo: "", //订单ID
  856. character: "", //使用性质
  857. characterName: '',
  858. characterIndex: undefined,
  859. registerDate: "请输入注册日期", //注册日期
  860. vehiclePlateColor: "",
  861. customerId: "", //用户编号
  862. vehicleId: "",
  863. vehiclePlate: "", //车牌编号
  864. issueDate: "请输入发证日期", //发证日期
  865. vehPosImgUrl: "", //行驶证正面
  866. vehNegImgUrl: "", //行驶证证反面
  867. vanType: 1, //1,客车 2.货车
  868. useUserType: 0, //车辆用户类型
  869. useUserTypeName: "普通车",
  870. vehicleSign: 2, //前/后装标识
  871. vin: "", //车辆识别代号
  872. engineNum: "", //发动机号码
  873. vehicleType: "", //车辆类型
  874. vehicleModel: "", //行驶证品牌型号
  875. approvedCount: undefined, //核定人数
  876. approvedCountShow: undefined,//展示的
  877. totalMass: undefined, //总质量
  878. totalMassShow: undefined, //总质量
  879. maintenaceMass: undefined, //整备质量
  880. maintenaceMassShow: undefined, //整备质量展示的
  881. permittedWeight: "", //核定载质量
  882. vehicleDimensions: "", //车辆尺寸
  883. permittedTowWeight: "", //准牵引总质量
  884. axleCount: 2, //车轴数
  885. ownerName: "", //车主姓名
  886. ownerIdType: "", //车主证件类型
  887. ownerIdNum: "", //车主证件号码
  888. ownerPosImgUrl: "", //车主证件正面图片
  889. ownerNegImgUrl: "", //车主证件反面图片
  890. agreementId: "", //签约编号
  891. channelId: "5201018892300000001", //编号渠道
  892. scenePayType: "", //
  893. transportIdNum: "", //道路运输证编号
  894. licenseIdNum: "", //经营许可证编号
  895. vehBodyUrl: "", //车身照片
  896. proxyUrl: "", //委托书地址
  897. roadTransportPermitPicUrl: "", //道路运输许可证
  898. opId: "",
  899. tractorSign: 0, //是否是牵引车 1 是 0 不是
  900. vehicUse: '', //使用性质
  901. feeVehicleType: '',
  902. feeVehicleTypeName:'',
  903. feeVehicleTypeIndex: undefined,
  904. "emergencyFlag": 0,
  905. "idName": "",
  906. "ownerIdAddress": "",
  907. "ownerTel": "",
  908. },
  909. vehiclePlateColor: undefined,
  910. orderNo: "",
  911. // type: undefined, //标记来源是否登录 1为未登录数据 - 需要新增地址
  912. show: false,
  913. isMyPeopple: true,
  914. outlineL: "",
  915. outlineW: "",
  916. outlineH: "",
  917. isEnableChangeOCRCarInfo: false, //申办时是否允许修改OCR识别出来的车辆信息数据
  918. items: [{
  919. value: '1',
  920. name: '是',
  921. },
  922. {
  923. value: '0',
  924. name: '否',
  925. checked: 'true'
  926. }],
  927. current: "1",
  928. });
  929. onLoad((option : any) => {
  930. state.form.orderNo = option.orderId;
  931. state.form.vanType = Number(option.vanType);
  932. state.vehiclePlateColor = option.vehiclePlateColor;
  933. state.form.vehiclePlateColor = option.vehiclePlateColor;
  934. if (option.vehicleId) {
  935. state.form.vehicleId = option.vehicleId;
  936. }
  937. console.log("option", option)
  938. // getGlobalParam();
  939. // if (option.vanType == 1) {
  940. // state.actionSheetList = [{
  941. // text: "普通车",
  942. // value: 0,
  943. // }]
  944. // } else {
  945. state.actionSheetList = [{
  946. text: "普通车",
  947. value: 0,
  948. },
  949. {
  950. text: "道路运输证经营范围仅有“货物专用运输(集装箱) ”的牵引车办理J类型集装箱",
  951. value: 24,
  952. },
  953. {
  954. text: "道路运输证经营范围不含“货物专用运输(集装箱)”的牵引车",
  955. value: 27,
  956. },
  957. {
  958. text: '道路运输证经营范围除“货物专用运输 (集装 箱)"外,还有“普通货运”等其他项目的牵引车办理J2类型集装箱',
  959. value: 28,
  960. }]
  961. // }
  962. });
  963. //外廓尺寸输入框
  964. const outlineInput = (e) => {
  965. state.form.vehicleDimensions =
  966. state.outlineL + "X" + state.outlineW + "X" + state.outlineH + "mm";
  967. };
  968. //过户检测
  969. const queryGuoHuJianCeAction = () => {
  970. var data = {
  971. orderId: state.form.orderNo,
  972. };
  973. const options = {
  974. type: 2,
  975. data: data,
  976. method: "POST",
  977. showLoading: true,
  978. };
  979. return new Promise(async (resolve, reject) => {
  980. const res = await request(queryGuoHuJianCe, options);
  981. const data = stringToJson(res.bizContent);
  982. console.log("过户检测111", data)
  983. resolve(data);
  984. }).catch((error) => {
  985. reject(error);
  986. });
  987. };
  988. //过户操作
  989. const guohuAction = (val) => {
  990. var data = {
  991. orderId: state.form.orderNo,
  992. serviceType: "USE",
  993. obuId: val.obuId,
  994. cardId: val.cardId,
  995. };
  996. const options = {
  997. type: 2,
  998. data: data,
  999. method: "POST",
  1000. showLoading: true,
  1001. };
  1002. return new Promise(async (resolve, reject) => {
  1003. const res = await request(queryGuoHuCaoZuo, options);
  1004. const data = stringToJson(res.bizContent);
  1005. state.show = false;
  1006. uni.redirectTo({
  1007. url: `/subpackage/orders/product-detail?orderId=${state.form.orderNo}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}&&isValueCard=${getItem("isValueCard")}&vehicleId=${state.form.vehicleId}`,
  1008. });
  1009. }).catch((error) => {
  1010. reject(error);
  1011. });
  1012. };
  1013. const getGlobalParam = () => {
  1014. const data = getItem('globalParam')
  1015. getCarMessage();
  1016. // console.log("全局配置数据", getCodeName('IS_ENABLE', data.applyChangeOCRCarInfo))
  1017. // // 申办时是否允许修改OCR识别出来的车辆信息数据
  1018. // if (getCodeName('IS_ENABLE', data.applyChangeOCRCarInfo) == '启用') {
  1019. // state.isEnableChangeOCRCarInfo = false;
  1020. // } else {
  1021. // state.isEnableChangeOCRCarInfo = true;
  1022. // }
  1023. // // 中办时是否允许带出车辆信息
  1024. // console.log("11", getCodeName('IS_ENABLE', data.applyCarInfo))
  1025. // if (getCodeName('IS_ENABLE', data.applyCarInfo) == '启用') {
  1026. // // 获取车辆信息
  1027. // getCarMessage()
  1028. // console.log("11")
  1029. // }
  1030. }
  1031. const getCarMessage = () => {
  1032. const options = {
  1033. type: 2,
  1034. data: {
  1035. vehicleId: state.form.vehicleId,
  1036. },
  1037. method: "POST",
  1038. showLoading: true,
  1039. };
  1040. request(carMessageApi, options).then((res) => {
  1041. const data = stringToJson(res.bizContent);
  1042. console.log("通过vehicleId查询车辆信息", data)
  1043. if (data.statusCode == 0) {
  1044. writeMsg(data.data)
  1045. }
  1046. })
  1047. }
  1048. const writeMsg = (allData) => {
  1049. console.log("车辆信息", allData);
  1050. state.form.ownerPosImgUrl = allData['ownerPosImgUrl']
  1051. state.form.ownerNegImgUrl = allData['ownerNegImgUrl']
  1052. state.form.userName = allData['contacts']
  1053. state.form.userIdNum = allData['ownerIdNum']
  1054. state.form.ownerIdNum = allData['ownerIdNum']
  1055. state.form.address = allData['ownerAddress']
  1056. state.form.tel = allData['ownerTel']
  1057. state.form.vehPosImgUrl = allData['vehPosImgUrl']
  1058. state.form.vehNegImgUrl = allData['vehNegImgUrl']
  1059. state.form.vehBodyUrl = allData['vehBodyUrl']
  1060. state.form.vehiclePlate = allData['vehiclePlate']
  1061. state.form.ownerName = allData['ownerName']
  1062. state.form.vehicleType = allData['vehicleType']
  1063. if (allData['useCharacter'] == 1) {
  1064. state.form.character = "营运" //使用性质
  1065. } else if (allData['useCharacter'] == 2) {
  1066. state.form.character = "非营运" //使用性质
  1067. } else {
  1068. state.form.character = "未知" //使用性质
  1069. }
  1070. state.form.vin = allData['vin']
  1071. state.form.engineNum = allData['engineNum']
  1072. state.form.registerDate = allData['registerDate']
  1073. state.form.issueDate = allData['issueDate']
  1074. state.form.approvedCountShow = allData['approvedCount']
  1075. state.form.maintenaceMassShow = allData['maintenaceMass']
  1076. state.form.approvedCount = allData['approvedCount']
  1077. state.form.maintenaceMass = allData['maintenaceMass']
  1078. allData['vehicleDimensions']
  1079. state.form.vehicleDimensions = allData['vehicleDimensions']
  1080. let arr = allData['vehicleDimensions'].split("X");
  1081. state.outlineL = parseInt(arr[0]); //外廓 长
  1082. state.outlineW = parseInt(arr[1]); //外廓 宽
  1083. state.outlineH = parseInt(arr[2].substring(0, arr[2].length - 2)); //外廓 高
  1084. state.form.totalMassShow = allData['totalMass']
  1085. state.form.totalMass = allData['totalMass']
  1086. state.form.axleCount = allData['axleCount'] ? allData['axleCount'] : 2
  1087. if (allData['useUserType'] == 0) {
  1088. state.form.useUserTypeName = "普通车"
  1089. } else if (allData['useUserType'] == 24) {
  1090. state.form.useUserTypeName = "道路运输证经营范围仅有“货物专用运输(集装箱) ”的牵引车办理J类型集装箱"
  1091. } else if (allData['useUserType'] == 27) {
  1092. state.form.useUserTypeName = "道路运输证经营范围不含“货物专用运输(集装箱)”的牵引车"
  1093. } else if (allData['useUserType'] == 28) {
  1094. state.form.useUserTypeName = "道路运输证经营范围除'货物专用运输 (集装 箱)'外,还有“普通货运”等其他项目的牵引车办理J2类型集装箱"
  1095. }
  1096. state.vehiclePlateColor = allData['vehiclePlateColor']
  1097. state.form.customerId = allData['customerId']
  1098. state.form.vehicleModel = allData['vehicleModel']
  1099. state.form.permittedWeight = allData['permittedWeight'] ? allData['permittedWeight'] : 0;
  1100. state.form.permittedTowWeight = allData['permittedTowWeight']
  1101. state.changeColor = true
  1102. if (allData['tractorSign'] == "1") {
  1103. qian()
  1104. state.form.roadTransportPermitPicUrl = allData['roadTransportPermitPicUrl']
  1105. } else {
  1106. notQian()
  1107. }
  1108. }
  1109. const bindDateChange1 = (e) => {
  1110. state.form.registerDate = e.detail.value
  1111. state.changeColor = true;
  1112. }
  1113. const bindDateChange2 = (e) => {
  1114. state.form.issueDate = e.detail.value
  1115. state.changeColor = true;
  1116. }
  1117. const takePhoto = (val) => {
  1118. console.log("拍照", val)
  1119. state.phoneType = val;
  1120. state.showImg = true;
  1121. }
  1122. const ocrResult = (data) => {
  1123. state.changeColor = true;
  1124. console.log('输出内容=====================', state.choiceIndex)
  1125. console.log("上传数据:", data)
  1126. if (state.choiceIndex === "3") {
  1127. // 行驶证正面
  1128. if (data.plate_a.length > 8) {
  1129. state.form.vehiclePlate = data.plate_a.substring(0, 8);
  1130. } else {
  1131. state.form.vehiclePlate = data.plate_a;
  1132. }
  1133. state.form.ownerName = data.man;
  1134. state.form.vehicleType = data.vehicle;
  1135. state.form.character = data.character;
  1136. state.form.vin = data.vin;
  1137. state.form.engineNum = data.engine;
  1138. state.form.registerDate = data.register;
  1139. state.form.issueDate = data.issue;
  1140. state.form.vehPosImgUrl = data.imageUrl;
  1141. state.form.vehPosImgUrlName = data.imageName;
  1142. state.form.vehicleModel = data.model;
  1143. console.log("走不是牵引车的", data.vehicle.indexOf('牵引车'), data.vehicle)
  1144. if (data.vehicle.indexOf('牵引车') > 0) {
  1145. console.log("是牵引车的")
  1146. qian()
  1147. } else {
  1148. console.log("走不是牵引车的")
  1149. notQian()
  1150. }
  1151. state.orcChoices.front = true;
  1152. if(state.orcChoices.front && state.orcChoices.back) {
  1153. getCharacter(state.form)
  1154. }
  1155. } else if (state.choiceIndex === "4") {
  1156. // 行驶证反面
  1157. state.form.approvedCount = data.apc;
  1158. state.form.approvedCountShow = data.apc;
  1159. state.form.maintenaceMass = data.unladen;
  1160. state.form.maintenaceMassShow = data.unladen;
  1161. // 91接口差
  1162. // // #ifdef MP-WEIXIN
  1163. // state.form.vehicleDimensions = data.overall.replaceAll("×", "X");
  1164. // // #endif
  1165. // // #ifdef MP-ALIPAY
  1166. // state.form.vehicleDimensions = data.overall.replace(/×/g, "X");
  1167. // // #endif
  1168. // let arr = data.overall.split("×");
  1169. // #ifdef MP-WEIXIN
  1170. state.form.vehicleDimensions = data.overall.replaceAll("x", "X");
  1171. // #endif
  1172. // #ifdef MP-ALIPAY
  1173. state.form.vehicleDimensions = data.overall.replace(/x/g, "X");
  1174. // #endif
  1175. let arr = state.form.vehicleDimensions.split("X");
  1176. state.outlineL = arr[0]; //外廓 长
  1177. state.outlineW = arr[1]; //外廓 宽
  1178. state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高
  1179. state.form.totalMass = data.gross ? data.gross : 0;
  1180. state.form.totalMassShow = data.gross ? data.gross : 0;
  1181. console.log("state.form.totalMassShow", state.form.totalMassShow)
  1182. state.form.vehNegImgUrl = data.imageUrl;
  1183. state.form.vehNegImgUrlName = data.imageName;
  1184. state.form.permittedWeight = data.alc ? data.alc : 0;
  1185. state.form.permittedTowWeight = data.towing ? data.towing : 0;
  1186. console.log('=====================', state.form.vehNegImgUrl, state)
  1187. state.orcChoices.back = true;
  1188. if(state.orcChoices.front && state.orcChoices.back) {
  1189. getCharacter(state.form)
  1190. }
  1191. } else if (state.choiceIndex === "1") {
  1192. // 车主身份证正面
  1193. state.form.idName = data.name;
  1194. state.form.ownerIdNum = data.idno;
  1195. state.form.ownerIdAddress = data.address;
  1196. state.form.ownerPosImgUrl = data.imageUrl;
  1197. state.form.ownerPosImgUrlName = data.imageName;
  1198. } else if (state.choiceIndex === "2") {
  1199. // 车主身份证反面
  1200. state.form.ownerNegImgUrl = data.imageUrl;
  1201. state.form.ownerNegImgUrlName = data.imageName;
  1202. } else if (state.choiceIndex === "5") {
  1203. // 委托书
  1204. state.form.proxyUrl = data.imageUrl;
  1205. state.form.proxyUrlName = data.imageName;
  1206. }
  1207. }
  1208. //营业执照Orc接口调用
  1209. const cardImageOcrYY = () => {
  1210. uni.chooseImage({
  1211. count: 1, //只能选取一张照片
  1212. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  1213. sourceType: ["camera", "album"], //从相册选择
  1214. success: function (res) {
  1215. uploadFile(res.tempFilePaths[0], "5").then((data : any) => {
  1216. console.log("data", data)
  1217. state.form.idName = data.unitName;
  1218. state.form.ownerIdNum = data.screditCode;
  1219. state.form.ownerIdAddress = data.adress;
  1220. // state.form.ownerTel = data.address;
  1221. state.form.ownerPosImgUrl = data.imageUrl;
  1222. state.form.ownerPosImgUrlName = data.imageName;
  1223. })
  1224. },
  1225. });
  1226. };
  1227. const takePhotoMode = (index) => {
  1228. console.log("index", index)
  1229. state.isTakePhotoModeShow = true
  1230. state.choiceIndex = index
  1231. }
  1232. const radioChange = (evt) => {
  1233. console.log("evt.detail.value", evt.detail.value)
  1234. for (let i = 0; i < state.items.length; i++) {
  1235. if (state.items[i].value === evt.detail.value) {
  1236. state.current = i;
  1237. state.form.tractorSign = evt.detail.value;
  1238. break;
  1239. }
  1240. }
  1241. }
  1242. // 牵引车
  1243. const qian = () => {
  1244. state.items = [{
  1245. value: '1',
  1246. name: '是',
  1247. checked: 'true'
  1248. },
  1249. {
  1250. value: '0',
  1251. name: '否',
  1252. }]
  1253. for (let i = 0; i < state.items.length; i++) {
  1254. console.log("")
  1255. if (state.items[i].value === '1') {
  1256. state.current = i;
  1257. state.form.tractorSign = 1;
  1258. break;
  1259. }
  1260. }
  1261. }
  1262. // 不是牵引车
  1263. const notQian = () => {
  1264. state.items = [{
  1265. value: '1',
  1266. name: '是',
  1267. },
  1268. {
  1269. value: '0',
  1270. name: '否',
  1271. checked: 'true'
  1272. }]
  1273. for (let i = 0; i < state.items.length; i++) {
  1274. console.log("不是牵引车", state.items[i].value, state.items[i].value === '0')
  1275. if (state.items[i].value === '0') {
  1276. state.current = i;
  1277. state.form.tractorSign = 0;
  1278. break;
  1279. }
  1280. }
  1281. }
  1282. </script>
  1283. <style lang="scss" scoped>
  1284. .content-warp {}
  1285. .hui {
  1286. color: #ccc;
  1287. }
  1288. .hei {
  1289. color: black;
  1290. }
  1291. .goto {
  1292. margin-right: 20rpx;
  1293. padding: 10rpx;
  1294. color: #00b38b;
  1295. border: 1rpx solid #00b38b;
  1296. border-radius: 20rpx;
  1297. }
  1298. .flex {
  1299. display: flex;
  1300. align-items: center;
  1301. }
  1302. .bettwen-center {
  1303. display: flex;
  1304. align-items: center;
  1305. justify-content: space-between;
  1306. }
  1307. .card {
  1308. margin: 20rpx;
  1309. height: 150rpx;
  1310. background: #ffffff;
  1311. box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8);
  1312. border-radius: 20rpx;
  1313. padding: 20rpx;
  1314. display: flex;
  1315. justify-content: space-between;
  1316. align-items: center;
  1317. margin-bottom: 30rpx;
  1318. .card-left {
  1319. display: flex;
  1320. align-items: center;
  1321. image {
  1322. width: 100rpx;
  1323. height: 90rpx;
  1324. }
  1325. .card-center {
  1326. margin-left: 30rpx;
  1327. .card-center-head {
  1328. font-size: 32rpx;
  1329. font-family: Noto Sans S Chinese;
  1330. font-weight: 400;
  1331. color: #333333;
  1332. }
  1333. .tips {
  1334. font-size: 26rpx;
  1335. font-family: Noto Sans S Chinese;
  1336. font-weight: 400;
  1337. color: #666666;
  1338. .tips-card {
  1339. width: 70rpx;
  1340. height: 40rpx;
  1341. background: #d3f2ef;
  1342. border-radius: 6rpx;
  1343. font-size: 20rpx;
  1344. font-family: Noto Sans S Chinese;
  1345. font-weight: 400;
  1346. color: #0a8f8a;
  1347. padding: 5rpx 10rpx;
  1348. margin-left: 20rpx;
  1349. }
  1350. }
  1351. }
  1352. }
  1353. .choose-item {
  1354. margin-right: 20rpx;
  1355. width: 50rpx;
  1356. height: 50rpx;
  1357. border: 1rpx solid #00b38b;
  1358. border-radius: 50%;
  1359. display: flex;
  1360. justify-content: center;
  1361. align-items: center;
  1362. .active {
  1363. width: 38rpx;
  1364. height: 38rpx;
  1365. background: #00b38b;
  1366. border-radius: 50%;
  1367. }
  1368. }
  1369. }
  1370. .content {
  1371. position: absolute;
  1372. top: 370rpx;
  1373. width: 100%;
  1374. min-height: calc(100% - 370rpx);
  1375. box-sizing: border-box;
  1376. padding: 0 30rpx 210rpx;
  1377. .t-card {
  1378. width: 100%;
  1379. background-color: #fff;
  1380. border-radius: 12rpx;
  1381. padding: 40rpx 30rpx 30rpx;
  1382. box-sizing: border-box;
  1383. }
  1384. .img-pos {
  1385. position: absolute;
  1386. left: 270rpx;
  1387. top: -38rpx;
  1388. right: 50rpx;
  1389. .img-flex {
  1390. display: flex;
  1391. justify-content: space-between;
  1392. align-items: center;
  1393. .car-img {
  1394. width: 86rpx;
  1395. height: 42rpx;
  1396. }
  1397. .flag-img {
  1398. width: 30rpx;
  1399. height: 35rpx;
  1400. }
  1401. }
  1402. }
  1403. .action {
  1404. position: absolute;
  1405. bottom: 0rpx;
  1406. left: 0;
  1407. height: 188rpx;
  1408. background-color: #fff;
  1409. border-radius: 30rpx 30rpx 0 0;
  1410. width: 100vw;
  1411. display: flex;
  1412. align-items: center;
  1413. justify-content: center;
  1414. flex-direction: column;
  1415. .btn-tip {
  1416. font-family: SourceHanSansSC, SourceHanSansSC;
  1417. font-weight: 400;
  1418. font-size: 24rpx;
  1419. color: #CCB375;
  1420. margin-bottom: 14rpx;
  1421. }
  1422. }
  1423. .item-tips {
  1424. .title {
  1425. font-size: 30rpx;
  1426. font-family: Microsoft YaHei;
  1427. font-weight: 500;
  1428. color: #01243A;
  1429. line-height: 30rpx;
  1430. }
  1431. .tip {
  1432. margin-top: 16rpx;
  1433. font-size: 24rpx;
  1434. font-family: Microsoft YaHei;
  1435. font-weight: 400;
  1436. color: #999999;
  1437. line-height: 24rpx;
  1438. }
  1439. }
  1440. .picture-wrapper {
  1441. margin-top: 30rpx;
  1442. .bg {
  1443. background: #F5F9FB;
  1444. border-radius: 10rpx;
  1445. padding: 40rpx 30rpx;
  1446. display: flex;
  1447. // align-items: center;
  1448. justify-content: space-between;
  1449. .name {
  1450. padding-top: 30rpx;
  1451. font-size: 32rpx;
  1452. font-family: SourceHanSansSC, SourceHanSansSC;
  1453. font-weight: 500;
  1454. color: #111;
  1455. line-height: 34rpx;
  1456. }
  1457. .value {
  1458. margin-top: 20rpx;
  1459. font-size: 22rpx;
  1460. font-family: SourceHanSansSC, SourceHanSansSC;
  1461. font-weight: 400;
  1462. color: #999999;
  1463. line-height: 24rpx;
  1464. }
  1465. .tip {
  1466. margin-top: 20rpx;
  1467. text-align: center;
  1468. width: 100rpx;
  1469. height: 30rpx;
  1470. // background: rgba(204, 179, 117);
  1471. border-radius: 6rpx;
  1472. border: 1rpx solid #CCB375;
  1473. .tip-value {
  1474. font-size: 20rpx;
  1475. font-family: Microsoft YaHei;
  1476. font-weight: 400;
  1477. color: #CCB375;
  1478. line-height: 30rpx;
  1479. opacity: 1;
  1480. }
  1481. }
  1482. }
  1483. .icon {
  1484. width: 304rpx;
  1485. height: 190rpx;
  1486. background-image: var(--bgimg);
  1487. background-size: 100% 100%;
  1488. background-repeat: no-repeat;
  1489. }
  1490. }
  1491. .shibie-wrapper {
  1492. margin-top: 30rpx;
  1493. border-radius: 12rpx;
  1494. background-color: #fff;
  1495. width: 100%;
  1496. padding: 30rpx;
  1497. box-sizing: border-box;
  1498. .title {
  1499. font-size: 30rpx;
  1500. font-family: Microsoft YaHei;
  1501. font-weight: 500;
  1502. color: #01243A;
  1503. line-height: 30rpx;
  1504. }
  1505. }
  1506. .buchong-wrapper {
  1507. margin-top: 60rpx;
  1508. .title {
  1509. font-size: 30rpx;
  1510. font-family: Microsoft YaHei;
  1511. font-weight: 400;
  1512. color: #000000;
  1513. line-height: 30rpx;
  1514. }
  1515. }
  1516. .green-tip {
  1517. margin-top: 50rpx;
  1518. font-size: 24rpx;
  1519. font-family: Microsoft YaHei;
  1520. font-weight: 400;
  1521. color: #00b38b;
  1522. line-height: 24rpx;
  1523. margin-bottom: 60rpx;
  1524. }
  1525. }
  1526. .form-item {
  1527. display: flex;
  1528. font-size: 28rpx;
  1529. justify-content: space-between;
  1530. align-items: center;
  1531. min-height: 70rpx;
  1532. .l-label {
  1533. font-size: 28rpx;
  1534. color: #004576;
  1535. display: flex;
  1536. align-items: center;
  1537. .icon-img {
  1538. align-items: center;
  1539. margin-right: 8rpx;
  1540. width: 8rpx;
  1541. height: 8rpx;
  1542. display: flex;
  1543. }
  1544. }
  1545. }
  1546. .form-item label {}
  1547. .form-item .input-box {
  1548. display: flex;
  1549. align-items: center;
  1550. }
  1551. .form-item .select {
  1552. flex: 1;
  1553. background: #f1f1f1;
  1554. padding: 6rpx 20rpx;
  1555. margin: 0 10rpx;
  1556. min-height: 48rpx;
  1557. line-height: 48rpx;
  1558. border-radius: 8rpx;
  1559. }
  1560. .form-item .icon {
  1561. width: 28rpx;
  1562. height: 32rpx;
  1563. }
  1564. .form-item .input-box input {
  1565. width: 90rpx;
  1566. background: #f1f1f1;
  1567. border-radius: 8rpx;
  1568. padding: 0 5rpx;
  1569. }
  1570. .form-item .sub-text {
  1571. color: #808080;
  1572. padding-left: 10rpx;
  1573. }
  1574. .form-item .sub-label {
  1575. padding: 0 10rpx;
  1576. }
  1577. .window {
  1578. padding: 60rpx 30rpx;
  1579. }
  1580. .window .window-item {
  1581. border: 1px solid #00b38b;
  1582. background: rgba(0, 179, 139, .1);
  1583. border-radius: 10rpx;
  1584. padding: 16rpx 30rpx;
  1585. font-size: 30rpx;
  1586. margin-bottom: 10rpx;
  1587. }
  1588. ::v-deep .u-input__input {
  1589. background: transparent;
  1590. }
  1591. .choice-takePhoto {
  1592. position: absolute;
  1593. bottom: 0;
  1594. background-color: white;
  1595. width: 100%;
  1596. border-radius: 20rpx 20rpx 0 0;
  1597. }
  1598. .choice-takePhoto>view:first-child {
  1599. text-align: center;
  1600. height: 80rpx;
  1601. line-height: 80rpx;
  1602. border-bottom: 1rpx solid rgba(127, 127, 127, 0.3);
  1603. background-color: white;
  1604. }
  1605. .choice-takePhoto>view:last-child {
  1606. text-align: center;
  1607. height: 80rpx;
  1608. line-height: 80rpx;
  1609. border-top: 6rpx solid rgba(127, 127, 127, 0.1);
  1610. background-color: white;
  1611. }
  1612. .choice-takePhoto>view {
  1613. text-align: center;
  1614. height: 80rpx;
  1615. line-height: 80rpx;
  1616. background-color: white;
  1617. }
  1618. .choice-takePhoto-wrap {
  1619. width: 100%;
  1620. height: 100vh;
  1621. background-color: rgba(127, 127, 127, 0.2);
  1622. position: fixed;
  1623. left: 0;
  1624. top: 0;
  1625. z-index: 11111;
  1626. }
  1627. .tractor {
  1628. font-size: 32rpx;
  1629. margin-top: 40rpx;
  1630. }
  1631. .tractor .title {
  1632. margin-right: 60rpx;
  1633. }
  1634. // .tractor .title .label {
  1635. // margin-right: 40rpx !important;
  1636. // }
  1637. .ownerRadio {
  1638. transform: scale(0.8);
  1639. /* 调整缩放比例 */
  1640. margin-right: 10rpx;
  1641. }
  1642. .left-owner-radio {
  1643. margin-right: 50px;
  1644. }
  1645. </style>