mySet.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  1. <template>
  2. <view class="content">
  3. <view class="content1 flex-between relative flex">
  4. <view class="user flex">
  5. <image :src="userInfo.head?userInfo.head:'../../static/imgs/mySet/head.png'" mode="widthFix" class="img"
  6. @click="editHead"></image>
  7. <view @click="editNickName" class="name">
  8. {{userInfo.nickname?userInfo.nickname:''}}
  9. </view>
  10. </view>
  11. <view class="position">
  12. <image @click='selectCard' src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
  13. <image @click='selectCard1' src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="right-img">
  14. </image>
  15. </view>
  16. </view>
  17. <view class="content2">
  18. <view class="row flex flex-between" v-for="(item,index) in menuList" :key='index'
  19. @click="menuClick(item.type)">
  20. <view class="flex" style="width: 100%;">
  21. <image :src="item.src" mode="widthFix" class="nav-img"></image>
  22. <button class="left-btn" v-if='item.type=="contactCustomer"' open-type='contact'
  23. style="width: 90%;">{{item.name}}</button>
  24. <span class="left" v-else>{{item.name}}</span>
  25. </view>
  26. <span class="right">
  27. <image src="../../static/imgs/mySet/yjt.png" mode="widthFix" class="row-right-img"></image>
  28. </span>
  29. </view>
  30. </view>
  31. <u-popup :show="isShowCode" @close="isShowCode=false" mode="center" :round='10'>
  32. <image :src="selectCode" mode="widthFix" style="height: auto;"></image>
  33. </u-popup>
  34. <u-picker :immediateChange="true" keyName="cardBusiness" :confirmType='"share"' :confirmText='"分享"' title="选择名片"
  35. @cancel="show=false" closeOnClickOverlay @change="cardChange" :show="show" :columns="cardList"></u-picker>
  36. <u-picker :immediateChange="true" keyName="cardBusiness" confirmText='确定' title="选择名片" @cancel="show1=false"
  37. closeOnClickOverlay @confirm="cardConfirm" :show="show1" :columns="cardList"></u-picker>
  38. <poster :data="canvasData" background-color="#FFF" :width='750' :height='420' @on-success="posterSuccess"
  39. ref="poster" @on-error="posterError"></poster>
  40. <!-- #ifdef MP-WEIXIN -->
  41. <u-modal :show="showAuthorizePhone" :showConfirmButton="false">
  42. <view class="slot-content">
  43. <view class="auth-card">
  44. <view class="img">
  45. <img class="avatar-img" src="@/static/imgs/logo.png" mode="widthFix">
  46. </view>
  47. <view class="content">手机登录后才能查看名片哦~</view>
  48. </view>
  49. <view class="auth-btncard">
  50. <view class="btn-unok">
  51. <u-button :customStyle="customStyleUnOk" @click="showAuthorizePhone=false" :plain="true">
  52. 拒绝</u-button>
  53. </view>
  54. <view class="btn-ok">
  55. <u-button :customStyle="customStyleOk" open-type="getPhoneNumber"
  56. @getphonenumber="getPhoneNumber"> 立即登录</u-button>
  57. </view>
  58. </view>
  59. </view>
  60. </u-modal>
  61. <u-modal :show="showAuthorizeUser" :showConfirmButton="false">
  62. <view class="slot-content">
  63. <view class="auth-card">
  64. <view class="img">
  65. <img class="avatar-img" src="/static/imgs/logo.png" mode="widthFix">
  66. </view>
  67. <view class="content">邀请您补全个人信息<br></br>(昵称、头像)</view>
  68. <view style="margin-left: 100rpx;margin-right: 100rpx">
  69. <u-form :model="userInfo" ref="uForm">
  70. <u-form-item label="头像">
  71. <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
  72. slot="right">
  73. <image class="avatar"
  74. :src="userInfo.head?userInfo.head:'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'">
  75. </image>
  76. </button>
  77. </u-form-item>
  78. <u-form-item label="昵称">
  79. <u-input inputAlign='right' v-model="userInfo.nickname" class="weui-input"
  80. @blur="userNameInput" placeholder="请输入昵称" border="false" />
  81. <!-- <input type="nickname" :value="userInfo.nickname" class="weui-input" @blur="userNameInput" placeholder="请输入昵称"/> -->
  82. </u-form-item>
  83. </u-form>
  84. </view>
  85. </view>
  86. <view class="auth-btncard">
  87. <view class="btn-unok"><u-button :customStyle="customStyleUnOk" @click="authUser(0)">
  88. 拒绝</u-button>
  89. </view>
  90. <view class="btn-ok">
  91. <u-button :customStyle="customStyleOk" @click="authUser(1)"> 允许</u-button>
  92. </view>
  93. </view>
  94. </view>
  95. </u-modal>
  96. <!-- #endif -->
  97. <u-toast ref="uToast"></u-toast>
  98. </view>
  99. </template>
  100. <script>
  101. var that;
  102. import uploadImage from '@/components/ossutil/uploadFile.js';
  103. import {
  104. pathToBase64,
  105. base64ToPath
  106. } from 'image-tools'
  107. import Poster from '../../components/zhangyuhao-poster/Poster.vue'
  108. export default {
  109. components: {
  110. Poster
  111. },
  112. data() {
  113. return {
  114. // 是否弹出登录注册授权弹窗
  115. showAuthorizeUser: false,
  116. showAuthorizePhone: false,
  117. customStyleUnOk: {
  118. marginTop: '20rpx',
  119. color: '#18254C',
  120. border: '2px solid #18254C',
  121. "border-radius": "10px",
  122. fontSize: "32rpx"
  123. },
  124. customStyleOk: {
  125. marginTop: '20rpx',
  126. color: '#fff',
  127. border: '2px solid #18254C',
  128. "border-radius": "10px",
  129. fontSize: "32rpx",
  130. background: "#18254C"
  131. },
  132. userInfo: {},
  133. cardList: [],
  134. canvasData: {},
  135. currectData: {},
  136. list: [],
  137. index: 0,
  138. selectCode: '',
  139. show: false,
  140. clicknum: 0,
  141. popupshow: false,
  142. show1: false,
  143. isShowCode: false,
  144. menuList: [{
  145. name: "我的名片",
  146. type: 'myInfo',
  147. src: '../../static/imgs/mySet/card.png'
  148. },
  149. {
  150. name: "我的主页",
  151. type: 'myHome',
  152. src: '../../static/imgs/mySet/home.png'
  153. },
  154. {
  155. name: "名片分类",
  156. type: "cardType",
  157. src: '../../static/imgs/mySet/type.png'
  158. },
  159. {
  160. name: "我的证件",
  161. type: "myCard",
  162. src: '../../static/imgs/mySet/card1.png'
  163. },
  164. {
  165. name: "帮助说明",
  166. type: "help",
  167. src: '../../static/imgs/mySet/help.png'
  168. },
  169. {
  170. name: "联系客服",
  171. type: "contactCustomer",
  172. src: '../../static/imgs/mySet/kf.png'
  173. },
  174. {
  175. name: "生成海报",
  176. type: "poster",
  177. src: '../../static/imgs/mySet/hb.png'
  178. },
  179. {
  180. name: "设置",
  181. type: 'set',
  182. src: '../../static/imgs/mySet/set.png'
  183. },
  184. ]
  185. };
  186. },
  187. beforeDestroy() {
  188. this.show = false
  189. },
  190. onShow() {
  191. this.userInfo = uni.getStorageSync("userInfo")
  192. if (this.userInfo.phone) {
  193. this.getData()
  194. } else {
  195. this.showAuthorizePhone = true
  196. }
  197. },
  198. onLoad() {
  199. that = this
  200. },
  201. onShareAppMessage(res) {
  202. this.popupshow = false
  203. console.log(res, this.popupshow)
  204. let that = this;
  205. //生成名片图片
  206. let imageUrl = this.poster
  207. console.log("imageUrl", imageUrl)
  208. if (res.from === 'button') {
  209. let path = `/pages/cardHolder/scanCodeAddCard?id=${that.currectData.id}`
  210. return {
  211. title: `${that.currectData.name}分享的名片~`,
  212. path: path,
  213. imageUrl: imageUrl,
  214. };
  215. }
  216. if (res.from === 'menu') {
  217. return {
  218. title: '名片Box',
  219. path: '/pages/cardHolder/cardHolder',
  220. imageUrl: ''
  221. };
  222. }
  223. },
  224. methods: {
  225. getData() {
  226. this.$request.baseRequest('admin.unimall.cardManagementInfo', 'list', {
  227. commonId: this.userInfo.id
  228. }, failres => {
  229. uni.hideLoading()
  230. uni.showToast({
  231. icon: "none",
  232. title: failres.errmsg,
  233. duration: 3000
  234. });
  235. }).then(res => {
  236. this.list = res.data.items
  237. this.cardList = [res.data.items]
  238. })
  239. },
  240. //获取昵称输入内容
  241. userNameInput(e) {
  242. this.userInfo.nickname = e.detail.value
  243. },
  244. async onChooseAvatar(e) {
  245. this.$set(this.userInfo, "head", await this.toBase64(e.detail.avatarUrl))
  246. },
  247. toBase64(url) {
  248. return new Promise(resolve => {
  249. pathToBase64(url).then(path => {
  250. resolve(path);
  251. }).catch(error => {
  252. console.log(error)
  253. })
  254. })
  255. },
  256. async authUser(type) {
  257. //同步信息,没有头像和昵称自动生成
  258. this.userInfo = await this.$request.syncInfo(this.userInfo)
  259. if (this.userInfo.openId) {
  260. uni.setStorageSync("userInfo", that.userInfo)
  261. that.showAuthorizeUser = false
  262. this.getData()
  263. }
  264. },
  265. async getPhoneNumber(e) {
  266. that.userInfo = await this.$request.wxlogin()
  267. this.$nextTick(function() {
  268. that.userInfo.phone = that.$request.getPhone(e, that.userInfo)
  269. that.showAuthorizePhone = false
  270. that.showAuthorizeUser = true
  271. });
  272. },
  273. editNickName() {
  274. if (this.userInfo.phone) {
  275. let _url = '/pages/mySet/editNickName'
  276. uni.navigateTo({
  277. url: _url
  278. })
  279. } else {
  280. this.showAuthorizePhone = true
  281. }
  282. },
  283. editHead() {
  284. if (this.userInfo.phone) {
  285. uni.chooseImage({
  286. count: 1,
  287. sizeType: ['original', 'compressed'],
  288. success: function(res) {
  289. uploadImage(res.tempFilePaths[0], 'cardImages/',
  290. result => {
  291. that.userInfo.head = result
  292. that.$request.baseRequest('commonUserApp', 'edit', {
  293. commonUserInfo: JSON.stringify(that.userInfo)
  294. }, failres => {
  295. uni.hideLoading()
  296. uni.showToast({
  297. icon: "none",
  298. title: failres.errmsg,
  299. duration: 3000
  300. });
  301. }).then(res => {
  302. uni.setStorageSync("userInfo", that.userInfo)
  303. uni.showToast({
  304. icon: "success",
  305. title: '修改成功!',
  306. duration: 2000,
  307. complete: function() {
  308. uni.switchTab({
  309. url: "/pages/mySet/mySet"
  310. })
  311. }
  312. })
  313. })
  314. }
  315. )
  316. }
  317. });
  318. } else {
  319. this.showAuthorizePhone = true
  320. }
  321. },
  322. handleHiddenShare() {
  323. this.popupshow = false
  324. },
  325. selectCard() {
  326. if (this.userInfo.phone) {
  327. if (this.cardList[0].length > 0) {
  328. this.index = 0
  329. this.cardChange({
  330. value: this.cardList[[0]]
  331. })
  332. } else if (this.cardList[0].length == 0) {
  333. uni.showToast({
  334. icon: "none",
  335. title: '您还未创建名片',
  336. duration: 3000
  337. })
  338. }
  339. } else {
  340. this.showAuthorizePhone = true
  341. }
  342. },
  343. selectCard1() {
  344. if (this.userInfo.phone) {
  345. console.log(this.cardList[0])
  346. if (this.cardList[0].length > 1) {
  347. this.show1 = true
  348. } else if (this.cardList[0].length > 0) {
  349. this.cardConfirm({
  350. value: this.cardList[[0]]
  351. })
  352. } else if (this.cardList[0].length == 0) {
  353. uni.showToast({
  354. icon: "none",
  355. title: '您还未创建名片',
  356. duration: 3000
  357. })
  358. }
  359. } else {
  360. this.showAuthorizePhone = true
  361. }
  362. },
  363. cardConfirm(e) {
  364. console.log(e)
  365. this.currectData = e.value[0]
  366. this.selectCode = e.value[0].qrCodeMyself
  367. this.show1 = false
  368. this.isShowCode = true
  369. },
  370. cardChange(e) {
  371. console.log(e)
  372. this.currectData = e.value[0]
  373. uni.showLoading({
  374. title: '加载中',
  375. mask: true
  376. })
  377. var data = [{
  378. type: 'image',
  379. path: this.currectData.currentBackground,
  380. use: 'bg',
  381. x: -10,
  382. y: 0,
  383. width: 530,
  384. height: 325
  385. },
  386. {
  387. type: 'image',
  388. path: this.currectData.headSculpture ? this.currectData.headSculpture :
  389. '../../static/imgs/card/defaulthead.png',
  390. shape: 'circle',
  391. use: 'head',
  392. imageType: this.currectData.headSculpture ? 'wl' : 'bd',
  393. x: 30,
  394. y: 30,
  395. width: 100,
  396. height: 100
  397. },
  398. {
  399. type: 'text',
  400. text: this.currectData.name,
  401. use: 'name',
  402. x: 150,
  403. y: 50,
  404. size: 24,
  405. color: '#000'
  406. },
  407. {
  408. type: 'text',
  409. text: this.currectData.post,
  410. use: 'post',
  411. x: 240,
  412. y: 55,
  413. size: 18,
  414. color: '#666666'
  415. },
  416. {
  417. type: 'text',
  418. text: this.currectData.companyName,
  419. use: 'companyName',
  420. x: 150,
  421. y: 95,
  422. size: 18,
  423. color: '#000'
  424. },
  425. {
  426. type: 'image',
  427. path: '../../static/imgs/card/address1.png',
  428. use: 'address-icon',
  429. x: 145,
  430. y: 130,
  431. width: 15,
  432. height: 20
  433. },
  434. {
  435. type: 'textarea',
  436. text: this.currectData.province + this.currectData.city + this.currectData.area + this
  437. .currectData.detailedAddress,
  438. lineSpace: 1,
  439. width: 320,
  440. use: 'address',
  441. x: 175,
  442. y: 135,
  443. size: 14,
  444. color: '#000'
  445. },
  446. {
  447. type: 'image',
  448. path: '../../static/imgs/card/phone1.png',
  449. use: 'phone-icon',
  450. x: 145,
  451. y: 163,
  452. width: 16,
  453. height: 16
  454. },
  455. {
  456. type: 'text',
  457. text: this.currectData.phone,
  458. use: 'phone',
  459. x: 175,
  460. y: 167,
  461. size: 14,
  462. color: '#000'
  463. },
  464. {
  465. type: 'image',
  466. path: '../../static/imgs/card/remark1.png',
  467. use: 'remark-icon',
  468. x: 145,
  469. y: 197,
  470. width: 13,
  471. height: 16
  472. },
  473. {
  474. type: 'textarea',
  475. text: this.currectData.remark ? this.currectData.remark : '单击添加备注',
  476. use: 'remark',
  477. lineSpace: 2,
  478. width: 200,
  479. x: 175,
  480. y: 200,
  481. size: 13,
  482. color: '#000'
  483. },
  484. {
  485. type: 'image',
  486. path: '../../static/imgs/card/bg3.png',
  487. use: 'bg1',
  488. x: 0,
  489. y: 243,
  490. width: 370,
  491. height: 67
  492. },
  493. {
  494. type: 'image',
  495. path: '../../static/imgs/card/bg4.png',
  496. use: 'bg2',
  497. x: 355,
  498. y: 243,
  499. width: 150,
  500. height: 67
  501. },
  502. {
  503. type: 'image',
  504. path: '../../static/imgs/card/home.png',
  505. use: 'home',
  506. x: 65,
  507. y: 260,
  508. width: 33,
  509. height: 33
  510. },
  511. {
  512. type: 'text',
  513. text: this.currectData.classifyName ? this.currectData.classifyName : '默',
  514. use: 'classify',
  515. x: 145,
  516. y: 263,
  517. size: 34,
  518. color: '#fff'
  519. },
  520. {
  521. type: 'image',
  522. path: '../../static/imgs/card/share.png',
  523. use: 'share',
  524. x: 235,
  525. y: 263,
  526. width: 33,
  527. height: 28
  528. },
  529. ]
  530. console.log(this.currectData.cuttentTemplate, 111111)
  531. for (var i = 0; i < data.length; i++) {
  532. switch (this.currectData.cuttentTemplate) {
  533. case '2':
  534. if (data[i].use === 'name' ||
  535. data[i].use === 'companyName' ||
  536. data[i].use === 'address-icon' ||
  537. data[i].use === 'phone-icon' ||
  538. data[i].use === 'remark-icon') {
  539. data[i].x = 30
  540. }
  541. if (data[i].use === 'post') {
  542. data[i].x = 100
  543. }
  544. if (data[i].use === 'address' ||
  545. data[i].use === 'phone' ||
  546. data[i].use === 'remark') {
  547. data[i].x = 60
  548. }
  549. if (data[i].use == 'head') {
  550. data[i].x = 370
  551. }
  552. break;
  553. case '3':
  554. if (data[i].use === 'name') {
  555. data[i].x = 30
  556. data[i].y = 150
  557. }
  558. if (data[i].use === 'companyName') {
  559. data[i].x = 30
  560. data[i].y = 180
  561. }
  562. if (data[i].use === 'post') {
  563. data[i].x = 100
  564. data[i].y = 153
  565. }
  566. if (data[i].use === 'address-icon' ||
  567. data[i].use === 'phone-icon' ||
  568. data[i].use === 'remark-icon') {
  569. data[i].x = 170
  570. }
  571. if (data[i].use === 'address-icon') {
  572. data[i].y = 150
  573. }
  574. if (data[i].use === 'address') {
  575. data[i].y = 155;
  576. data[i].width = 300
  577. }
  578. if (data[i].use === 'phone-icon') {
  579. data[i].y = 180
  580. }
  581. if (data[i].use === 'phone') {
  582. data[i].y = 183
  583. }
  584. if (data[i].use === 'remark-icon') {
  585. data[i].y = 210
  586. }
  587. if (data[i].use === 'remark') {
  588. data[i].y = 212
  589. }
  590. if (data[i].use === 'address' ||
  591. data[i].use === 'phone' ||
  592. data[i].use === 'remark') {
  593. data[i].x = 190
  594. }
  595. break;
  596. case '4':
  597. if (data[i].use === 'name' ||
  598. data[i].use === 'companyName') {
  599. data[i].x = 30
  600. }
  601. if (data[i].use === 'companyName') {
  602. data[i].y = 90
  603. }
  604. if (data[i].use === 'post') {
  605. data[i].x = 100
  606. }
  607. if (data[i].use == 'head') {
  608. data[i].x = 25
  609. data[i].y = 120
  610. }
  611. if (data[i].use === 'address-icon' ||
  612. data[i].use === 'phone-icon' ||
  613. data[i].use === 'remark-icon') {
  614. data[i].x = 170
  615. }
  616. if (data[i].use === 'address') {
  617. data[i].width = 300
  618. }
  619. if (data[i].use === 'address' ||
  620. data[i].use === 'phone' ||
  621. data[i].use === 'remark') {
  622. data[i].x = 190
  623. }
  624. break;
  625. default:
  626. }
  627. }
  628. this.canvasData = {
  629. clicknum: this.clicknum++,
  630. list: data
  631. }
  632. },
  633. posterError(err) {
  634. console.log(err)
  635. uni.hideLoading()
  636. },
  637. posterSuccess(url) {
  638. console.log("hahahah", url)
  639. // 生成成功,会把临时路径在这里返回
  640. this.poster = url;
  641. console.log(url)
  642. if (this.index == 0) {
  643. this.show = true
  644. }
  645. // this.show=false
  646. uni.hideLoading()
  647. },
  648. menuClick(typeName) {
  649. if (this.userInfo.phone) {
  650. if (typeName == "contactCustomer") return
  651. let _url = '/pages/mySet/' + typeName
  652. uni.navigateTo({
  653. url: _url
  654. })
  655. } else {
  656. this.showAuthorizePhone = true
  657. }
  658. }
  659. }
  660. }
  661. </script>
  662. <style lang="scss" scoped>
  663. .content1 {
  664. background: #112253;
  665. padding: 0rpx 20rpx 160rpx 20rpx;
  666. box-sizing: border-box;
  667. border-radius: 0px 0px 20rpx 20rpx;
  668. .user {
  669. color: #fff;
  670. .name {
  671. font-weight: 700;
  672. }
  673. }
  674. .img {
  675. width: 124rpx;
  676. border-radius: 50%;
  677. margin-right: 32rpx;
  678. height: auto;
  679. }
  680. .position {
  681. display: flex;
  682. .right-img {
  683. width: 44rpx;
  684. margin-left: 40rpx;
  685. height: auto;
  686. }
  687. }
  688. }
  689. .content2 {
  690. background: #fff;
  691. margin: 20rpx;
  692. padding: 0 40rpx;
  693. position: relative;
  694. top: -100rpx;
  695. border-radius: 20rpx;
  696. .nav-img {
  697. width: 32rpx;
  698. margin-right: 20rpx;
  699. height: auto;
  700. }
  701. .row {
  702. border-bottom: 1px solid #E6E6E6;
  703. padding: 35rpx 0;
  704. .row-right-img {
  705. width: 12rpx;
  706. height: auto;
  707. }
  708. }
  709. .row:last-child {
  710. border: none;
  711. }
  712. .left-btn {
  713. background: #fff;
  714. padding: 0;
  715. margin: 0;
  716. font-size: 32rpx;
  717. height: 42rpx;
  718. display: flex;
  719. align-items: center;
  720. }
  721. .left-btn:after {
  722. border: none !important;
  723. }
  724. }
  725. .shareBtn {
  726. background: transparent;
  727. line-height: 1;
  728. padding: 0;
  729. }
  730. .shareBtn::after {
  731. border: none;
  732. }
  733. .slot-content {
  734. width: 100%;
  735. }
  736. .auth-btncard {
  737. display: flex !important;
  738. justify-content: space-between !important;
  739. .btn-unok {
  740. width: 40%;
  741. }
  742. .btn-ok {
  743. width: 40%;
  744. }
  745. }
  746. .auth-card {
  747. text-align: center;
  748. .avatar-img {
  749. width: 250rpx;
  750. }
  751. .title {
  752. font-size: 20rpx;
  753. }
  754. .content {
  755. font-size: 32rpx;
  756. font-weight: bold;
  757. color: #1A1A1A;
  758. margin-bottom: 30rpx;
  759. }
  760. }
  761. .avatar-wrapper {
  762. color: #333 !important;
  763. border: none !important;
  764. border-radius: 0 !important;
  765. background-color: transparent !important;
  766. padding: 0;
  767. }
  768. .avatar-wrapper::after {
  769. border: none !important;
  770. }
  771. .avatar {
  772. width: 100rpx;
  773. height: 100rpx;
  774. overflow: hidden;
  775. border-radius: 100%;
  776. }
  777. /deep/.u-popup__content {
  778. border-radius: 20rpx !important;
  779. }
  780. </style>