editDriverCertification.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. <template>
  2. <view class="content">
  3. <view class="top-head"></view>
  4. <view class="container">
  5. <view class="content1 content-other">
  6. <view class="flex row">
  7. <view class="left-text">姓名</view>
  8. <u--input placeholder="输入姓名" inputAlign='right' border="none" v-model="dataDetails.driverName">
  9. </u--input>
  10. </view>
  11. <view class="flex row">
  12. <view class="left-text">性别</view>
  13. <u-radio-group v-model="dataDetails.driverSex" placement="row">
  14. <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist1" :key="index"
  15. :label="item.name" :name="item.name" @change="radioChange">
  16. </u-radio>
  17. </u-radio-group>
  18. </view>
  19. <view class="flex row">
  20. <view class="left-text">称呼</view>
  21. <u--input placeholder="输入姓氏" class="ch-style" inputAlign='right' border="none"
  22. v-model="dataDetails.driverCall" maxlength="1">
  23. </u--input>
  24. <view style='margin-left:4px;font-size:15px;' class="flex align-center"
  25. v-if="dataDetails.driverSex=='男'">先生</view>
  26. <view style='margin-left:4px;font-size:15px;' class="flex align-center" v-else>女士</view>
  27. </view>
  28. <view class="flex row noborder">
  29. <view class="left-text">联系电话</view>
  30. <u--input maxlength='11' placeholder="请输入联系电话" inputAlign='right' border="none"
  31. v-model="dataDetails.driverPhone">
  32. </u--input>
  33. </view>
  34. <view class="flex row noborder" v-if="dataDetails.driverPhone!=userInfo.phone">
  35. <view class="left-text">验证码</view>
  36. <u--input v-model="dataDetails.verifyCode" border="none" placeholder="请填写验证码"></u--input>
  37. <view class="yzm">
  38. <u-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-code>
  39. <u-button class="yzm-btn" @tap="getCode">{{tips}}</u-button>
  40. </view>
  41. </view>
  42. </view>
  43. <view class="content2 content-other">
  44. <view class="title">上传身份证人像面</view>
  45. <view @click.stop="uploadImg(1,1)" class="picture picture1" v-if="!dataDetails.cardAddressUrl">
  46. <image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
  47. <view class="text">上传身份证人像面</view>
  48. </view>
  49. <view v-if="dataDetails.cardAddressUrl" @click.stop="uploadImg(1,1)" class="preview-card-img picture">
  50. <view @click.stop="delCard(1)">
  51. <image class='del-card' src="@/static/images/common/quxiao@2x.png">
  52. </image>
  53. </view>
  54. <image class="" :src="dataDetails.cardAddressUrl" mode="aspectFit" style=""></image>
  55. </view>
  56. <view class="title">上传身份证国徽面</view>
  57. <view @click="uploadImg(2,2)" class="picture picture2" v-if="!dataDetails.cardBackAddressUrl">
  58. <image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
  59. <view class="text">上传身份证国徽面</view>
  60. </view>
  61. <view v-if="dataDetails.cardBackAddressUrl" @click.stop="uploadImg(2,2)"
  62. class="preview-card-img picture">
  63. <view @click.stop="delCard(2)">
  64. <image class='del-card' src="@/static/images/common/quxiao@2x.png">
  65. </image>
  66. </view>
  67. <image class="" :src="dataDetails.cardBackAddressUrl" mode="aspectFit" style=""></image>
  68. </view>
  69. <view class="flex row">
  70. <view class="left-text">身份证号</view>
  71. <u--input disabled placeholder="请输入身份证号" inputAlign='right' border="none"
  72. v-model="dataDetails.numberCard" maxlength="18">
  73. </u--input>
  74. </view>
  75. <view class="flex row flex-space-between">
  76. <view class="left-text">身份证截止日期</view>
  77. <view class="" @click="selectValidityPeriod">
  78. {{dataDetails.cardValidityDate?dataDetails.cardValidityDate:'选择身份证截止日期>'}}
  79. </view>
  80. </view>
  81. <view class="flex row noborder">
  82. <view class="left-text">身份证地址</view>
  83. <u--textarea v-model="dataDetails.cardAddress" border="none" placeholder="请输入身份证地址" autoHeight
  84. maxlength="30"></u--textarea>
  85. <!-- <u--input placeholder="请输入身份证地址" inputAlign='right' border="none" >
  86. </u--input>-->
  87. </view>
  88. </view>
  89. <u-picker :show="isShowcardValidity" ref="uPicker" :columns="validityPeriod"
  90. @confirm="confirmValidityPeriod" @change="changeHandler" @cancel='isShowcardValidity= false'>
  91. </u-picker>
  92. <itmister-date-picker :overdueContent="'身份证已过期'" :dateStatus="status" :periodOfValidity="true"
  93. :checkYear="year" :checkMonth="month" :checkDay="day" ref="dateEl" :startYear="1999" :futureYear="30"
  94. @dateConfirm="confirmValidityPeriod"></itmister-date-picker>
  95. <u-action-sheet :actions="$helper.imgTypeList" :title="$helper.imgType" :show="isShowimgType"
  96. @select="imgTypeSelect" :closeOnClickOverlay="true" :closeOnClickAction="true"
  97. @close="isShowimgType=false">
  98. </u-action-sheet>
  99. <u-toast ref="uToast"></u-toast>
  100. </view>
  101. <view class="content4">
  102. <view class="next-btn" @click="next()">
  103. 下一步
  104. </view>
  105. </view>
  106. </view>
  107. </template>
  108. <script>
  109. import upload from '@/components/upload.vue';
  110. import permision from "@/js_sdk/wa-permission/permission.js"
  111. import uploadImage from '@/components/ossutil/uploadFile.js';
  112. var _this
  113. import {
  114. mapState
  115. } from 'vuex';
  116. export default {
  117. components: {
  118. upload
  119. },
  120. data() {
  121. return {
  122. canvasSiz: {
  123. width: 188,
  124. height: 273
  125. },
  126. status: 1,
  127. tips: '',
  128. // refCode: null,
  129. seconds: 30,
  130. year: '',
  131. month: '',
  132. day: '',
  133. radiolist1: [{
  134. name: '男',
  135. disabled: false
  136. },
  137. {
  138. name: '女',
  139. disabled: false
  140. },
  141. ],
  142. validityPeriod: [],
  143. isShowcardValidity: false,
  144. uploadType: '',
  145. isShowimgType: false,
  146. dataDetails: {
  147. commonId: '',
  148. driverName: '',
  149. driverSex: '',
  150. driverCall: '',
  151. driverPhone: '',
  152. numberCard: '',
  153. cardAddressUrl: '',
  154. cardBackAddressUrl: '',
  155. cardValidityDate: '',
  156. driverType: '',
  157. driverLicenseHomePage: '',
  158. driverLicenseBackPage: '',
  159. driverLicenseValidityDate: '',
  160. drivingLicenseHomePage: '',
  161. drivingLicenseBackPage: '',
  162. drivingLicenseValidityDate: '',
  163. trailerLicenseHomePage: '',
  164. trailerLicenseBackPage: '',
  165. trailerLicenseValidityDate: '',
  166. qualificationCertificate: '',
  167. qualificationCertificateValidityDate: '',
  168. operationCertificate: '',
  169. operationCertificateValidityDate: '',
  170. trailerOperationCertificate: '',
  171. trailerOperationCertificateValidityDate: '',
  172. },
  173. action: this.$helper.ossUploadUrl,
  174. // maxSize: 50 * 1024 * 1024, //限制文件大小 50M
  175. // isAdd: true,
  176. imagesrc: null
  177. };
  178. },
  179. onLoad() {
  180. _this = this;
  181. console.log(this.userInfo)
  182. this.get_camera_permission()
  183. // this.dataDetails.driverPhone = this.userInfo.phone
  184. this.dataDetails.commonId = this.userInfo.id
  185. //获取认证状态
  186. this.getAuthenticationStatus()
  187. },
  188. computed: {
  189. ...mapState(['hasLogin', 'userInfo']),
  190. },
  191. methods: {
  192. async get_camera_permission() {
  193. var photol = await permision.requestAndroidPermission("android.permission.CAMERA")
  194. if (photol == false) {
  195. uni.showModal({
  196. title: '提示',
  197. content: '您已经关闭相册权限,去设置',
  198. success: function(res) {
  199. if (res.confirm) {
  200. permision.gotoAppPermissionSetting()
  201. // plus.runtime.openURL("app-settings:");
  202. } else if (res.cancel) {
  203. console.log('用户点击取消');
  204. }
  205. }
  206. });
  207. }
  208. },
  209. changeHandler(e) {
  210. const {
  211. columnIndex,
  212. value,
  213. values,
  214. index,
  215. picker = this.$refs.uPicker
  216. } = e
  217. // if (columnIndex === 0) {
  218. // if (e.index != 0) {
  219. // picker.setColumnValues(1, this.validityPeriod[1].shift())
  220. // }
  221. // } else if (columnIndex === 1) {
  222. // if (e.index != 0) {
  223. // picker.setColumnValues(2, this.validityPeriod[2].shift())
  224. // }
  225. // }
  226. },
  227. codeChange(text) {
  228. this.tips = text;
  229. },
  230. getCode() {
  231. if (/^0?1[3|4|5|6|7|8][0-9]\d{8}$/.test(this.dataDetails.driverPhone)) {
  232. if (this.$refs.uCode.canGetCode) {
  233. // 模拟向后端请求验证码
  234. uni.showLoading({
  235. title: '正在获取验证码'
  236. })
  237. _this.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
  238. phone: this.dataDetails.driverPhone
  239. }).then(res => {
  240. uni.hideLoading();
  241. // 这里此提示会被this.start()方法中的提示覆盖
  242. uni.$u.toast('验证码已发送');
  243. // 通知验证码组件内部开始倒计时
  244. this.$refs.uCode.start();
  245. })
  246. .catch(res => {
  247. uni.$u.toast(res.message);
  248. });
  249. // setTimeout(() => {
  250. // }, 2000);
  251. } else {
  252. uni.$u.toast('倒计时结束后再发送');
  253. }
  254. } else {
  255. uni.$u.toast('请输入正确手机号');
  256. }
  257. },
  258. end() {
  259. // uni.$u.toast('倒计时结束');
  260. },
  261. start() {
  262. // uni.$u.toast('倒计时开始');
  263. },
  264. // 性别切换
  265. radioChange(n) {
  266. console.log('radioChange', n);
  267. this.dataDetails.driverSex = n
  268. },
  269. //判断是否是初次认证
  270. getAuthenticationStatus() {
  271. this.$request.baseRequest('', '/driverInfo/firstAuthentication', {
  272. driverPhone: this.userInfo.phone,
  273. }).then(res => {
  274. if (res.code == 200) {
  275. this.dataDetails = res.data
  276. // this.dataDetails.driverName = res.data.driverName
  277. // this.dataDetails.driverSex = res.data.driverSex
  278. // this.dataDetails.driverCall = res.data.driverCall
  279. // this.dataDetails.driverPhone = res.data.driverPhone
  280. // this.dataDetails.cardAddressUrl = res.data.cardAddressUrl
  281. // this.dataDetails.cardBackAddressUrl = res.data.cardBackAddressUrl
  282. // this.dataDetails.numberCard = res.data.numberCard
  283. // this.dataDetails.cardValidityDate = res.data.cardValidityDate
  284. }
  285. })
  286. .catch(res => {
  287. uni.$u.toast(res.message);
  288. });
  289. },
  290. confirmValidityPeriod(date) {
  291. console.log('confirm', date)
  292. this.dataDetails.cardValidityDate = date.date
  293. },
  294. selectValidityPeriod() {
  295. if (this.dataDetails.cardValidityDate != '长期') {
  296. var arr = this.dataDetails.cardValidityDate.split('-')
  297. this.year = arr[0]
  298. this.month = arr[1]
  299. this.day = arr[2]
  300. }
  301. if (this.dataDetails.cardValidityDate == '长期') {
  302. this.year = '长期'
  303. this.month = ''
  304. this.day = ''
  305. }
  306. this.$refs.dateEl.show()
  307. },
  308. //设置图片
  309. setImage(e) {
  310. console.log(e);
  311. //显示在页面
  312. //this.imagesrc = e.path;
  313. if (e.dotype == 'idphoto') {
  314. _this.zjzClipper(e.path);
  315. } else if (e.dotype == 'watermark') {
  316. _this.watermark(e.path);
  317. } else {
  318. _this.savePhoto(e.path);
  319. }
  320. },
  321. //保存图片到相册,方便核查
  322. savePhoto(path) {
  323. this.imagesrc = path;
  324. // this.dataDetails.cardAddressUrl = path
  325. uploadImage(path, 'appData/',
  326. result => {
  327. // 上传成功
  328. console.log('图片地址', result)
  329. this.dataDetails.cardAddressUrl = result
  330. }
  331. )
  332. },
  333. uploadImg(type, index) {
  334. this.uploadType = type
  335. // this.isShowimgType = true
  336. this.index = index
  337. this.imgTypeSelect()
  338. },
  339. delCard(type) {
  340. var _this = this
  341. switch (type) {
  342. case 1:
  343. _this.dataDetails.cardAddressUrl = ""
  344. break;
  345. case 2:
  346. _this.dataDetails.cardBackAddressUrl = ""
  347. break;
  348. }
  349. },
  350. // 上传图片
  351. imgTypeSelect() {
  352. // console.log(val)
  353. console.log(this.uploadType)
  354. // if (val.name == '相册') {
  355. uni.chooseImage({
  356. count: 1,
  357. sizeType: ['compressed'],
  358. // sourceType: this.$helper.chooseImage.sourceType,
  359. success: function(res) {
  360. console.log(JSON.stringify(res.tempFilePaths));
  361. uploadImage('image', res.tempFilePaths[0], 'appData/',
  362. result => {
  363. // 上传成功回调函数
  364. console.log('图片地址', result)
  365. switch (_this.uploadType) {
  366. // 身份正面
  367. case 1:
  368. _this.dataDetails.cardAddressUrl = result
  369. // 识别
  370. _this.$request.baseRequest('get',
  371. '/driverInfo/personShibie', {
  372. personImg: result,
  373. flag: 1
  374. }).then(res => {
  375. if (res.data) {
  376. _this.dataDetails.cardAddress = res.data
  377. .recPersonAddr
  378. // _this.dataDetails.numberCard = res.data.recPersonNo
  379. if (res.data.recPerson) {
  380. _this.dataDetails.driverName = res.data
  381. .recPerson
  382. _this.dataDetails.driverCall = res.data
  383. .recPerson.substring(0, 1)
  384. }
  385. _this.dataDetails.driverBirthday = res.data
  386. .recPersonBrithday
  387. }
  388. })
  389. .catch(res => {
  390. uni.$u.toast(res.message);
  391. });
  392. break
  393. // 身份反面
  394. case 2:
  395. _this.dataDetails.cardBackAddressUrl = result
  396. // 识别
  397. _this.$request.baseRequest('get',
  398. '/driverInfo/personShibie', {
  399. personImg: result,
  400. flag: 2
  401. }).then(res => {
  402. if (res.data.idCardValidity) {
  403. let date = res.data.idCardValidity.split("-")[1]
  404. _this.dataDetails.cardValidityDate = date.replace(
  405. '.', '-').replace('.', '-')
  406. }
  407. })
  408. .catch(res => {
  409. uni.$u.toast(res.message);
  410. });
  411. break
  412. case 3:
  413. break;
  414. }
  415. }
  416. )
  417. }
  418. });
  419. // } else {
  420. // switch (this.uploadType) {
  421. // case 0:
  422. // break
  423. // case 1:
  424. // uni.$u.route('/pages/mine/camera/idcard/idcard?dotype=idcardface');
  425. // console.log('身份正面')
  426. // break
  427. // case 2:
  428. // uni.$u.route('/pages/mine/camera/idcard/idcard?dotype=badge');
  429. // console.log('身份反面')
  430. // break
  431. // case 3:
  432. // break
  433. // case 4:
  434. // }
  435. // }
  436. },
  437. next(val) {
  438. if (this.validate()) return
  439. uni.$u.route('/pages/mine/editDriverCertificationNext', {
  440. data: JSON.stringify(this.dataDetails),
  441. });
  442. },
  443. validate() {
  444. // true 为校验不通过
  445. if (uni.$u.test.isEmpty(this.dataDetails.driverName)) {
  446. this.$refs.uToast.show({
  447. type: 'error',
  448. message: "司机姓名不能为空!",
  449. })
  450. return true
  451. }
  452. if (!uni.$u.test.chinese(this.dataDetails.driverName)) {
  453. this.$refs.uToast.show({
  454. type: 'error',
  455. message: "姓名为汉字!",
  456. })
  457. return true
  458. }
  459. if (uni.$u.test.isEmpty(this.dataDetails.driverCall)) {
  460. this.$refs.uToast.show({
  461. type: 'error',
  462. message: "司机称呼不能为空!",
  463. })
  464. return true
  465. }
  466. if (!uni.$u.test.chinese(this.dataDetails.driverCall)) {
  467. this.$refs.uToast.show({
  468. type: 'error',
  469. message: "称呼为汉字!",
  470. })
  471. return true
  472. }
  473. if (uni.$u.test.isEmpty(this.dataDetails.driverPhone)) {
  474. this.$refs.uToast.show({
  475. type: 'error',
  476. message: "联系电话不能为空!",
  477. })
  478. return true
  479. }
  480. if (!uni.$u.test.mobile(this.dataDetails.driverPhone)) {
  481. this.$refs.uToast.show({
  482. type: 'error',
  483. message: "电话号码格式错误!",
  484. })
  485. return true
  486. }
  487. // for (let i = 0; i < this.dataDetails.hyDriverCarInfoList.length; i++) {
  488. // let _item = this.dataDetails.hyDriverCarInfoList[i]
  489. // if (uni.$u.test.isEmpty(_item.carNumber)) {
  490. // this.$refs.uToast.show({
  491. // type: 'error',
  492. // message: "车牌号不能为空!",
  493. // })
  494. // return true
  495. // }
  496. // if (uni.$u.test.isEmpty(_item.fileList1)) {
  497. // this.$refs.uToast.show({
  498. // type: 'error',
  499. // message: "人车合影不能为空!",
  500. // })
  501. // return true
  502. // }
  503. // }
  504. if (uni.$u.test.isEmpty(this.dataDetails.cardAddressUrl)) {
  505. this.$refs.uToast.show({
  506. type: 'error',
  507. message: "身份证人像页不能为空!",
  508. })
  509. return true
  510. }
  511. if (uni.$u.test.isEmpty(this.dataDetails.cardBackAddressUrl)) {
  512. this.$refs.uToast.show({
  513. type: 'error',
  514. message: "身份证国徽页不能为空!",
  515. })
  516. return true
  517. }
  518. if (uni.$u.test.isEmpty(this.dataDetails.cardValidityDate)) {
  519. this.$refs.uToast.show({
  520. type: 'error',
  521. message: "身份证人有效截止日期不能为空!",
  522. })
  523. return true
  524. }
  525. if (uni.$u.test.isEmpty(this.dataDetails.cardAddress)) {
  526. this.$refs.uToast.show({
  527. type: 'error',
  528. message: "身份证地址为空!",
  529. })
  530. return true
  531. }
  532. return false
  533. }
  534. },
  535. };
  536. </script>
  537. <style scoped lang="scss">
  538. /deep/.u-radio {
  539. margin-bottom: 0 !important;
  540. }
  541. .top-head {
  542. background: #F5BA3C;
  543. height: 80rpx;
  544. width: 100%;
  545. }
  546. .container {
  547. position: relative;
  548. top: -60rpx;
  549. margin: 0 20rpx;
  550. }
  551. .row4-img {
  552. width: 32rpx;
  553. height: 32rpx;
  554. }
  555. .content1,
  556. .content2,
  557. .content3 {
  558. .left-text {
  559. width: 290rpx;
  560. color: #333333;
  561. display: flex;
  562. align-items: center;
  563. }
  564. .row {
  565. border-bottom: 1px solid #EEEEEE;
  566. padding-bottom: 28rpx;
  567. margin-top: 26rpx;
  568. .ch-style {}
  569. }
  570. .row-ch {
  571. padding-right: 180rpx;
  572. box-sizing: border-box;
  573. }
  574. }
  575. .content1-car {
  576. margin-top: 20rpx;
  577. .left-text {
  578. width: 290rpx;
  579. color: #333333;
  580. display: flex;
  581. align-items: center;
  582. }
  583. .row {
  584. border-bottom: 1px solid #EEEEEE;
  585. padding-bottom: 28rpx;
  586. margin-top: 26rpx;
  587. .color {
  588. // background: blue;
  589. width: 340rpx;
  590. }
  591. }
  592. }
  593. .input-ckg {
  594. height: 86rpx;
  595. margin-top: 0 !important;
  596. padding-bottom: 0 !important;
  597. .u-input {
  598. height: 100%;
  599. background: #F7F8FA;
  600. padding-left: 10rpx !important;
  601. padding-right: 85rpx !important;
  602. }
  603. .star {
  604. display: flex;
  605. align-items: center;
  606. margin: 0 10rpx;
  607. }
  608. .input-positon {
  609. position: relative;
  610. }
  611. .position-right {
  612. position: absolute;
  613. right: 20rpx;
  614. top: 0;
  615. width: 60rpx;
  616. height: 50rpx;
  617. bottom: 0;
  618. margin: auto;
  619. }
  620. }
  621. .picture {
  622. margin-top: 20rpx;
  623. background: #F5F6FA;
  624. width: 212rpx;
  625. height: 212rpx;
  626. border-radius: 20rpx;
  627. display: flex;
  628. flex-direction: column;
  629. justify-content: center;
  630. align-items: center;
  631. color: #6A7282;
  632. }
  633. .add-car {
  634. background: #FFFFFF;
  635. margin: 20rpx 50rpx;
  636. border-radius: 50rpx;
  637. display: flex;
  638. justify-content: center;
  639. align-items: center;
  640. padding: 20rpx 0;
  641. .icon {
  642. margin-right: 20rpx;
  643. }
  644. .car-text {
  645. font-size: 36rpx;
  646. font-weight: 700;
  647. color: #F5BA3C;
  648. }
  649. }
  650. .carlist-item {
  651. margin-top: 20rpx;
  652. padding: 0 20rpx 20rpx 20rpx;
  653. background: white;
  654. border-radius: 10rpx;
  655. position: relative;
  656. .del-car {
  657. position: absolute;
  658. top: 0;
  659. right: 0;
  660. width: 80rpx;
  661. height: 80rpx;
  662. }
  663. }
  664. .content2,
  665. .content3 {
  666. .del-bank {
  667. position: absolute;
  668. top: 0;
  669. right: 0;
  670. width: 80rpx;
  671. height: 80rpx;
  672. }
  673. .picture {
  674. width: 100%;
  675. height: 440rpx;
  676. position: relative;
  677. .text {
  678. margin-top: 20rpx;
  679. }
  680. }
  681. .picture1 {
  682. background: url(../../static/images/mine/zm.png);
  683. background-size: 100% 100%;
  684. }
  685. .picture2 {
  686. background: url(../../static/images/mine/gh.png);
  687. background-size: 100% 100%;
  688. }
  689. .picture3 {
  690. background: url(../../static/images/mine/yhkzm.png);
  691. background-size: 100% 100%;
  692. }
  693. .xj-image {
  694. width: 100rpx;
  695. height: 100rpx;
  696. }
  697. .title {
  698. color: #999999;
  699. margin: 20rpx 0;
  700. }
  701. }
  702. .content3 {
  703. position: relative;
  704. background: white;
  705. margin: 20rpx 0 0 0;
  706. border-radius: 10rpx;
  707. padding: 20rpx;
  708. .khzh-styel {
  709. // width: 350rpx;
  710. }
  711. .type {
  712. background: #F5BA3C;
  713. border-radius: 10rpx;
  714. color: white;
  715. box-sizing: border-box;
  716. padding: 4rpx 10rpx;
  717. font-size: 26rpx;
  718. display: flex;
  719. justify-content: center;
  720. align-items: center;
  721. }
  722. .select-bankzh {
  723. width: 230rpx;
  724. height: 48rpx;
  725. }
  726. }
  727. .content4 {
  728. display: flex;
  729. justify-content: center;
  730. background: white;
  731. padding: 40rpx 20rpx 50rpx 20rpx;
  732. .next-btn {
  733. background:#F5BA3C;
  734. width: 90%;
  735. padding: 20rpx 20rpx;
  736. text-align: center;
  737. color: #fff;
  738. border-radius: 50rpx;
  739. }
  740. }
  741. .yzm {}
  742. .yzm-btn {
  743. background: #F5BA3C;
  744. color: white;
  745. height: 60rpx;
  746. }
  747. .preview-card-img {
  748. // /deep/uni-image>div,
  749. // uni-image>img {
  750. // transform: scale(1.5) rotate(-90deg);
  751. // }
  752. }
  753. .del-card {
  754. position: absolute;
  755. top: -10rpx;
  756. right: -6rpx;
  757. width: 80rpx;
  758. height: 80rpx;
  759. z-index: 9;
  760. }
  761. /deep/.u-radio {
  762. margin-left: 10px;
  763. }
  764. /deep/.uni-input-input:disabled {
  765. background: #fff;
  766. }
  767. /deep/.u-radio-group--row {
  768. justify-content: flex-end;
  769. }
  770. /deep/.u-textarea {
  771. padding: 9px 0;
  772. }
  773. /deep/.u-textarea__field {
  774. color: #000;
  775. text-align: right;
  776. }
  777. </style>