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.

rescind-carId-select.vue 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. <template>
  2. <view class="content">
  3. <view class="title"> 车主信息 </view>
  4. <view class="item-tips">
  5. <view class="title"> 上传后请核对识别信息 </view>
  6. <view class="tip"> 如有错误请及时手动修改 </view>
  7. </view>
  8. <view class="picture-wrapper" @click="takePhotoMode('1')">
  9. <view class="bg">
  10. <view class="">
  11. <view class="name"> 人像面 </view>
  12. <view class="value"> 上传身份证的人像面 </view>
  13. <view class="tip">
  14. <view class="tip-value"> 拍摄规范 </view>
  15. </view>
  16. </view>
  17. <image v-if="!state.form.userPosImgUrl" class="icon" :src="`${$imgUrl}applyCard/renxiang.png`">
  18. </image>
  19. <image v-else class="icon" :src="strReplace(state.form.userPosImgUrl)"></image>
  20. </view>
  21. </view>
  22. <view class="picture-wrapper" @click="takePhotoMode('2')">
  23. <view class="bg">
  24. <view class="">
  25. <view class="name"> 国徽面 </view>
  26. <view class="value"> 上传身份证的国徽面 </view>
  27. <view class="tip">
  28. <view class="tip-value"> 拍摄规范 </view>
  29. </view>
  30. </view>
  31. <image v-if="!state.form.userNegImgUrl" class="icon" :src="`${$imgUrl}applyCard/guohui.png`">
  32. </image>
  33. <image v-else class="icon" :src="strReplace(state.form.userNegImgUrl)"></image>
  34. </view>
  35. </view>
  36. <view style="margin-top: 30rpx" class="title"> 行驶证信息 </view>
  37. <view class="item-tips">
  38. <view class="title"> 上传后请核对识别信息 </view>
  39. <view class="tip"> 如有错误请及时手动修改 </view>
  40. </view>
  41. <view class="picture-wrapper" @click="takePhotoMode('3')">
  42. <view class="bg">
  43. <view class="">
  44. <view class="name"> 行驶证正页 </view>
  45. <view class="value"> 上传 行驶证正页 </view>
  46. <view class="tip">
  47. <view class="tip-value"> 拍摄规范 </view>
  48. </view>
  49. </view>
  50. <image v-if="!state.form.vehPosImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-zhu.png`">
  51. </image>
  52. <image v-else class="icon" :src="strReplace(state.form.vehPosImgUrl)"></image>
  53. </view>
  54. </view>
  55. <view class="picture-wrapper" @click="takePhotoMode('4')">
  56. <view class="bg">
  57. <view class="">
  58. <view class="name"> 行驶证副页 </view>
  59. <view class="value"> 上传行驶证副页 </view>
  60. <view class="tip">
  61. <view class="tip-value"> 拍摄规范 </view>
  62. </view>
  63. </view>
  64. <image v-if="!state.form.vehNegImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-fu.png`">
  65. </image>
  66. <image v-else class="icon" :src="strReplace(state.form.vehNegImgUrl)"></image>
  67. </view>
  68. </view>
  69. <view class="picture-wrapper" @click="cardFileImageUpdate(1)">
  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.FormData.peopleVehicleImgUrl" class="icon" :src="`${$imgUrl}applyCard/chetou.png`">
  79. </image>
  80. <image v-else class="icon" :src="strReplace(state.FormData.peopleVehicleImgUrl)"></image>
  81. </view>
  82. </view>
  83. <view class="picture-wrapper" @click="cardFileImageUpdate(2)">
  84. <view class="bg">
  85. <view class="">
  86. <view class="name"> 承诺书 </view>
  87. <view class="value"> 上传承诺书照片 </view>
  88. <view class="tip">
  89. <view class="tip-value"> 拍摄规范 </view>
  90. </view>
  91. </view>
  92. <image v-if="!state.FormData.commitmentUrl" class="icon" :src="`${$imgUrl}applyCard/weituoshu.png`">
  93. </image>
  94. <image v-else class="icon" :src="strReplace(state.FormData.commitmentUrl)"></image>
  95. </view>
  96. </view>
  97. <view class="picture-wrapper" @click="cardFileImageUpdate(3)">
  98. <view class="bg">
  99. <view class="">
  100. <view class="name"> 委托书 </view>
  101. <view class="value"> 上传文字清晰的委托书 </view>
  102. <view class="tip">
  103. <view class="tip-value"> 拍摄规范 </view>
  104. </view>
  105. </view>
  106. <image v-if="!state.FormData.proxyUrl" class="icon" :src="`${$imgUrl}applyCard/weituoshu.png`">
  107. </image>
  108. <image v-else class="icon" :src="strReplace(state.FormData.proxyUrl)"></image>
  109. </view>
  110. </view>
  111. <view class="shibie-wrapper">
  112. <view class="title"> 识别内容如下 </view>
  113. <u-form label-width="200" :model="state.form" ref="uForm">
  114. <u-form-item label="车牌号">
  115. <u-input v-model="state.form.vehicleId" @input="getVehiclePlate" />
  116. </u-form-item>
  117. <u-form-item label="车牌颜色">
  118. <u-input v-model="state.form.caridCorlor" type="select" @click="show1 = true" />
  119. </u-form-item>
  120. </u-form>
  121. </view>
  122. <view class="green-tip">
  123. 如识别信息有误,请手动修改,确认无误后,点击下一步!
  124. </view>
  125. <view class="action">
  126. <button type="default" class="button" @click="savaHandle()">
  127. 下一步
  128. </button>
  129. </view>
  130. <!-- 选择车牌颜色 -->
  131. <u-select v-model="show1" :list="state.actionSheetList" @confirm="selectConfirm"></u-select>
  132. </view>
  133. <view class="choice-takePhoto-wrap" v-if="state.isTakePhotoModeShow" @click="cancle">
  134. <view class="choice-takePhoto">
  135. <view @click.stop="takePhoto(state.choiceIndex)" style="border-radius: 20rpx 20rpx 0 0;">拍照</view>
  136. <view @click.stop="xiangce(state.choiceIndex)">从手机相册选择</view>
  137. <view @click.stop="cancle">取消</view>
  138. </view>
  139. </view>
  140. <viewfinder v-if="state.phoneType" :phoneType="state.phoneType" :images="state.images"
  141. :showStartPhoto="state.showImg" @confirmReturn="confirmReturn" @camera="camera"></viewfinder>
  142. </template>
  143. <script setup lang="ts">
  144. import selectCar from "./select-car.vue";
  145. import {
  146. reactive,
  147. ref
  148. } from "vue";
  149. import {
  150. onLoad,
  151. onShow
  152. } from "@dcloudio/uni-app";
  153. import {
  154. etcOcrCard,
  155. etcUserCardInfoSubmit,
  156. fileUpload,
  157. etcCarOcrCard,
  158. envs,
  159. } from "@/utils/network/api.js";
  160. import {
  161. request
  162. } from "@/utils/network/request.js";
  163. import {
  164. getItem
  165. } from "@/utils/storage.ts"
  166. import {
  167. stringToJson
  168. } from "@/utils/network/encryption";
  169. import navBar from "@/components/nav-bar/nav-bar2.vue";
  170. import viewfinder from "@/components/viewfinder.vue"
  171. import {
  172. navTo, strReplace, uploadFile
  173. } from "@/utils/utils";
  174. // ########
  175. const show1 = ref(false)
  176. const state = reactive({
  177. showImg: true,
  178. isMy: "",//自己办理 他人办理
  179. phoneType: 0, // 1 身份证正面 2 身份证反面 3行驶证正面 4行驶证反面
  180. choiceIndex: 1, // 1 身份证正面 2 身份证反面
  181. isTakePhotoModeShow: false, //选择拍照方式是否出来
  182. images: '',
  183. ocrData: {
  184. name: "",
  185. gender: "",
  186. idno: "",
  187. address: "",
  188. begindate: "",
  189. enddate: "",
  190. tel: "",
  191. tmerValidity: "",
  192. },
  193. form: {
  194. caridCorlor: "", //车牌颜色
  195. userName: "", //开户人姓名
  196. userIdNum: "", //用户证件号码
  197. userPosImgUrl: "", //身份证正面
  198. userNegImgUrl: "", //身份证反面
  199. address: "", //开户人地址
  200. gender: "",
  201. tmerValidity: "",
  202. man: "", //所有人
  203. character: "", //使用性质
  204. register: "", //注册日期
  205. vehBodyUrl: '', //人车合照
  206. customerId: "", //用户编号
  207. vehicleId: "", //车牌编号
  208. issueDate: "", //发证日期
  209. vehPosImgUrl: "", //行驶证正面
  210. vehNegImgUrl: "", //行驶证证反面
  211. type: "0", //0,客车 1.货车
  212. useUserType: 0, //车辆用户类型
  213. useUserTypeName: "普通车",
  214. vehicleSign: 2, //前/后装标识
  215. vin: "", //车辆识别代号
  216. engineNum: "", //发动机号码
  217. vehicleType: "", //车辆类型
  218. vehicleModel: "", //行驶证品牌型号
  219. approvedCount: undefined, //核定人数
  220. totalMass: undefined, //总质量
  221. maintenaceMass: undefined, //整备质量
  222. permittedWeight: "", //核定载质量
  223. vehicleDimensions: "", //车辆尺寸
  224. permittedTowWeight: "", //准牵引总质量
  225. axleCount: "", //车轴数
  226. ownerName: "", //车主姓名
  227. ownerIdType: "", //车主证件类型
  228. ownerIdNum: "", //车主证件号码
  229. ownPosImgUrl: "", //车主证件正面图片
  230. ownNegImgUrl: "", //车主证件反面图片
  231. agreementId: "", //签约编号
  232. channelId: "5201018892300000001",
  233. proxyUrl: "", //委托书
  234. },
  235. orderId: "",
  236. isMyPeopple: true,
  237. actionSheetList: [{
  238. label: "蓝色",
  239. value: '0',
  240. }, {
  241. label: "黄色",
  242. value: 1,
  243. },
  244. {
  245. label: "黑色",
  246. value: 2,
  247. },
  248. {
  249. label: "白色",
  250. value: 3,
  251. },
  252. {
  253. label: "渐变绿色",
  254. value: 4,
  255. },
  256. {
  257. label: "黄绿双拼色",
  258. value: 5,
  259. },
  260. {
  261. label: "蓝白渐变色",
  262. value: 6,
  263. },
  264. {
  265. label: "未确定",
  266. value: 9,
  267. },
  268. {
  269. label: "绿色",
  270. value: 11,
  271. },
  272. {
  273. label: "红色",
  274. value: 12,
  275. },
  276. ],
  277. FormData: {
  278. vehiclePlate: '',
  279. vehiclePlatecolor: '',
  280. openid: getItem('openId'),
  281. idcardFrontImgUrl: '',
  282. idcardBacktImgUrl: '',
  283. vehPosImgUrl: '',
  284. vehNegImgUrl: '',
  285. peopleVehicleImgUrl: '',
  286. commitmentUrl: '',
  287. mobile: '',
  288. code: '',
  289. proxyUrl: "", //委托书
  290. }
  291. });
  292. const getVehiclePlate = (e) => {
  293. console.log("车牌号", e)
  294. state.FormData.vehiclePlate = e
  295. };
  296. const savaHandle = () => {
  297. if (state.FormData.idcardFrontImgUrl && state.FormData.idcardBacktImgUrl) {
  298. if (state.FormData.vehPosImgUrl && state.FormData.vehNegImgUrl) {
  299. if (state.FormData.peopleVehicleImgUrl) {
  300. if (state.FormData.vehiclePlate && state.FormData.vehiclePlatecolor.toString()) {
  301. state.FormData.vehiclePlatecolor = Number(state.FormData.vehiclePlatecolor)
  302. let data = JSON.stringify(state.FormData)
  303. navTo(`/subpackage/after-sale/rescind-carId/verification?fromData=${data}`);
  304. } else {
  305. uni.showToast({
  306. title: "请填写车牌号和车牌颜色",
  307. icon: "none"
  308. })
  309. }
  310. } else {
  311. uni.showToast({
  312. title: "请上传人车合影",
  313. icon: "none"
  314. })
  315. }
  316. } else {
  317. uni.showToast({
  318. title: "请上传行驶证正反图片",
  319. icon: "none"
  320. })
  321. }
  322. } else {
  323. uni.showToast({
  324. title: "请上传身份证正反图片",
  325. icon: "none"
  326. })
  327. }
  328. console.log(JSON.stringify(state.FormData));
  329. };
  330. const selectConfirm = (item : any) => {
  331. console.log(item);
  332. state.FormData.vehiclePlatecolor = item[0].value
  333. state.form.caridCorlor = item[0].label
  334. };
  335. const cardFileImageUpdate = (val) => {
  336. uni.chooseImage({
  337. count: 1, //只能选取一张照片
  338. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  339. sourceType: ["camera", "album"], //从相册选择
  340. success: function (res) {
  341. uploadFile(res.tempFilePaths[0], "", "").then((data) => {
  342. if (val == 1) {
  343. state.FormData.peopleVehicleImgUrl = data;
  344. } else if (val == 2) {
  345. state.FormData.commitmentUrl = data;
  346. } else if (val == 3) {
  347. state.FormData.proxyUrl = data;
  348. }
  349. })
  350. },
  351. });
  352. };
  353. onLoad((option : any) => {
  354. state.form.orderId = option.orderId;
  355. state.orderId = option.orderId;
  356. });
  357. const xiangce = (val) => {
  358. console.log("val", val)
  359. var imageType = val;
  360. uni.chooseImage({
  361. count: 1, //只能选取一张照片
  362. sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
  363. sourceType: ["album"], //从相册选择
  364. success: function (res) {
  365. state.showImg = false
  366. state.images = res.tempFilePaths[0]
  367. state.phoneType = state.choiceIndex
  368. state.isTakePhotoModeShow = false
  369. console.log("tempFilePaths[0].startsWith('file://')", res.tempFilePaths[0], res.tempFilePaths[0].startsWith('file://'))
  370. },
  371. })
  372. }
  373. const takePhoto = (val) => {
  374. state.showImg = true
  375. console.log("拍照", val)
  376. state.phoneType = val;
  377. }
  378. const confirmReturn = (val) => {
  379. state.phoneType = 0
  380. state.isTakePhotoModeShow = false
  381. var imageType = 1;
  382. if (state.choiceIndex == 1) {
  383. imageType = 1
  384. var isEtcOcrCard = etcOcrCard
  385. } else if (state.choiceIndex == 2) {
  386. imageType = 2
  387. var isEtcOcrCard = etcOcrCard
  388. } else if (state.choiceIndex == 3) {
  389. imageType = 1
  390. var isEtcOcrCard = etcCarOcrCard
  391. } else if (state.choiceIndex == 4) {
  392. imageType = 2
  393. var isEtcOcrCard = etcCarOcrCard
  394. } else
  395. console.log("图片地址val", val.tempImagePath)
  396. uploadFile(val.tempImagePath, imageType, isEtcOcrCard).then((data) => {
  397. console.log("身份证上传", data)
  398. if (state.choiceIndex === "1") {
  399. state.form.userName = data.name;
  400. state.form.gender = data.gender;
  401. state.form.userIdNum = data.idno;
  402. state.form.userPosImgUrl = data.imageUrl;
  403. state.form.address = data.address;
  404. state.FormData.idcardFrontImgUrl = data.imageUrl
  405. } else if (state.choiceIndex === "2") {
  406. state.form.tmerValidity = data.begindate + "-" + data.enddate;
  407. state.form.userNegImgUrl = data.imageUrl;
  408. state.FormData.idcardBacktImgUrl = data.imageUrl
  409. } else if (state.choiceIndex === "3") {
  410. state.form.vehicleId = data.plate_a;
  411. state.form.man = data.man;
  412. state.form.vehicleType = data.vehicle;
  413. state.form.character = data.character;
  414. state.form.vin = data.vin;
  415. state.form.engineNum = data.engine;
  416. state.form.register = data.register;
  417. state.form.issueDate = data.issue;
  418. state.form.vehPosImgUrl = data.imageUrl;
  419. state.form.vehicleModel = data.model;
  420. state.FormData.vehiclePlate = data.plate_a
  421. state.FormData.vehPosImgUrl = data.imageUrl
  422. } else if (state.choiceIndex === "4") {
  423. state.form.approvedCount = parseFloat(data.apc);
  424. state.form.maintenaceMass = parseFloat(data.unladen);
  425. state.form.vehicleDimensions = data.overall;
  426. state.form.totalMass = parseFloat(data.gross);
  427. state.form.vehNegImgUrl = data.imageUrl;
  428. state.FormData.vehNegImgUrl = data.imageUrl
  429. }
  430. state.isTakePhotoModeShow = false
  431. })
  432. }
  433. const takePhotoMode = (index) => {
  434. console.log("index", index)
  435. state.isTakePhotoModeShow = true
  436. state.choiceIndex = index
  437. }
  438. const cancle = () => {
  439. state.isTakePhotoModeShow = false
  440. }
  441. const camera = () => {
  442. state.phoneType = 0
  443. }
  444. </script>
  445. <style lang="scss" scoped>
  446. .title {
  447. font-size: 35rpx;
  448. font-family: Microsoft YaHei;
  449. font-weight: 400;
  450. color: #000000;
  451. line-height: 80rpx;
  452. margin-bottom: 10rpx;
  453. }
  454. .content-wrap {
  455. position: relative;
  456. margin-top: 50rpx;
  457. padding: 0rpx 30rpx;
  458. display: flex;
  459. .big {
  460. font-size: 30rpx;
  461. font-family: Microsoft YaHei;
  462. font-weight: 400;
  463. color: #333333;
  464. line-height: 24rpx;
  465. }
  466. .nomal {
  467. font-size: 26rpx;
  468. font-family: Microsoft YaHei;
  469. font-weight: 400;
  470. color: #666666;
  471. line-height: 24rpx;
  472. }
  473. .tip {
  474. margin-top: -5px;
  475. width: 117rpx;
  476. height: 16rpx;
  477. background: #00b38b;
  478. opacity: 0.3;
  479. }
  480. }
  481. .content {
  482. padding: 0rpx 30rpx 50rpx 30rpx;
  483. .item {
  484. padding: 20rpx;
  485. display: flex;
  486. justify-content: space-between;
  487. align-items: center;
  488. height: 130rpx;
  489. background: #ffffff;
  490. box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
  491. border-radius: 20rpx;
  492. margin-bottom: 30rpx;
  493. .iten-left {
  494. display: flex;
  495. align-items: center;
  496. image {
  497. width: 150rpx;
  498. height: 90rpx;
  499. }
  500. text {
  501. margin-left: 20rpx;
  502. font-size: 32rpx;
  503. font-family: Noto Sans S Chinese;
  504. font-weight: 400;
  505. color: #333333;
  506. }
  507. }
  508. .choose-item {
  509. width: 44rpx;
  510. height: 44rpx;
  511. background: #ffffff;
  512. border: 2rpx solid #00b38b;
  513. border-radius: 50%;
  514. margin-right: 20rpx;
  515. display: flex;
  516. justify-content: center;
  517. align-items: center;
  518. box-sizing: content-box;
  519. }
  520. .active {
  521. width: 34rpx;
  522. height: 34rpx;
  523. background: #00b38b;
  524. border-radius: 50%;
  525. }
  526. }
  527. .action {
  528. padding-left: 20rpx;
  529. padding-right: 20rpx;
  530. padding-bottom: 30rpx;
  531. .button {
  532. height: 80rpx;
  533. background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
  534. border-radius: 40rpx;
  535. font-size: 32rpx;
  536. font-weight: 400;
  537. color: #ffffff;
  538. line-height: 80rpx;
  539. }
  540. }
  541. .item-tips {
  542. .title {
  543. font-size: 30rpx;
  544. font-family: Microsoft YaHei;
  545. font-weight: 400;
  546. color: #000000;
  547. line-height: 24rpx;
  548. }
  549. .tip {
  550. margin-top: 16rpx;
  551. font-size: 24rpx;
  552. font-family: Microsoft YaHei;
  553. font-weight: 400;
  554. color: #999999;
  555. line-height: 24rpx;
  556. }
  557. }
  558. .picture-wrapper {
  559. margin-top: 40rpx;
  560. .bg {
  561. background: #ffffff;
  562. box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8);
  563. border-radius: 20rpx;
  564. padding: 40rpx;
  565. display: flex;
  566. // align-items: center;
  567. justify-content: space-between;
  568. .name {
  569. font-size: 34rpx;
  570. font-family: Microsoft YaHei;
  571. font-weight: 400;
  572. color: #000000;
  573. line-height: 34rpx;
  574. }
  575. .value {
  576. margin-top: 20rpx;
  577. font-size: 24rpx;
  578. font-family: Microsoft YaHei;
  579. font-weight: 400;
  580. color: #999999;
  581. line-height: 24rpx;
  582. }
  583. .tip {
  584. margin-top: 20rpx;
  585. text-align: center;
  586. width: 110rpx;
  587. height: 40rpx;
  588. background: rgba(33, 190, 177, 0.2);
  589. border-radius: 6rpx;
  590. .tip-value {
  591. font-size: 20rpx;
  592. font-family: Microsoft YaHei;
  593. font-weight: 400;
  594. color: #0a8f8a;
  595. line-height: 40rpx;
  596. opacity: 1;
  597. }
  598. }
  599. }
  600. .icon {
  601. width: 294rpx;
  602. height: 188rpx;
  603. }
  604. }
  605. .shibie-wrapper {
  606. margin-top: 60rpx;
  607. .title {
  608. font-size: 30rpx;
  609. font-family: Microsoft YaHei;
  610. font-weight: 400;
  611. color: #000000;
  612. line-height: 30rpx;
  613. }
  614. ::v-deep .u-form-item {
  615. border-bottom: 1rpx solid #DCDCDC;
  616. padding: 10rpx 0;
  617. }
  618. }
  619. .buchong-wrapper {
  620. margin-top: 60rpx;
  621. .title {
  622. font-size: 30rpx;
  623. font-family: Microsoft YaHei;
  624. font-weight: 400;
  625. color: #000000;
  626. line-height: 30rpx;
  627. }
  628. }
  629. .green-tip {
  630. margin-top: 50rpx;
  631. font-size: 24rpx;
  632. font-family: Microsoft YaHei;
  633. font-weight: 400;
  634. color: #00b38b;
  635. line-height: 24rpx;
  636. margin-bottom: 60rpx;
  637. }
  638. }
  639. .choice-takePhoto {
  640. position: absolute;
  641. bottom: 0;
  642. background-color: white;
  643. width: 100%;
  644. border-radius: 20rpx 20rpx 0 0;
  645. }
  646. .choice-takePhoto>view:first-child {
  647. text-align: center;
  648. height: 80rpx;
  649. line-height: 80rpx;
  650. border-bottom: 1rpx solid rgba(127, 127, 127, 0.3);
  651. background-color: white;
  652. }
  653. .choice-takePhoto>view:last-child {
  654. text-align: center;
  655. height: 80rpx;
  656. line-height: 80rpx;
  657. border-top: 6rpx solid rgba(127, 127, 127, 0.1);
  658. background-color: white;
  659. }
  660. .choice-takePhoto>view {
  661. text-align: center;
  662. height: 80rpx;
  663. line-height: 80rpx;
  664. background-color: white;
  665. }
  666. .choice-takePhoto-wrap {
  667. width: 100%;
  668. height: 100vh;
  669. background-color: rgba(127, 127, 127, 0.2);
  670. position: fixed;
  671. left: 0;
  672. top: 0;
  673. z-index: 11111;
  674. }
  675. </style>