mySet.vue 19 KB

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