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

vehicle-change-chepai-write.vue 36KB

3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
3ヶ月前
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072
  1. <template>
  2. <view class="bg">
  3. <view class="title_wrap"><text class="title">变更基本信息</text></view>
  4. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  5. <u-form-item label="旧车牌号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  6. borderBottom>
  7. <u-input v-model="state.form.vehiclePlate" input-align='right' disabled/>
  8. </u-form-item>
  9. <u-form-item label="旧车牌颜色" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  10. borderBottom>
  11. <view class="showworld">{{getCodeName('VEHICLE_COLOR_TYPE',state.form.vehiclePlateColor)}}</view>
  12. </u-form-item>
  13. <u-form-item label="新车牌号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  14. borderBottom>
  15. <u-input v-model="state.form.vehiclePlateNew" input-align='right' disabled/>
  16. </u-form-item>
  17. <u-form-item label="新车牌颜色" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  18. borderBottom>
  19. <view class="showworld">{{getCodeName('VEHICLE_COLOR_TYPE',state.form.vehiclePlateColorNew)}}</view>
  20. </u-form-item>
  21. <u-form-item label="OBU卡号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  22. borderBottom>
  23. <u-input v-model="state.form.obuId" inputAlign="right" disabled/>
  24. </u-form-item>
  25. <u-form-item label="ETC卡号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  26. borderBottom>
  27. <u-input v-model="state.form.cardId" inputAlign="right" disabled/>
  28. </u-form-item>
  29. <view class="picture-wrapper" @click="takePhotoMode('3')">
  30. <view class="bg1">
  31. <view class="">
  32. <view class="name"> 新车牌行驶证主页 </view>
  33. <view class="value"> 上传行驶证的主页 </view>
  34. <view class="tip">
  35. <view class="tip-value"> 拍摄规范 </view>
  36. </view>
  37. </view>
  38. <image v-if="!state.form.vehPosImgUrl" class="icon" :src="`${$imgUrl}issuance/xz.png`"
  39. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  40. </image>
  41. <image v-else class="icon" :src="strReplace(state.form.vehPosImgUrl)"
  42. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  43. </view>
  44. </view>
  45. <view class="picture-wrapper" @click="takePhotoMode('4')">
  46. <view class="bg1">
  47. <view class="">
  48. <view class="name"> 新车牌行驶证副页 </view>
  49. <view class="value"> 上传行驶证的副页 </view>
  50. <view class="tip">
  51. <view class="tip-value"> 拍摄规范 </view>
  52. </view>
  53. </view>
  54. <image v-if="!state.form.vehNegImgUrl" class="icon" :src="`${$imgUrl}issuance/xf.png`"
  55. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  56. </image>
  57. <image v-else class="icon" :src="strReplace(state.form.vehNegImgUrl)"
  58. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  59. </view>
  60. </view>
  61. </u-form>
  62. </view>
  63. <view class="bg">
  64. <view class="title_wrap"><text class="title">车辆信息</text></view>
  65. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  66. <u-form-item label="车辆所有人姓名" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  67. borderBottom>
  68. <u-input v-model="state.form.ownerName" input-align='right'/>
  69. </u-form-item>
  70. <u-form-item label="车辆类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  71. borderBottom>
  72. <u-input v-model="state.form.vehicleType" input-align='right'/>
  73. </u-form-item>
  74. <u-form-item label="证件类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  75. borderBottom>
  76. <u-input v-model="state.form.ownerIdTypeStr" type="select" @click="show1 = true" input-align='right'/>
  77. </u-form-item>
  78. <u-form-item label="证件号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  79. borderBottom>
  80. <u-input v-model="state.form.ownerIdNum" input-align='right'/>
  81. </u-form-item>
  82. <u-form-item label="地址" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  83. borderBottom>
  84. <u-input v-model="state.form.ownerAddress" input-align='right'/>
  85. </u-form-item>
  86. <u-form-item label="发证日期" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  87. borderBottom>
  88. <u-input v-model="state.form.issueDate" input-align='right'/>
  89. </u-form-item>
  90. <u-form-item label="总质量(kg)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  91. <u-input inputAlign="right" placeholder="请输入总质量" v-model="state.form.totalMass"
  92. />
  93. </u-form-item>
  94. <u-form-item label="整备质量(kg)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  95. <u-input inputAlign="right" placeholder="请输入整备质量" v-model="state.form.maintenanceMass" />
  96. </u-form-item>
  97. <u-form-item label="准牵引总质量(kg)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' v-if="state.form.permittedTowWeight">
  98. <u-input inputAlign="right" placeholder="请输入牵引质量" v-model="state.form.permittedTowWeight"/>
  99. </u-form-item>
  100. <u-form-item label="车轴数(轴)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  101. <u-input inputAlign="right" placeholder="请输入车轴数" v-model="state.form.axleCount" @blur="changeAxleCount"/>
  102. </u-form-item>
  103. <u-form-item label="车轮数" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  104. <u-input inputAlign="right" placeholder="请输入车轮数" v-model="state.form.wheelCount"/>
  105. </u-form-item>
  106. <u-form-item label="外廓尺寸(mm)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  107. <u-input inputAlign="right" placeholder="请输入外廓尺寸" v-model="state.form.outsideDimensions" />
  108. </u-form-item>
  109. <u-form-item label="核定载人数(人)" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  110. <u-input inputAlign="right" placeholder="请输入核定载人数" v-model="state.form.approvedCount" />
  111. </u-form-item>
  112. <u-form-item label="发动机号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  113. <u-input inputAlign="right" placeholder="请输入发动机号码" v-model="state.form.engineNum" />
  114. </u-form-item>
  115. <u-form-item label="车辆识别号" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'>
  116. <u-input inputAlign="right" placeholder="请输入车辆识别号" v-model="state.form.vin"/>
  117. </u-form-item>
  118. <u-form-item label="车辆用户类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  119. borderBottom>
  120. <u-input v-model="state.form.vehicleCustomerTypeName" type="select" @click="show4 = true" input-align='right'/>
  121. </u-form-item>
  122. <view class="picture-wrapper" @click="cardFileImageUpdate(1)">
  123. <view class="bg1">
  124. <view class="">
  125. <view class="name"> 车身45°照 </view>
  126. <view class="value"> 上传汽车的45°照 </view>
  127. <view class="tip">
  128. <view class="tip-value"> 拍摄规范 </view>
  129. </view>
  130. </view>
  131. <image v-if="!state.form.vehBodyUrl" class="icon" :src="`${$imgUrl}issuance/chetou45.png`"
  132. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  133. </image>
  134. <image v-else class="icon" :src="strReplace(state.form.vehBodyUrl)"
  135. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  136. </view>
  137. </view>
  138. <view class="picture-wrapper" @click="cardFileImageUpdate(2)">
  139. <view class="bg1">
  140. <view class="">
  141. <view class="name"> 车头照 </view>
  142. <view class="value"> 上传车辆车头照 </view>
  143. <view class="tip">
  144. <view class="tip-value"> 拍摄规范 </view>
  145. </view>
  146. </view>
  147. <image v-if="!state.form.vehFrontUrl" class="icon" :src="`${$imgUrl}issuance/chetou.png`"
  148. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  149. </image>
  150. <image v-else class="icon" :src="strReplace(state.form.vehFrontUrl)"
  151. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  152. </view>
  153. </view>
  154. <u-form-item label="是否本人办理" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' v-if="state.form.userType==1">
  155. <view class="right-show">
  156. <radio-group @change="radioChange">
  157. <label style="margin-right: 60rpx;" class="uni-list-cell uni-list-cell-pd "
  158. v-for="(item, index) in state.items" :key="item.value">
  159. <radio :value="item.value" :checked="index+1 === state.form.isMyselfHandle" />{{item.name}}
  160. </label>
  161. </radio-group>
  162. </view>
  163. </u-form-item>
  164. <view v-if="state.form.userType==1">
  165. <view class="picture-wrapper" @click="takePhotoMode(1)" >
  166. <view class="bg1">
  167. <view class="">
  168. <view class="name"> 人像面 </view>
  169. <view class="value"> 开户人身份证的人像面 </view>
  170. <view class="tip">
  171. <view class="tip-value"> 拍摄规范 </view>
  172. </view>
  173. </view>
  174. <image v-if="!state.form.customerPosImgurl" class="icon" :src="`${$imgUrl}issuance/sfz.png`"
  175. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  176. </image>
  177. <image v-else class="icon" :src="strReplace(state.form.customerPosImgurl)"
  178. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  179. </view>
  180. </view>
  181. <view class="picture-wrapper" @click="takePhotoMode(2)">
  182. <view class="bg1">
  183. <view class="">
  184. <view class="name"> 国徽面 </view>
  185. <view class="value"> 开户人身份证的国徽面 </view>
  186. <view class="tip">
  187. <view class="tip-value"> 拍摄规范 </view>
  188. </view>
  189. </view>
  190. <image v-if="!state.form.customerNegImgurl" class="icon" :src="`${$imgUrl}issuance/sff.png`"
  191. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}">
  192. </image>
  193. <image v-else class="icon" :src="strReplace(state.form.customerNegImgurl)"
  194. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  195. </view>
  196. </view>
  197. <u-form-item label="用户姓名" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  198. <u-input v-model="state.form.customerName" placeholder='用户姓名'
  199. maxlength="20" inputAlign="right"/>
  200. </u-form-item>
  201. <u-form-item label="用户证件类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  202. <u-input v-model="state.form.customerIdTypeStr" type="select" @click="show2 = true" input-align='right'/>
  203. </u-form-item>
  204. <u-form-item label="用户证件号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  205. <u-input placeholder='请输入用户证件号码' type="idcard" v-model="state.form.customerIdNum"
  206. maxlength="18" inputAlign="right"/>
  207. </u-form-item>
  208. <view class="picture-wrapper" @click="cardFileImageUpdate(3)" v-if="state.form.isMyselfHandle==2">
  209. <view class="bg1">
  210. <view class="">
  211. <view class="name"> 开户人授权书 </view>
  212. <view class="value"> 上传授权书 </view>
  213. <view class="tip">
  214. <view class="tip-value"> 拍摄规范 </view>
  215. </view>
  216. </view>
  217. <image v-if="!state.form.ownerLetterOfAuthorizationImgUrl" class="icon" :src="`${$imgUrl}issuance/weituo.png`"
  218. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  219. </image>
  220. <image v-else class="icon" :src="strReplace(state.form.ownerLetterOfAuthorizationImgUrl)"
  221. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  222. </view>
  223. </view>
  224. </view>
  225. <view v-if="state.form.userType==2">
  226. <view class="picture-wrapper" @click="takePhotoMode(1)" >
  227. <view class="bg1">
  228. <view class="">
  229. <view class="name"> 人像面 </view>
  230. <view class="value"> 经办人身份证的人像面 </view>
  231. <view class="tip">
  232. <view class="tip-value"> 拍摄规范 </view>
  233. </view>
  234. </view>
  235. <image v-if="!state.form.agentPosImgurl" class="icon" :src="`${$imgUrl}issuance/sfz.png`"
  236. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  237. </image>
  238. <image v-else class="icon" :src="strReplace(state.form.agentPosImgurl)"
  239. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  240. </view>
  241. </view>
  242. <view class="picture-wrapper" @click="takePhotoMode(2)">
  243. <view class="bg1">
  244. <view class="">
  245. <view class="name"> 国徽面 </view>
  246. <view class="value"> 经办人身份证的国徽面 </view>
  247. <view class="tip">
  248. <view class="tip-value"> 拍摄规范 </view>
  249. </view>
  250. </view>
  251. <image v-if="!state.form.agentNegImgurl" class="icon" :src="`${$imgUrl}issuance/sff.png`"
  252. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}">
  253. </image>
  254. <image v-else class="icon" :src="strReplace(state.form.agentNegImgurl)"
  255. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png`}"></image>
  256. </view>
  257. </view>
  258. <u-form-item label="经办人姓名" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  259. <u-input v-model="state.form.agentName" placeholder='经办人姓名'
  260. maxlength="20" inputAlign="right"/>
  261. </u-form-item>
  262. <u-form-item label="经办人证件类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  263. <u-input v-model="state.form.agentIdTypeStr" type="select" @click="show3 = true" input-align='right'/>
  264. </u-form-item>
  265. <u-form-item label="经办人证号号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  266. <u-input placeholder='请输入证件号码' type="idcard" v-model="state.form.agentIdNum"
  267. maxlength="18" inputAlign="right"/>
  268. </u-form-item>
  269. <u-form-item label="部门" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' borderBottom>
  270. <u-input placeholder='请输入部门' v-model="state.form.department" inputAlign="right"/>
  271. </u-form-item>
  272. <view class="picture-wrapper" @click="cardFileImageUpdate(4)">
  273. <view class="bg1">
  274. <view class="">
  275. <view class="name"> 单位授权书 </view>
  276. <view class="value"> 上传授权书 </view>
  277. <view class="tip">
  278. <view class="tip-value"> 拍摄规范 </view>
  279. </view>
  280. </view>
  281. <image v-if="!state.form.unitAuthorizationLetterImgUrl" class="icon" :src="`${$imgUrl}issuance/weituo.png`"
  282. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  283. </image>
  284. <image v-else class="icon" :src="strReplace(state.form.unitAuthorizationLetterImgUrl)"
  285. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  286. </view>
  287. </view>
  288. </view>
  289. <u-form-item label="是否牵引车" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon' v-if="state.form.vanType==2 || state.form.vanType==3">
  290. <radio-group @change="radioChangeqyc">
  291. <view class="right-show">
  292. <label style="margin-right: 60rpx;" class="uni-list-cell uni-list-cell-pd "
  293. v-for="(item, index) in state.itemsqyc" :key="item.value">
  294. <radio :value="item.value" :checked="index === state.form.isTractor" />{{item.name}}
  295. </label>
  296. </view>
  297. </radio-group>
  298. </u-form-item>
  299. <view class="picture-wrapper" @click="cardFileImageUpdate(5)" v-if="state.form.isTractor==1">
  300. <view class="bg1">
  301. <view class="">
  302. <view class="name"> 道路运输许可证 </view>
  303. <view class="value"> 上传道路运输许可证 </view>
  304. <view class="tip">
  305. <view class="tip-value"> 拍摄规范 </view>
  306. </view>
  307. </view>
  308. <image v-if="!state.form.roadTransportPermitPicUrl" class="icon" :src="`${$imgUrl}issuance/chetou.png`"
  309. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}">
  310. </image>
  311. <image v-else class="icon" :src="strReplace(state.form.roadTransportPermitPicUrl)"
  312. :style="{'--bgimg':`url(${$imgUrl}issuance/bg-border.png)`}"></image>
  313. </view>
  314. </view>
  315. </u-form>
  316. </view>
  317. <view class="bg">
  318. <u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle'>
  319. <u-form-item label="手机号码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  320. borderBottom>
  321. <u-input v-model="state.form.ownerTel" input-align='right' disabled/>
  322. </u-form-item>
  323. <u-form-item label="验证码" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
  324. borderBottom>
  325. <view style="display: flex;align-items: center;flex-shrink: 0;">
  326. <u-input v-model="state.code" input-align='right' maxlength="6"/>
  327. <text @click="getCode" v-if="waitTime==0" class="search">获取验证码</text>
  328. <text class="search" v-else>{{waitTime}}后重试</text>
  329. </view>
  330. </u-form-item>
  331. </u-form>
  332. </view>
  333. <view class="action">
  334. <button type="default" class="ui-btn" @click="savaHandle()">
  335. 提交
  336. </button>
  337. </view>
  338. <!-- 选择证件类型 -->
  339. <u-select v-model="show1" :list="state.ownerIdTypeRange" @confirm="changeOwnerIdType"></u-select>
  340. <!-- 用户证件类型 -->
  341. <u-select v-model="show2" :list="state.ownerIdTypeRange" @confirm="changeCustomerIdType"></u-select>
  342. <!-- 经办人证件类型 -->
  343. <u-select v-model="show3" :list="state.ownerIdTypeRange" @confirm="changeAgentIdType"></u-select>
  344. <u-select v-model="show4" :list="state.vehicleCustomerTypeRange" @confirm="vehicleCustomerTypeType"></u-select>
  345. <view class="choice-takePhoto-wrap" v-if="state.isTakePhotoModeShow" @click="cancle">
  346. <view class="choice-takePhoto">
  347. <view @click.stop="takePhoto(state.choiceIndex)" style="border-radius: 20rpx 20rpx 0 0;">拍照</view>
  348. <view @click.stop="xiangce(state.choiceIndex)">从手机相册选择</view>
  349. <view @click.stop="cancle">取消</view>
  350. </view>
  351. </view>
  352. <viewfinder v-if="state.phoneType" :phoneType="state.phoneType" :images="state.images" :showStartPhoto="state.showImg"
  353. @confirmReturn="confirmReturn" @camera="camera"></viewfinder>
  354. </template>
  355. <script setup lang="ts">
  356. import { navTo,uploadFile,strReplace,msg,chooseImageCompress,checkStr} from "@/utils/utils";
  357. import { reactive,ref } from "vue";
  358. import carNumberInput from "@/components/car-number-input/car-number-input.vue";
  359. import { onLoad } from "@dcloudio/uni-app";
  360. import { getItem } from "@/utils/storage.ts"
  361. import {vehicleLicenseOcr,licenseInforChangeApply,idCardOcr,sendMessage,messageValid,vehicleInfoChangeApply,vehicleInformationChange} from "@/utils/network/api.js";
  362. import {requestNew} from "@/utils/network/request.js";
  363. import viewfinder from "../../../components/viewfinder.vue"
  364. import {
  365. calculateVehicleType
  366. } from "@/datas/publicRequest";
  367. import {
  368. getCodeName
  369. } from "@/datas/queryKey.js";
  370. const labelStyle = {
  371. color: "#004576",
  372. fontSize: "28rpx",
  373. }
  374. const leftIcon = {
  375. height: '100%',
  376. width: '8rpx',
  377. display: 'flex',
  378. 'align-items': 'center',
  379. 'margin-right': '4rpx',
  380. }
  381. const show1 = ref(false)
  382. const show2 = ref(false)
  383. const show3 = ref(false)
  384. const show4 = ref(false)
  385. const state = reactive({
  386. form: {
  387. name:"",
  388. vehiclePlate: "",//车牌号
  389. vehiclePlateColor: "",//车牌颜色
  390. vehicleId:"",
  391. vehiclePlateNew:"",//变更后车牌号
  392. vehiclePlateColorNew:"",//变更后车牌颜色
  393. cardId:"",
  394. obuId:"",
  395. isVehiclePlateChange:1,//是否车牌变更 否_0,是_1
  396. vanType:"",//客货类型,1-客车 2-货车 3-作业车
  397. isMyselfHandle:1,//本人办理_1,代理人办理_2
  398. userType:1,//1个人 2单位
  399. customerPosImgurl:"",//开户人身份证正面URL
  400. customerNegImgurl:"",//开户人身份证反面URL
  401. ownerLetterOfAuthorizationImgUrl:"",//开户人授权书URL
  402. unitAuthorizationLetterImgUrl:"",//单位授权书URL
  403. isTractor:0,//是否牵引车 否_0,是_1
  404. roadTransportPermitPicUrl:"",//道路运输许可证图片地址(牵引车才提供)
  405. ownerName:"",
  406. ownerIdTypeStr:"",
  407. ownerIdType:"",
  408. ownerIdNum:"",
  409. ownerAddress:"",
  410. totalMass:"",
  411. maintenanceMass:"",
  412. axleCount:"",
  413. outsideDimensions:"",
  414. approvedCount:"",
  415. vin:"",
  416. engineNum:"",
  417. vehBodyUrl:"",
  418. vehFrontUrl:"",
  419. vehPosImgUrl:"",
  420. vehNegImgUrl:"",
  421. vehPosImgOcrId:"",//行驶证正面orcId
  422. vehNegImgOcrId:"",//行驶证反面orcId
  423. ownerTel:"",
  424. customerName:"",
  425. customerIdNum:"",
  426. permittedTowWeight:"",//准牵引总质量
  427. customerIdTypeStr:"",
  428. customerIdType:"",
  429. vehicleTypeNew:"",//收费车型
  430. agentPosImgurl:"",//经办人身份证正面照
  431. agentNegImgurl:"",//经办人身份证反面照
  432. agentName:"",//经办人姓名
  433. agentIdNum:"",
  434. agentIdType:"",//经办人证件类型
  435. agentIdTypeStr:"",//经办人证件类型
  436. department:"",//部门
  437. vehicleType:"",//行驶证车辆类型
  438. vehicleCustomerType:"",
  439. vehicleCustomerTypeName:"",
  440. issueDate:"",
  441. wheelCount:"",//车轮数
  442. useCharacter:"",//车辆使用性质
  443. registerDate:"",
  444. vehicleModel:"",//行驶证品牌型号
  445. },
  446. isTakePhotoModeShow: false, //选择拍照方式是否出来
  447. choiceIndex: 1, // 1 身份证正面 2 身份证反面
  448. phoneType: 0, // 1 身份证正面 2 身份证反面 3行驶证正面 4行驶证反面
  449. images: '',
  450. showImg: true,
  451. items: [{
  452. value: 1,
  453. name: '是',
  454. checked: 'true'
  455. },
  456. {
  457. value: 2,
  458. name: '否',
  459. }],
  460. itemsqyc: [{
  461. value: 0,
  462. name: '否',
  463. checked: 'true'
  464. },
  465. {
  466. value: 1,
  467. name: '是',
  468. }],
  469. ownerIdTypeRange: [],
  470. code:"",
  471. vehicleCustomerTypeRange:[]
  472. })
  473. onLoad((option : any) => {
  474. let type = getItem('key')['CERTIFICATE_TYPE'];
  475. for (var k = 0; k < type.length; k++) {
  476. let obj = {};
  477. obj['value'] = type[k]['code']
  478. obj['label'] = type[k]['name']
  479. state.ownerIdTypeRange.push(obj)
  480. }
  481. console.log("state.colorRange",state.ownerIdTypeRange,JSON.parse(decodeURIComponent(option.params)))
  482. let params=JSON.parse(decodeURIComponent(option.params))
  483. state.form.vehicleId=params.vehicleId
  484. state.form.vehiclePlate=params.vehicleId.split("_")[0]
  485. state.form.vehiclePlateColor=params.vehicleId.split("_")[1]
  486. state.form.vehiclePlateNew=params.vehiclePlateNew
  487. state.form.vehiclePlateColorNew=params.vehiclePlateColorNew
  488. state.form.cardId=params.cardId
  489. state.form.obuId=params.obuId
  490. state.form.vanType=params.vanType
  491. getCarDetails()
  492. });
  493. const getCarDetails = () => {
  494. const options = {
  495. type: 2,
  496. data: {
  497. vehicleId:state.form.vehicleId
  498. },
  499. method: "POST",
  500. showLoading: true,
  501. };
  502. //调用方式
  503. requestNew(vehicleInformationChange, options)
  504. .then((res) => {
  505. console.log('车辆信息', res)
  506. state.form.ownerTel=res.info.customerInfo.customerTel
  507. state.form.userType=res.userType
  508. if(state.form.userType==2){
  509. state.form.isMyselfHandle=2
  510. }
  511. // 判断车辆用户类型
  512. judgeUseUserType()
  513. })
  514. .catch((err) => {
  515. console.log(err);
  516. });
  517. }
  518. // 判断车辆用户类型
  519. const judgeUseUserType=()=>{
  520. if(state.form.vanType=='1'){
  521. state.vehicleCustomerTypeRange=[
  522. {
  523. 'value':0,
  524. 'label':"普通车"
  525. }
  526. ]
  527. state.form.vehicleCustomerType = "0"
  528. state.form.vehicleCustomerTypeName = "普通车"
  529. }else{
  530. state.vehicleCustomerTypeRange=[
  531. {
  532. 'value':0,
  533. 'label':"普通车"
  534. },
  535. {
  536. 'label': "道路运输证经营范围仅有“货物专用运输(集装箱) ”的牵引车办理J类型集装箱",
  537. 'value': 24,
  538. },
  539. {
  540. 'label': "道路运输证经营范围不含“货物专用运输(集装箱)”的牵引车",
  541. 'value': 27,
  542. },
  543. {
  544. 'label': '道路运输证经营范围除“货物专用运输 (集装 箱)"外,还有“普通货运”等其他项目的牵引车办理J2类型集装箱',
  545. 'value': 28,
  546. }
  547. ]
  548. }
  549. }
  550. //车牌号输入
  551. const carNumber = (val : any) => {
  552. state.form.vehiclePlate = val.trim();
  553. };
  554. const savaHandle = () => {
  555. if(!state.form.vehPosImgUrl){
  556. msg("请上传新车牌行驶证主页");
  557. return;
  558. }
  559. if(!state.form.vehNegImgUrl){
  560. msg("请上传新车牌行驶证副页");
  561. return;
  562. }
  563. if(!state.form.ownerIdType){
  564. msg("请选择证件类型");
  565. return;
  566. }
  567. if(!checkStr(state.form.ownerIdNum, "card")){
  568. msg("请输入正确变更证件号码");
  569. return;
  570. }
  571. if(!state.form.ownerAddress){
  572. msg("请输入变更地址");
  573. return;
  574. }
  575. if(!state.form.totalMass){
  576. msg("请输入总质量");
  577. return;
  578. }
  579. if(!state.form.maintenanceMass){
  580. msg("请输入整备质量");
  581. return;
  582. }
  583. if(!state.form.axleCount){
  584. msg("请输入车轴数");
  585. return;
  586. }
  587. if(!state.form.wheelCount){
  588. msg("请输入车轮数");
  589. return;
  590. }
  591. if(!state.form.outsideDimensions){
  592. msg("请输入外廓尺寸");
  593. return;
  594. }
  595. if(!state.form.approvedCount){
  596. msg("请输入核定载人数");
  597. return;
  598. }
  599. if(!state.form.engineNum){
  600. msg("请输入发动机号码");
  601. return;
  602. }
  603. if(!state.form.vin){
  604. msg("请输入车辆识别号");
  605. return;
  606. }
  607. if(state.form.vehicleCustomerType==""){
  608. msg("请选择车辆用户类型");
  609. return;
  610. }
  611. // 测完放开
  612. checkCodeRequest().then((val : any) => {
  613. const options = {
  614. type: 2,
  615. data: {
  616. ...state.form
  617. },
  618. method: "POST",
  619. showLoading: true,
  620. };
  621. //调用方式
  622. requestNew(licenseInforChangeApply, options)
  623. .then((res) => {
  624. console.log("res",res)
  625. // msg(res.msg)
  626. msg('车牌变更信息提交成功')
  627. setTimeout(() => {
  628. uni.navigateBack({
  629. delta: 3
  630. })
  631. }, 2000)
  632. })
  633. .catch((err) => {
  634. console.log(err);
  635. });
  636. })
  637. }
  638. const checkCodeRequest = () => {
  639. if(!state.code){
  640. msg("请输入验证码");
  641. return;
  642. }
  643. const options = {
  644. type: 2,
  645. data: {
  646. mobile: state.form.ownerTel,
  647. code: state.code
  648. },
  649. method: "POST",
  650. showLoading: true,
  651. };
  652. return new Promise(async (resolve, reject) => {
  653. const res = await requestNew(messageValid, options);
  654. const data = res;
  655. resolve(data);
  656. }).catch((error) => {
  657. reject(error);
  658. });
  659. }
  660. const takePhotoMode = (index) => {
  661. console.log("index", index)
  662. state.isTakePhotoModeShow = true
  663. state.choiceIndex = index
  664. }
  665. // val 1 车身45°照 2车头照 3开户人授权书URL 4单位授权书URL 5道路运输证
  666. const cardFileImageUpdate = (val) => {
  667. uni.chooseImage({
  668. count: 1, //只能选取一张照片
  669. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  670. sourceType: ["camera", "album"], //从相册选择
  671. success: function (res) {
  672. uploadFile(res.tempFilePaths[0], "", "").then((data) => {
  673. if (val == 1) {
  674. state.form.vehBodyUrl = data;
  675. } else if(val == 2) {
  676. state.form.vehFrontUrl = data;
  677. }else if(val == 3) {
  678. state.form.ownerLetterOfAuthorizationImgUrl = data;
  679. }else if(val == 4) {
  680. state.form.unitAuthorizationLetterImgUrl = data;
  681. }else if(val == 5) {
  682. state.form.roadTransportPermitPicUrl = data;
  683. }
  684. })
  685. },
  686. });
  687. };
  688. let waitTime = ref(0)
  689. //倒计时函数
  690. const codeInterval = () => {
  691. waitTime.value = 60
  692. let timer = setInterval(() => {
  693. if (waitTime.value == 1) {
  694. clearInterval(timer)
  695. }
  696. waitTime.value -= 1
  697. }, 1000)
  698. }
  699. const getCode = () => {
  700. console.log(123);
  701. if (checkStr(state.form.ownerTel, "mobile")) {
  702. sendCodeApi()
  703. codeInterval()
  704. } else {
  705. uni.showToast({
  706. title: '请输入正确的手机号',
  707. icon: 'none'
  708. });
  709. }
  710. }
  711. // 发送验证码
  712. const sendCodeApi = () => {
  713. //参数说明
  714. let options = {
  715. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  716. data: {
  717. mobile: state.form.ownerTel
  718. }, //请求参数
  719. method: "POST", //提交方式(默认POST)
  720. showLoading: true, //是否显示加载中(默认显示)
  721. };
  722. //调用方式
  723. requestNew(sendMessage, options)
  724. .then((res) => {
  725. let data = res
  726. console.log(data, "#################");
  727. if (data.info == "成功") {
  728. msg("发送成功")
  729. console.log('######################CCCCCCCCCCCCCCCCC');
  730. }
  731. })
  732. .catch((err) => {
  733. console.log(err);
  734. });
  735. }
  736. const confirmReturn = (val) => {
  737. console.log("进来了")
  738. state.phoneType = 0
  739. state.isTakePhotoModeShow = false
  740. if(state.choiceIndex==1 || state.choiceIndex==2){
  741. var imageType=state.choiceIndex
  742. uploadFile(val.tempImagePath, imageType, idCardOcr).then((data) => {
  743. console.log("身份证上传", data)
  744. if(state.form.userType==1){
  745. // 个人
  746. if (state.choiceIndex == 1) {
  747. state.form.customerName = data.name;
  748. state.form.customerIdNum = data.idno;
  749. state.form.customerPosImgurl = data.imageUrl;
  750. } else {
  751. state.form.customerNegImgurl = data.imageUrl;
  752. }
  753. }else{
  754. // 单位
  755. if (state.choiceIndex == 1) {
  756. state.form.agentName = data.name;
  757. state.form.agentIdNum = data.idno;
  758. state.form.agentPosImgurl = data.imageUrl;
  759. } else {
  760. state.form.agentNegImgurl = data.imageUrl;
  761. }
  762. }
  763. state.isTakePhotoModeShow = false
  764. })
  765. }else{
  766. if (state.choiceIndex == 3) {
  767. var imageType = 1;
  768. } else {
  769. var imageType = 2;
  770. }
  771. uploadFile(val.tempImagePath, imageType, vehicleLicenseOcr).then((data) => {
  772. console.log('输出内容=====================', state.choiceIndex)
  773. if (state.choiceIndex == 3) {
  774. state.form.ownerName = data.man;
  775. state.form.ownerAddress = data.address;
  776. state.form.vehicleType = data.vehicle;
  777. state.form.vin = data.vin;
  778. state.form.engineNum = data.engine;
  779. state.form.vehPosImgUrl = data.imageUrl;
  780. state.form.vehPosImgOcrId = data.ocrResultId;
  781. state.form.issueDate = data.issue;
  782. state.form.useCharacter = data.character;
  783. state.form.registerDate = data.register;
  784. state.form.vehicleModel = data.model;
  785. } else {
  786. state.form.approvedCount = data.apc.slice(0,-1);
  787. state.form.maintenanceMass = data.unladen.slice(0,-2);
  788. let overall=data.overall.replaceAll("x", "X")
  789. state.form.outsideDimensions = overall.slice(0,-2);
  790. state.form.totalMass = data.gross ? data.gross.slice(0,-2) : 0;
  791. state.form.vehNegImgUrl = data.imageUrl;
  792. state.form.vehNegImgOcrId = data.ocrResultId;
  793. state.form.permittedTowWeight=data.towing.slice(0,-2)
  794. // 计算收费车型
  795. if(state.form.axleCount){
  796. calculateVehicleType(state.form.approvedCount,state.form.axleCount,state.form.outsideDimensions,state.form.totalMass,state.form.vanType, function (res) {
  797. state.form.vehicleTypeNew=res
  798. });
  799. }
  800. console.log('=====================', state.form.vehNegImgUrl, state)
  801. }
  802. state.isTakePhotoModeShow = false
  803. })
  804. }
  805. console.log("图片地址val", val.tempImagePath)
  806. }
  807. const camera = () => {
  808. state.phoneType = 0
  809. }
  810. const cancle = () => {
  811. state.isTakePhotoModeShow = false
  812. }
  813. const takePhoto = (val) => {
  814. console.log("拍照", val)
  815. state.phoneType = val;
  816. state.showImg = true;
  817. }
  818. const xiangce = (val) => {
  819. console.log("val", val)
  820. if (state.choiceIndex == 3) {
  821. var imageType = 1;
  822. } else {
  823. var imageType = 2;
  824. }
  825. chooseImageCompress((res) => {
  826. state.images = res.tempFilePath ? res.tempFilePath : res.tempFilePaths[0]
  827. state.showImg = false
  828. state.phoneType = state.choiceIndex
  829. state.isTakePhotoModeShow = false
  830. console.log("res==",res,state.choiceIndex,state.images)
  831. })
  832. }
  833. const radioChange = (evt) => {
  834. console.log("evt.detail.value", evt.detail.value)
  835. for (let i = 0; i < state.items.length; i++) {
  836. if (state.items[i].value == evt.detail.value) {
  837. state.form.isMyselfHandle = i+1;
  838. break;
  839. }
  840. }
  841. console.log("state.form.isMyselfHandle", state.form.isMyselfHandle)
  842. }
  843. const radioChangeqyc = (evt) => {
  844. console.log("evt.detail.value", evt.detail.value)
  845. for (let i = 0; i < state.itemsqyc.length; i++) {
  846. if (state.itemsqyc[i].value == evt.detail.value) {
  847. console.log("1",state.itemsqyc[i].value,evt.detail.value,state.itemsqyc[i].value == evt.detail.value,i)
  848. state.form.isTractor = state.itemsqyc[i].value;
  849. break;
  850. }
  851. }
  852. console.log("state.form.isTractor", state.form.isTractor)
  853. }
  854. const changeOwnerIdType = (item) => {
  855. state.form.ownerIdType = item[0].value
  856. state.form.ownerIdTypeStr = item[0].label
  857. console.log(item)
  858. }
  859. const changeCustomerIdType = (item) => {
  860. state.form.customerIdType = item[0].value
  861. state.form.customerIdTypeStr = item[0].label
  862. console.log(item)
  863. }
  864. const changeAgentIdType = (item) => {
  865. state.form.agentIdType = item[0].value
  866. state.form.agentIdTypeStr = item[0].label
  867. console.log(item)
  868. }
  869. const changeAxleCount=(e)=>{
  870. console.log("e",e)
  871. calculateVehicleType(state.form.approvedCount,e,state.form.outsideDimensions,state.form.totalMass,state.form.vanType, function (res) {
  872. state.form.vehicleTypeNew=res
  873. });
  874. }
  875. const vehicleCustomerTypeType = (item) => {
  876. state.form.vehicleCustomerType = item[0].value
  877. state.form.vehicleCustomerTypeName = item[0].label
  878. console.log(item)
  879. }
  880. </script>
  881. <style lang="scss" scoped>
  882. .bg {
  883. background-color: white;
  884. width: 90%;
  885. margin: 0 auto;
  886. margin-top: 20rpx;
  887. border-radius: 12px;
  888. border: 1px solid #FFFFFF;
  889. padding: 30rpx 20rpx;
  890. overflow: hidden;
  891. box-sizing: border-box;
  892. .title_wrap {
  893. display: flex;
  894. font-weight: 400;
  895. justify-content: space-between;
  896. .title {
  897. font-size: 30rpx;
  898. color: #01243A;
  899. }
  900. }
  901. .des {
  902. font-weight: 400;
  903. font-size: 28rpx;
  904. color: #01243A;
  905. line-height: 56rpx;
  906. margin-top: 10rpx;
  907. text-indent: 1rem;
  908. }
  909. }
  910. .action {
  911. position: absolute;
  912. left: 0;
  913. height: 160rpx;
  914. background-color: #fff;
  915. border-radius: 30rpx 30rpx 0 0;
  916. width: 100vw;
  917. display: flex;
  918. align-items: center;
  919. justify-content: center;
  920. flex-direction: column;
  921. margin-top: 20rpx;
  922. }
  923. .card{
  924. display: flex;
  925. align-items: center;
  926. image{
  927. width: 120rpx;
  928. height: 120rpx;
  929. margin-right: 20rpx;
  930. }
  931. .details view:first-child{
  932. margin-bottom: 10rpx;
  933. }
  934. }
  935. .picture-wrapper {
  936. margin-top: 30rpx;
  937. .bg1 {
  938. background: #F5F9FB;
  939. border-radius: 10rpx;
  940. padding: 40rpx 30rpx;
  941. display: flex;
  942. // align-items: center;
  943. justify-content: space-between;
  944. .name {
  945. padding-top: 30rpx;
  946. font-size: 32rpx;
  947. font-family: SourceHanSansSC, SourceHanSansSC;
  948. font-weight: 500;
  949. color: #111;
  950. line-height: 34rpx;
  951. }
  952. .value {
  953. margin-top: 20rpx;
  954. font-size: 22rpx;
  955. font-family: SourceHanSansSC, SourceHanSansSC;
  956. font-weight: 400;
  957. color: #999999;
  958. line-height: 24rpx;
  959. }
  960. .tip {
  961. margin-top: 20rpx;
  962. text-align: center;
  963. width: 100rpx;
  964. height: 30rpx;
  965. border-radius: 6rpx;
  966. border: 1rpx solid #CCB375;
  967. .tip-value {
  968. font-size: 20rpx;
  969. font-family: Microsoft YaHei;
  970. font-weight: 400;
  971. color: #CCB375;
  972. line-height: 30rpx;
  973. opacity: 1;
  974. }
  975. }
  976. }
  977. .icon {
  978. width: 304rpx;
  979. height: 190rpx;
  980. background-image: var(--bgimg);
  981. background-size: 100% 100%;
  982. background-repeat: no-repeat;
  983. }
  984. }
  985. .search{
  986. background: #F8F4E7;
  987. border-radius: 10rpx;
  988. border: 1px solid #CCB375;
  989. font-size: 24rpx;
  990. color: #CCB375;
  991. padding: 0rpx 14rpx;
  992. flex-shrink: 0;
  993. height: 60rpx;
  994. line-height: 60rpx;
  995. margin-left: 20rpx;
  996. }
  997. .showworld{
  998. display: flex;
  999. justify-content: flex-end;
  1000. }
  1001. .choice-takePhoto-wrap {
  1002. width: 100%;
  1003. height: 100vh;
  1004. background-color: rgba(127, 127, 127, 0.2);
  1005. position: fixed;
  1006. left: 0;
  1007. top: 0;
  1008. z-index: 11111;
  1009. .choice-takePhoto {
  1010. position: absolute;
  1011. bottom: 0;
  1012. background-color: white;
  1013. width: 100%;
  1014. border-radius: 20rpx 20rpx 0 0;
  1015. }
  1016. .choice-takePhoto>view:first-child {
  1017. text-align: center;
  1018. height: 80rpx;
  1019. line-height: 80rpx;
  1020. border-bottom: 1rpx solid rgba(127, 127, 127, 0.3);
  1021. background-color: white;
  1022. }
  1023. .choice-takePhoto>view:last-child {
  1024. text-align: center;
  1025. height: 80rpx;
  1026. line-height: 80rpx;
  1027. border-top: 6rpx solid rgba(127, 127, 127, 0.1);
  1028. background-color: white;
  1029. }
  1030. .choice-takePhoto>view {
  1031. text-align: center;
  1032. height: 80rpx;
  1033. line-height: 80rpx;
  1034. background-color: white;
  1035. }
  1036. }
  1037. .right-show{
  1038. display: flex;
  1039. justify-content: flex-end;
  1040. }
  1041. </style>