index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. <!-- 证件识别 -->
  2. <template>
  3. <view>
  4. <!-- {{ userInfoData.customersfrz }} 判断该账号是否已经完成实名认证 -->
  5. <view class="realname">
  6. <!-- 输入您的姓名 -->
  7. <view class="cu-bar bg-white qyyyzz">
  8. <view class="action sub-title">
  9. <text class="text-xl text-bold text-blue">您的身份</text>
  10. <text class="text-ABC text-blue"></text>
  11. </view>
  12. </view>
  13. <view class="input_box">
  14. <u-radio-group v-model="formData.customerzjlx">
  15. <u-radio active-color="#eab766" name="中国大陆人员"> 中国大陆人员 </u-radio>
  16. <u-radio active-color="#eab766" name="港澳台/外籍人员"> 港澳台/外籍人员 </u-radio>
  17. </u-radio-group>
  18. </view>
  19. <view class="cu-bar bg-white qyyyzz">
  20. <view class="action sub-title">
  21. <text class="text-xl text-bold text-blue">个人信息</text>
  22. <text class="text-ABC text-blue"></text>
  23. </view>
  24. </view>
  25. <view class="input_box">
  26. <input class="input" placeholder="输入手机号码" v-model="formData.customertel" />
  27. </view>
  28. <view class="input_box">
  29. <input class="input" placeholder="输入证件姓名" v-model="formData.customername" />
  30. </view>
  31. <view class="input_box">
  32. <input class="input" placeholder="输入证件号" v-model="formData.customerzjhm" />
  33. </view>
  34. <view class="input_box flex">
  35. <input class="input" disabled style="flex-grow: 1; background: #fff" placeholder="填写验证码" v-model="smsCode" />
  36. <view class="inputBtn" @click="handelSmsCaptcha()">
  37. <text v-if="!smsState" class="activate">获取验证码</text>
  38. <text v-else class="un-activate">重新发送({{ times }})秒</text>
  39. </view>
  40. </view>
  41. <view v-if="formData.customerzjlx === '中国大陆人员'">
  42. <!-- 身份证 -->
  43. <view class="cu-bar bg-white">
  44. <view class="action sub-title">
  45. <text class="text-xl text-bold text-blue">请拍摄并上传个人证件</text>
  46. <text class="text-ABC text-blue"> </text>
  47. </view>
  48. </view>
  49. <view class="uploadBox">
  50. <view style="width: 43%">
  51. <view class="uploadItem">
  52. <view class="imgBox imgEx1">
  53. <view class="leftTop"></view>
  54. <view class="leftTop2"></view>
  55. <view class="leftbottom"></view>
  56. <view class="leftbottom2"></view>
  57. <view class="rightTop"></view>
  58. <view class="rightTop2"></view>
  59. <view class="rightbottom"></view>
  60. <view class="rightbottom2"></view>
  61. </view>
  62. <image class="imgUrl" v-if="imgUrl1" :src="imgUrl1"></image>
  63. </view>
  64. <view
  65. @click="uploadImg('imgUrl1', {attmodel: 'sfz-zhengmian', attpath: '/certificate/personageidc/', attother2: '身份证正面'})"
  66. class="leftBtn text-white text-lg text-center"
  67. >上传正面</view
  68. >
  69. </view>
  70. <view style="width: 43%">
  71. <view class="uploadItem">
  72. <view class="imgBox imgEx2">
  73. <view class="leftTop"></view>
  74. <view class="leftTop2"></view>
  75. <view class="leftbottom"></view>
  76. <view class="leftbottom2"></view>
  77. <view class="rightTop"></view>
  78. <view class="rightTop2"></view>
  79. <view class="rightbottom"></view>
  80. <view class="rightbottom2"></view>
  81. </view>
  82. <image class="imgUrl" v-if="imgUrl2" :src="imgUrl2"></image>
  83. </view>
  84. <view
  85. @click="uploadImg('imgUrl2', {attmodel: 'sfz-fanmian', attpath: '/certificate/personageidc/', attother2: '身份证反面'})"
  86. class="leftBtn text-white text-lg text-center"
  87. >上传反面</view
  88. >
  89. </view>
  90. </view>
  91. <view class="uploadText">图片格式要求PNG、JPG、BMP、TIFF、WebP,不超过5M</view>
  92. <!-- 身份证 -->
  93. <view class="cu-bar bg-white">
  94. <view class="action sub-title">
  95. <text class="text-xl text-bold text-blue" @click="renlianheshi">完成人脸核实信息</text>
  96. <text class="text-ABC text-blue"> </text>
  97. </view>
  98. </view>
  99. <view class="input_box flex">
  100. <view class="rlhsBtn r_flex_center" @click="handelSmsCaptcha()">
  101. <i-face-recognition style="margin-right: 10rpx" theme="outline" size="22" fill="#eab766" :strokeWidth="2" strokeLinejoin="bevel" strokeLinecap="square" />
  102. <text class="activate">{{ shibieMsg }}</text>
  103. </view>
  104. </view>
  105. </view>
  106. <!-- 护照、有效证件 -->
  107. <view v-if="formData.customerzjlx === '港澳台/外籍人员'">
  108. <!-- 身份证 -->
  109. <view class="cu-bar bg-white">
  110. <view class="action sub-title">
  111. <text class="text-xl text-bold text-blue">请拍摄并上传护照或其它有效证件</text>
  112. <text class="text-ABC text-blue"> </text>
  113. </view>
  114. </view>
  115. <view class="uploadBox">
  116. <view style="width: 43%">
  117. <view class="uploadItem">
  118. <view class="imgBox imgEx1">
  119. <view class="leftTop"></view>
  120. <view class="leftTop2"></view>
  121. <view class="leftbottom"></view>
  122. <view class="leftbottom2"></view>
  123. <view class="rightTop"></view>
  124. <view class="rightTop2"></view>
  125. <view class="rightbottom"></view>
  126. <view class="rightbottom2"></view>
  127. </view>
  128. <image class="imgUrl" v-if="imgHzUrl1" :src="imgHzUrl1"></image>
  129. </view>
  130. <view
  131. @click="uploadImg('imgHzUrl1', {attmodel: 'hz-zhengmian', attpath: '/certificate/personageidc/', attother2: '护照正面'})"
  132. class="leftBtn text-white text-lg text-center"
  133. >上传正面</view
  134. >
  135. </view>
  136. <view style="width: 43%">
  137. <view class="uploadItem">
  138. <view class="imgBox imgEx2">
  139. <view class="leftTop"></view>
  140. <view class="leftTop2"></view>
  141. <view class="leftbottom"></view>
  142. <view class="leftbottom2"></view>
  143. <view class="rightTop"></view>
  144. <view class="rightTop2"></view>
  145. <view class="rightbottom"></view>
  146. <view class="rightbottom2"></view>
  147. </view>
  148. <image class="imgUrl" v-if="imgHzUrl2" :src="imgHzUrl2"></image>
  149. </view>
  150. <view
  151. @click="uploadImg('imgHzUrl2', {attmodel: 'hz-fanmian', attpath: '/certificate/personageidc/', attother2: '护照反面'})"
  152. class="leftBtn text-white text-lg text-center"
  153. >上传反面</view
  154. >
  155. </view>
  156. </view>
  157. <view class="uploadText">图片格式要求PNG、JPG、BMP、TIFF、WebP,不超过5M</view>
  158. <!-- 人脸 -->
  159. <view class="cu-bar bg-white">
  160. <view class="action sub-title">
  161. <text class="text-xl text-bold text-blue">请拍摄并上传人脸正面照片</text>
  162. <text class="text-ABC text-blue"> </text>
  163. </view>
  164. </view>
  165. <view class="uploadBox">
  166. <view style="width: 43%">
  167. <view class="uploadItem">
  168. <view class="imgBox imgExImgUrlHuman"> </view>
  169. <image class="imgUrl" v-if="imgUrlHuman" :src="imgUrlHuman"></image>
  170. </view>
  171. <view
  172. @click="uploadImg('imgUrlHuman', {attmodel: 'ple-renlian', attpath: '/certificate/personageidc/', attother2: '人脸正面'})"
  173. class="leftBtn text-white text-lg text-center"
  174. >拍摄正脸</view
  175. >
  176. </view>
  177. </view>
  178. <view class="uploadText">照片要求清晰、无遮挡、实时拍摄;图片格式要求PNG、JPG、BMP、TIFF、WebP不超过5M</view>
  179. </view>
  180. <view class="cu-bar bg-white margin-top" v-if="false">
  181. <view class="action sub-title">
  182. <text class="text-xl text-bold text-blue">识别内容核对</text>
  183. <text class="text-ABC text-blue"></text>
  184. </view>
  185. </view>
  186. <view class="distinguishBox" v-if="false">
  187. <view>
  188. <text class="text-bold disLabel">姓名:</text>
  189. <text>刘德华</text>
  190. </view>
  191. <view>
  192. <text class="text-bold disLabel">民族:</text>
  193. <text>汉</text>
  194. </view>
  195. <view>
  196. <text class="text-bold disLabel">居住地:</text>
  197. <text>陕西省西安市</text>
  198. </view>
  199. <view>
  200. <text class="text-bold disLabel">身份证号:</text>
  201. <text>610104196511090809</text>
  202. </view>
  203. </view>
  204. <view class="cu-bar bg-white margin-top">
  205. <view class="action sub-title">
  206. <text class="text-xl text-bold text-blue">拍摄要求须知</text>
  207. <text class="text-ABC text-blue"></text>
  208. </view>
  209. </view>
  210. <view class="requirement">
  211. <view>
  212. <text class="text-gray">请上传大陆公民持有的本人有效身份证;</text>
  213. </view>
  214. <view>
  215. <text class="text-gray">拍摄时确保身份证</text>
  216. <text class="text-red">边框完整,</text>
  217. <text class="text-red">字体清晰,</text>
  218. <text class="text-red">亮度均匀;</text>
  219. </view>
  220. <view class="errorBox">
  221. <view class="item1">
  222. <image class="iconImg" src="/static/discern/ok.png" mode="widthFix"></image>
  223. </view>
  224. <view class="item2">
  225. <image class="iconImg" src="/static/discern/no.png" mode="widthFix"></image>
  226. </view>
  227. <view class="item3">
  228. <image class="iconImg" src="/static/discern/no.png" mode="widthFix"></image>
  229. </view>
  230. <view class="item4">
  231. <image class="iconImg" src="/static/discern/no.png" mode="widthFix"></image>
  232. </view>
  233. </view>
  234. </view>
  235. <view class="submitBtn" @click="upFormData">提交认证</view>
  236. </view>
  237. </view>
  238. </template>
  239. <script>
  240. import * as AppApi from '@/api/app'
  241. import request from '@/utils/request'
  242. import storage from '@/utils/storage'
  243. import * as Verify from '@/utils/verify'
  244. const apiUrl = 'https://hnapi.kdboss.cn'
  245. // 倒计时时长(秒)
  246. const times = 60
  247. export default {
  248. data() {
  249. return {
  250. list: ['隐私说明:请按要求上传真实的证件照片,您所上传的行驶证仅用于平台账户绑定,请放心上传'],
  251. // ../static/me/zjx_me_bg6.jpg
  252. imgUrl1: '',
  253. imgUrl2: '',
  254. imgUrl3: '',
  255. imgHzUrl1: '',
  256. imgHzUrl2: '',
  257. // 外籍人员 人脸
  258. imgUrlHuman: '',
  259. formData: {
  260. customerzjlx: '',
  261. customername: '',
  262. customerzjhm: '',
  263. // 手机号码
  264. customertel: ''
  265. },
  266. imgList: [],
  267. imgss: [],
  268. fileList: '',
  269. // 正在加载
  270. isLoading: false,
  271. // 图形验证码信息
  272. captcha: {},
  273. // 短信验证码发送状态
  274. smsState: false,
  275. // 倒计时
  276. times,
  277. // 手机号
  278. mobile: '',
  279. // 图形验证码
  280. captchaCode: '',
  281. // 短信验证码
  282. smsCode: '',
  283. payorderid: '',
  284. payordercustomerid: '',
  285. shibieMsg: '点击进入人脸活体验证'
  286. }
  287. },
  288. computed: {
  289. userInfoData: () => storage.get('wx_userinfo')
  290. },
  291. watch: {},
  292. onReady() {
  293. // 获取屏幕高度
  294. uni.getSystemInfo({
  295. success: (res) => {
  296. console.log(res.windowHeight)
  297. }
  298. })
  299. },
  300. onLoad(options) {
  301. const app = this
  302. app.payorderid = options.payorderid
  303. app.payordercustomerid = options.payordercustomerid
  304. },
  305. mounted() {
  306. let baseUrl = apiUrl + '/api/attachment/addtoPath?pagevalue=300'
  307. this.fileList = baseUrl
  308. },
  309. methods: {
  310. // 点击发送短信验证码
  311. handelSmsCaptcha() {
  312. const app = this
  313. if (Verify.isEmpty(app.formData.customertel)) {
  314. this.$toast('请填写手机号码')
  315. return false
  316. }
  317. if (app.smsState) {
  318. this.$toast('请稍后再发送')
  319. return false
  320. }
  321. app.sendSmsCaptcha()
  322. },
  323. // 人脸核实
  324. renlianheshi() {},
  325. // 请求发送短信验证码接口
  326. sendSmsCaptcha() {
  327. const app = this
  328. app.isLoading = true
  329. AppApi.getPalList()
  330. .then((result) => {
  331. // 显示发送成功
  332. app.$toast(result.message)
  333. // 执行定时器
  334. app.timer()
  335. })
  336. .finally(() => {
  337. // 显示发送成功
  338. app.$toast('发送成功')
  339. // 执行定时器
  340. app.timer()
  341. app.isLoading = false
  342. })
  343. },
  344. // 执行定时器
  345. timer() {
  346. const app = this
  347. app.smsState = true
  348. const inter = setInterval(() => {
  349. app.times = app.times - 1
  350. if (app.times <= 0) {
  351. app.smsState = false
  352. app.times = times
  353. clearInterval(inter)
  354. }
  355. }, 1000)
  356. },
  357. //头像上传
  358. uploadImg(url, formData) {
  359. const app = this
  360. // 选择图片并上传
  361. uni.chooseImage({
  362. count: 1, // 可选择图片的数量
  363. success: function (chooseResult) {
  364. var tempFilePaths = chooseResult.tempFilePaths
  365. // 上传图片
  366. let baseUrl = apiUrl + '/api/attachment/addtoPath?pagevalue=300'
  367. uni.uploadFile({
  368. url: baseUrl, // 上传图片的服务器接口
  369. filePath: tempFilePaths[0],
  370. name: 'file',
  371. formData: {
  372. ...formData,
  373. attother1: 'zhengjianhao',
  374. attlsh: storage.get('wx_userid')
  375. }, // 证件 身份证 正面
  376. success: function (uploadResult) {
  377. let res = JSON.parse(uploadResult.data)
  378. if (res.Status == 0) {
  379. app[url] = res.Data
  380. console.log(app[url], 'imgUrl1')
  381. app.$toast('上传成功')
  382. } else {
  383. app.$toast('上传失败')
  384. }
  385. // 上传成功后的处理
  386. },
  387. fail: function (error) {
  388. console.log('上传失败', error)
  389. // 上传失败后的处理
  390. }
  391. })
  392. }
  393. })
  394. },
  395. async upFormData() {
  396. const app = this
  397. if (Verify.isEmpty(app.imgUrl1)) {
  398. this.$toast('请上传身份证正面')
  399. return false
  400. }
  401. if (Verify.isEmpty(app.imgUrl2)) {
  402. this.$toast('请上传身份证反面')
  403. return false
  404. }
  405. if (Verify.isEmpty(app.formData.customername)) {
  406. this.$toast('请填写证件姓名')
  407. return false
  408. }
  409. if (Verify.isEmpty(app.formData.customerzjhm)) {
  410. this.$toast('请填写证件号')
  411. return false
  412. }
  413. if (Verify.isEmpty(app.formData.customertel)) {
  414. this.$toast('请填写手机号码')
  415. return false
  416. }
  417. app.isLoading = true
  418. AppApi.bindCustomer({'customerid.value': storage.get('wx_userid'), ...app.formData})
  419. .then((result) => {
  420. console.log(result, 'result')
  421. // 显示操作成功
  422. app.$toast('实名成功')
  423. // 跳转回原页面
  424. setTimeout(() => {
  425. // 订单开通认证
  426. const param = {
  427. orderid: app.payorderid,
  428. customerid: app.payordercustomerid,
  429. tel: app.formData.customertel,
  430. smscode: app.smscode,
  431. //鉴权后获取的token
  432. token: ''
  433. }
  434. this.$navTo('pages/user/index')
  435. }, 1000)
  436. })
  437. .finally(() => (app.isLoading = false))
  438. }
  439. },
  440. onPullDownRefresh() {
  441. console.log('下拉')
  442. // 获取首页数据
  443. uni.stopPullDownRefresh()
  444. }
  445. }
  446. </script>
  447. <style lang="scss" scoped>
  448. .rlhsBtn {
  449. width: 80%;
  450. background-color: #fff;
  451. border-radius: 10rpx;
  452. color: #eab766;
  453. margin: 10rpx 0rpx 26rpx 10rpx;
  454. text-align: center;
  455. padding: 20rpx 26rpx;
  456. height: auto;
  457. border: 1px solid #eab766;
  458. }
  459. .inputBtn {
  460. width: 260rpx;
  461. background-color: #eab766;
  462. border-radius: 10rpx;
  463. color: #fff;
  464. margin: 10rpx 0rpx 26rpx 10rpx;
  465. text-align: center;
  466. padding: 20rpx 26rpx;
  467. height: auto;
  468. }
  469. .realname {
  470. height: 100%;
  471. padding-bottom: 50rpx;
  472. font-size: 30rpx;
  473. background: #ffffff;
  474. .text-blue,
  475. .line-blue,
  476. .lines-blue {
  477. color: #eab766;
  478. }
  479. }
  480. .input_box {
  481. padding: 0 30rpx;
  482. .input {
  483. background: #eab7660a;
  484. border: 1rpx solid #eab766;
  485. border-radius: 10rpx;
  486. margin: 10rpx 0rpx 26rpx;
  487. padding: 20rpx 26rpx;
  488. height: auto;
  489. }
  490. }
  491. .uploadText {
  492. color: #aaaaaa;
  493. font-size: 22rpx;
  494. padding: 0rpx 30rpx 26rpx;
  495. background: #ffffff;
  496. }
  497. .uploadBox {
  498. padding: 15rpx 80rpx 40rpx;
  499. background-color: #ffffff;
  500. display: flex;
  501. justify-content: space-between;
  502. .leftBtn {
  503. width: 100%;
  504. height: 75rpx;
  505. line-height: 75rpx;
  506. background-color: #eab766;
  507. border-radius: 0 0 12rpx 12rpx;
  508. }
  509. .uploadItem {
  510. width: 100%;
  511. height: 200rpx;
  512. background-color: #eab7662d;
  513. border-radius: 15rpx;
  514. padding: 30rpx;
  515. position: relative;
  516. .imgUrl {
  517. width: 100%;
  518. height: 100%;
  519. position: absolute;
  520. left: 0;
  521. top: 0;
  522. }
  523. .imgBox {
  524. width: 100%;
  525. height: 100%;
  526. position: relative;
  527. }
  528. .imgEx1 {
  529. background: url('/static/discern/ex1.png');
  530. background-size: 82%;
  531. background-repeat: no-repeat;
  532. background-position: center;
  533. }
  534. .imgEx2 {
  535. background: url('/static/discern/ex2.png');
  536. background-size: 82%;
  537. background-repeat: no-repeat;
  538. background-position: center;
  539. }
  540. .imgEx3 {
  541. background: url('/static/background/wendang.png');
  542. background-size: 82%;
  543. background-repeat: no-repeat;
  544. background-position: center;
  545. }
  546. .imgExImgUrlHuman {
  547. background: url('/static/background/renlian.png');
  548. background-size: 82%;
  549. background-repeat: no-repeat;
  550. background-position: center;
  551. }
  552. .leftTop {
  553. height: 28rpx;
  554. width: 4rpx;
  555. background-color: #eab766;
  556. position: absolute;
  557. left: 0;
  558. }
  559. .leftTop2 {
  560. height: 4rpx;
  561. width: 28rpx;
  562. background-color: #eab766;
  563. position: absolute;
  564. top: 0;
  565. }
  566. .leftbottom {
  567. height: 28rpx;
  568. width: 4rpx;
  569. background-color: #eab766;
  570. position: absolute;
  571. bottom: 0;
  572. }
  573. .leftbottom2 {
  574. height: 4rpx;
  575. width: 28rpx;
  576. background-color: #eab766;
  577. position: absolute;
  578. bottom: 0;
  579. }
  580. .rightTop {
  581. height: 28rpx;
  582. width: 4rpx;
  583. background-color: #eab766;
  584. position: absolute;
  585. right: 0;
  586. }
  587. .rightTop2 {
  588. height: 4rpx;
  589. width: 28rpx;
  590. background-color: #eab766;
  591. position: absolute;
  592. right: 0;
  593. top: 0;
  594. }
  595. .rightbottom {
  596. height: 28rpx;
  597. width: 4rpx;
  598. background-color: #eab766;
  599. position: absolute;
  600. right: 0;
  601. bottom: 0;
  602. }
  603. .rightbottom2 {
  604. height: 4rpx;
  605. width: 28rpx;
  606. background-color: #eab766;
  607. position: absolute;
  608. right: 0;
  609. bottom: 0;
  610. }
  611. }
  612. .qyyyzz_uploadItem {
  613. height: 255rpx;
  614. }
  615. }
  616. .distinguishBox {
  617. padding: 5rpx 30rpx 20rpx;
  618. background: white;
  619. view {
  620. margin-bottom: 20rpx;
  621. }
  622. }
  623. .disLabel {
  624. text-align-last: justify;
  625. text-align: justify;
  626. text-justify: distribute-all-lines;
  627. min-width: 142rpx;
  628. display: inline-block;
  629. margin-right: 5rpx;
  630. }
  631. .requirement {
  632. padding: 10rpx 30rpx 26rpx;
  633. background: white;
  634. view {
  635. margin-bottom: 10rpx;
  636. }
  637. .errorBox {
  638. display: flex;
  639. justify-content: space-between;
  640. margin-top: 30rpx;
  641. view {
  642. width: 23%;
  643. height: 100rpx;
  644. }
  645. .item1 {
  646. background-image: url('/static/discern/yes.png');
  647. background-repeat: no-repeat;
  648. background-size: 100%;
  649. position: relative;
  650. }
  651. .item2 {
  652. background-image: url('/static/discern/error1.png');
  653. background-repeat: no-repeat;
  654. background-size: 100%;
  655. position: relative;
  656. }
  657. .item3 {
  658. background-image: url('/static/discern/error2.png');
  659. background-repeat: no-repeat;
  660. background-size: 100%;
  661. position: relative;
  662. }
  663. .item4 {
  664. background-image: url('/static/discern/error3.png');
  665. background-repeat: no-repeat;
  666. background-size: 100%;
  667. position: relative;
  668. }
  669. .iconImg {
  670. width: 60rpx;
  671. position: absolute;
  672. bottom: -10px;
  673. left: 50%;
  674. margin-left: -30rpx;
  675. }
  676. }
  677. }
  678. .submitBtn {
  679. width: 90%;
  680. height: 90rpx;
  681. background: #eab766;
  682. line-height: 90rpx;
  683. margin: 50rpx auto;
  684. text-align: center;
  685. font-size: 34rpx;
  686. color: #fff;
  687. border-radius: 12rpx;
  688. }
  689. </style>