mySet.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  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. that.userInfo.phone = await this.$request.getPhone(e, that.userInfo)
  268. this.showAuthorizePhone = false
  269. this.showAuthorizeUser = true
  270. },
  271. editNickName() {
  272. if (this.userInfo.phone) {
  273. let _url = '/pages/mySet/editNickName'
  274. uni.navigateTo({
  275. url: _url
  276. })
  277. } else {
  278. this.showAuthorizePhone = true
  279. }
  280. },
  281. editHead() {
  282. if (this.userInfo.phone) {
  283. uni.chooseImage({
  284. count: 1,
  285. sizeType: ['original', 'compressed'],
  286. success: function(res) {
  287. uploadImage(res.tempFilePaths[0], 'cardImages/',
  288. result => {
  289. that.userInfo.head = result
  290. that.$request.baseRequest('commonUserApp', 'edit', {
  291. commonUserInfo: JSON.stringify(that.userInfo)
  292. }, failres => {
  293. uni.hideLoading()
  294. uni.showToast({
  295. icon: "none",
  296. title: failres.errmsg,
  297. duration: 3000
  298. });
  299. }).then(res => {
  300. uni.setStorageSync("userInfo", that.userInfo)
  301. uni.showToast({
  302. icon: "success",
  303. title: '修改成功!',
  304. duration: 2000,
  305. complete: function() {
  306. uni.switchTab({
  307. url: "/pages/mySet/mySet"
  308. })
  309. }
  310. })
  311. })
  312. }
  313. )
  314. }
  315. });
  316. } else {
  317. this.showAuthorizePhone = true
  318. }
  319. },
  320. handleHiddenShare() {
  321. this.popupshow = false
  322. },
  323. selectCard() {
  324. if (this.userInfo.phone) {
  325. if (this.cardList[0].length > 0) {
  326. this.index = 0
  327. this.cardChange({
  328. value: this.cardList[[0]]
  329. })
  330. } else if (this.cardList[0].length == 0) {
  331. uni.showToast({
  332. icon: "none",
  333. title: '您还未创建名片',
  334. duration: 3000
  335. })
  336. }
  337. } else {
  338. this.showAuthorizePhone = true
  339. }
  340. },
  341. selectCard1() {
  342. if (this.userInfo.phone) {
  343. console.log(this.cardList[0])
  344. if (this.cardList[0].length > 1) {
  345. this.show1 = true
  346. } else if (this.cardList[0].length > 0) {
  347. this.cardConfirm({
  348. value: this.cardList[[0]]
  349. })
  350. } else if (this.cardList[0].length == 0) {
  351. uni.showToast({
  352. icon: "none",
  353. title: '您还未创建名片',
  354. duration: 3000
  355. })
  356. }
  357. } else {
  358. this.showAuthorizePhone = true
  359. }
  360. },
  361. cardConfirm(e) {
  362. console.log(e)
  363. this.currectData = e.value[0]
  364. this.selectCode = e.value[0].qrCodeMyself
  365. this.show1 = false
  366. this.isShowCode = true
  367. },
  368. cardChange(e) {
  369. console.log(e)
  370. this.currectData = e.value[0]
  371. uni.showLoading({
  372. title: '加载中',
  373. mask: true
  374. })
  375. var data = [{
  376. type: 'image',
  377. path: this.currectData.currentBackground,
  378. use: 'bg',
  379. x: -10,
  380. y: 0,
  381. width: 530,
  382. height: 325
  383. },
  384. {
  385. type: 'image',
  386. path: this.currectData.headSculpture ? this.currectData.headSculpture :
  387. '../../static/imgs/card/defaulthead.png',
  388. shape: 'circle',
  389. use: 'head',
  390. imageType: this.currectData.headSculpture ? 'wl' : 'bd',
  391. x: 30,
  392. y: 30,
  393. width: 100,
  394. height: 100
  395. },
  396. {
  397. type: 'text',
  398. text: this.currectData.name,
  399. use: 'name',
  400. x: 150,
  401. y: 50,
  402. size: 24,
  403. color: '#000'
  404. },
  405. {
  406. type: 'text',
  407. text: this.currectData.post,
  408. use: 'post',
  409. x: 240,
  410. y: 55,
  411. size: 18,
  412. color: '#666666'
  413. },
  414. {
  415. type: 'text',
  416. text: this.currectData.companyName,
  417. use: 'companyName',
  418. x: 150,
  419. y: 95,
  420. size: 18,
  421. color: '#000'
  422. },
  423. {
  424. type: 'image',
  425. path: '../../static/imgs/card/address1.png',
  426. use: 'address-icon',
  427. x: 145,
  428. y: 130,
  429. width: 15,
  430. height: 20
  431. },
  432. {
  433. type: 'textarea',
  434. text: this.currectData.province + this.currectData.city + this.currectData.area + this
  435. .currectData.detailedAddress,
  436. lineSpace: 1,
  437. width: 320,
  438. use: 'address',
  439. x: 175,
  440. y: 135,
  441. size: 14,
  442. color: '#000'
  443. },
  444. {
  445. type: 'image',
  446. path: '../../static/imgs/card/phone1.png',
  447. use: 'phone-icon',
  448. x: 145,
  449. y: 163,
  450. width: 16,
  451. height: 16
  452. },
  453. {
  454. type: 'text',
  455. text: this.currectData.phone,
  456. use: 'phone',
  457. x: 175,
  458. y: 167,
  459. size: 14,
  460. color: '#000'
  461. },
  462. {
  463. type: 'image',
  464. path: '../../static/imgs/card/remark1.png',
  465. use: 'remark-icon',
  466. x: 145,
  467. y: 197,
  468. width: 13,
  469. height: 16
  470. },
  471. {
  472. type: 'textarea',
  473. text: this.currectData.remark ? this.currectData.remark : '单击添加备注',
  474. use: 'remark',
  475. lineSpace: 2,
  476. width: 200,
  477. x: 175,
  478. y: 200,
  479. size: 13,
  480. color: '#000'
  481. },
  482. {
  483. type: 'image',
  484. path: '../../static/imgs/card/bg3.png',
  485. use: 'bg1',
  486. x: 0,
  487. y: 243,
  488. width: 370,
  489. height: 67
  490. },
  491. {
  492. type: 'image',
  493. path: '../../static/imgs/card/bg4.png',
  494. use: 'bg2',
  495. x: 355,
  496. y: 243,
  497. width: 150,
  498. height: 67
  499. },
  500. {
  501. type: 'image',
  502. path: '../../static/imgs/card/home.png',
  503. use: 'home',
  504. x: 65,
  505. y: 260,
  506. width: 33,
  507. height: 33
  508. },
  509. {
  510. type: 'text',
  511. text: this.currectData.classifyName ? this.currectData.classifyName : '默',
  512. use: 'classify',
  513. x: 145,
  514. y: 263,
  515. size: 34,
  516. color: '#fff'
  517. },
  518. {
  519. type: 'image',
  520. path: '../../static/imgs/card/share.png',
  521. use: 'share',
  522. x: 235,
  523. y: 263,
  524. width: 33,
  525. height: 28
  526. },
  527. ]
  528. console.log(this.currectData.cuttentTemplate, 111111)
  529. for (var i = 0; i < data.length; i++) {
  530. switch (this.currectData.cuttentTemplate) {
  531. case '2':
  532. if (data[i].use === 'name' ||
  533. data[i].use === 'companyName' ||
  534. data[i].use === 'address-icon' ||
  535. data[i].use === 'phone-icon' ||
  536. data[i].use === 'remark-icon') {
  537. data[i].x = 30
  538. }
  539. if (data[i].use === 'post') {
  540. data[i].x = 100
  541. }
  542. if (data[i].use === 'address' ||
  543. data[i].use === 'phone' ||
  544. data[i].use === 'remark') {
  545. data[i].x = 60
  546. }
  547. if (data[i].use == 'head') {
  548. data[i].x = 370
  549. }
  550. break;
  551. case '3':
  552. if (data[i].use === 'name') {
  553. data[i].x = 30
  554. data[i].y = 150
  555. }
  556. if (data[i].use === 'companyName') {
  557. data[i].x = 30
  558. data[i].y = 180
  559. }
  560. if (data[i].use === 'post') {
  561. data[i].x = 100
  562. data[i].y = 153
  563. }
  564. if (data[i].use === 'address-icon' ||
  565. data[i].use === 'phone-icon' ||
  566. data[i].use === 'remark-icon') {
  567. data[i].x = 170
  568. }
  569. if (data[i].use === 'address-icon') {
  570. data[i].y = 150
  571. }
  572. if (data[i].use === 'address') {
  573. data[i].y = 155;
  574. data[i].width = 300
  575. }
  576. if (data[i].use === 'phone-icon') {
  577. data[i].y = 180
  578. }
  579. if (data[i].use === 'phone') {
  580. data[i].y = 183
  581. }
  582. if (data[i].use === 'remark-icon') {
  583. data[i].y = 210
  584. }
  585. if (data[i].use === 'remark') {
  586. data[i].y = 212
  587. }
  588. if (data[i].use === 'address' ||
  589. data[i].use === 'phone' ||
  590. data[i].use === 'remark') {
  591. data[i].x = 190
  592. }
  593. break;
  594. case '4':
  595. if (data[i].use === 'name' ||
  596. data[i].use === 'companyName') {
  597. data[i].x = 30
  598. }
  599. if (data[i].use === 'companyName') {
  600. data[i].y = 90
  601. }
  602. if (data[i].use === 'post') {
  603. data[i].x = 100
  604. }
  605. if (data[i].use == 'head') {
  606. data[i].x = 25
  607. data[i].y = 120
  608. }
  609. if (data[i].use === 'address-icon' ||
  610. data[i].use === 'phone-icon' ||
  611. data[i].use === 'remark-icon') {
  612. data[i].x = 170
  613. }
  614. if (data[i].use === 'address') {
  615. data[i].width = 300
  616. }
  617. if (data[i].use === 'address' ||
  618. data[i].use === 'phone' ||
  619. data[i].use === 'remark') {
  620. data[i].x = 190
  621. }
  622. break;
  623. default:
  624. }
  625. }
  626. this.canvasData = {
  627. clicknum: this.clicknum++,
  628. list: data
  629. }
  630. },
  631. posterError(err) {
  632. console.log(err)
  633. uni.hideLoading()
  634. },
  635. posterSuccess(url) {
  636. console.log("hahahah", url)
  637. // 生成成功,会把临时路径在这里返回
  638. this.poster = url;
  639. console.log(url)
  640. if (this.index == 0) {
  641. this.show = true
  642. }
  643. // this.show=false
  644. uni.hideLoading()
  645. },
  646. menuClick(typeName) {
  647. if (this.userInfo.phone) {
  648. if (typeName == "contactCustomer") return
  649. let _url = '/pages/mySet/' + typeName
  650. uni.navigateTo({
  651. url: _url
  652. })
  653. } else {
  654. this.showAuthorizePhone = true
  655. }
  656. }
  657. }
  658. }
  659. </script>
  660. <style lang="scss" scoped>
  661. .content1 {
  662. background: #112253;
  663. padding: 0rpx 20rpx 160rpx 20rpx;
  664. box-sizing: border-box;
  665. border-radius: 0px 0px 20rpx 20rpx;
  666. .user {
  667. color: #fff;
  668. .name {
  669. font-weight: 700;
  670. }
  671. }
  672. .img {
  673. width: 124rpx;
  674. border-radius: 50%;
  675. margin-right: 32rpx;
  676. height: auto;
  677. }
  678. .position {
  679. display: flex;
  680. .right-img {
  681. width: 44rpx;
  682. margin-left: 40rpx;
  683. height: auto;
  684. }
  685. }
  686. }
  687. .content2 {
  688. background: #fff;
  689. margin: 20rpx;
  690. padding: 0 40rpx;
  691. position: relative;
  692. top: -100rpx;
  693. border-radius: 20rpx;
  694. .nav-img {
  695. width: 32rpx;
  696. margin-right: 20rpx;
  697. height: auto;
  698. }
  699. .row {
  700. border-bottom: 1px solid #E6E6E6;
  701. padding: 35rpx 0;
  702. .row-right-img {
  703. width: 12rpx;
  704. height: auto;
  705. }
  706. }
  707. .row:last-child {
  708. border: none;
  709. }
  710. .left-btn {
  711. background: #fff;
  712. padding: 0;
  713. margin: 0;
  714. font-size: 32rpx;
  715. height: 42rpx;
  716. display: flex;
  717. align-items: center;
  718. }
  719. .left-btn:after {
  720. border: none !important;
  721. }
  722. }
  723. .shareBtn {
  724. background: transparent;
  725. line-height: 1;
  726. padding: 0;
  727. }
  728. .shareBtn::after {
  729. border: none;
  730. }
  731. .slot-content {
  732. width: 100%;
  733. }
  734. .auth-btncard {
  735. display: flex !important;
  736. justify-content: space-between !important;
  737. .btn-unok {
  738. width: 40%;
  739. }
  740. .btn-ok {
  741. width: 40%;
  742. }
  743. }
  744. .auth-card {
  745. text-align: center;
  746. .avatar-img {
  747. width: 250rpx;
  748. }
  749. .title {
  750. font-size: 20rpx;
  751. }
  752. .content {
  753. font-size: 32rpx;
  754. font-weight: bold;
  755. color: #1A1A1A;
  756. margin-bottom: 30rpx;
  757. }
  758. }
  759. .avatar-wrapper {
  760. color: #333 !important;
  761. border: none !important;
  762. border-radius: 0 !important;
  763. background-color: transparent !important;
  764. padding: 0;
  765. }
  766. .avatar-wrapper::after {
  767. border: none !important;
  768. }
  769. .avatar {
  770. width: 100rpx;
  771. height: 100rpx;
  772. overflow: hidden;
  773. border-radius: 100%;
  774. }
  775. /deep/.u-popup__content {
  776. border-radius: 20rpx !important;
  777. }
  778. </style>