detail.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. <template>
  2. <view class="content">
  3. <view class="bgc">
  4. <view class="content1">
  5. <view class="left relative">
  6. <image :src="dataObj.circleHead?dataObj.circleHead:'../../static/imgs/logo.png'" mode="aspectFill" class="img"></image>
  7. <view class="share">
  8. <button class="shareBtn" type="default" data-name="shareBtn" open-type="share">
  9. <image style='width:30rpx;height:30rpx;position: absolute;top: 2px;right: 2px;' src="@/static/imgs/share1.png" mode="aspectFill">
  10. </image>
  11. </button>
  12. </view>
  13. </view>
  14. <view class="right">
  15. <view class="top flex flex-between">
  16. <view class="text">
  17. {{dataObj.circleName}}({{dataObj.cardNum}})
  18. </view>
  19. <span class="join" @click="$u.debounce(addCircle, 500)" v-if="!dataObj.circleCardInfo">
  20. <uni-icons type="plusempty" size="12" color="#fff"
  21. style="margin:0 10rpx;font-weight: bold;"></uni-icons>加入
  22. </span>
  23. <span class="join" @click="exitCircle" v-else>
  24. 退出
  25. </span>
  26. </view>
  27. <view style='flex-wrap: wrap;' class="bottom flex">
  28. <view v-for="item in dataObj.circleLabel" class="text">
  29. {{item}}
  30. </view>
  31. </view>
  32. </view>
  33. </view>
  34. <view class="content2">
  35. <view class="top flex-between">
  36. <view class="span">
  37. <span :class="selectIndex==0?'active':'text'" @click="changeCardStatus(0)">全部</span>
  38. <span @click="changeCardStatus(1)" :class="selectIndex==1?'active':'text'">已交换</span>
  39. <span @click="changeCardStatus(2)" :class="selectIndex==2?'active':'text'">未交换</span>
  40. </view>
  41. <view class="right flex" v-if="dataObj.circleCardInfo" @click="myCardClick">
  42. <image src="../../static/imgs/cirlce/account.png" mode="widthFix"
  43. style="width: 36rpx;margin-right: 15rpx;height: auto;"></image>我的名片
  44. </view>
  45. </view>
  46. </view>
  47. </view>
  48. <view class="relative" style='top:150px;'>
  49. <mescroll-uni height='1200' :up="upOption" :down="downOption" ref="mescrollRef" @init="mescrollInit" @up="upCallback" @down="downCallback" >
  50. <view class="content3" v-for="(item,index) in changeCardList"
  51. :style="item.currentBackground?'background:url('+item.currentBackground+');background-size:100% 100%':''"
  52. :key="index">
  53. <view class="flex item">
  54. <view class="top flex">
  55. <view class="left">
  56. <u--image :src="item.headSculpture?item.headSculpture:'https://cdn.uviewui.com/uview/album/1.jpg'" shape="circle" width="66px"
  57. height="66px"></u--image>
  58. </view>
  59. <view class="right">
  60. <view class="row1">
  61. <text class="name">{{item.name}}</text>
  62. <text class="post">{{item.post}}</text>
  63. </view>
  64. <view class="row2">
  65. {{item.companyName}}
  66. </view>
  67. </view>
  68. </view>
  69. </view>
  70. <view class="line">
  71. <image src="../../static/imgs/cirlce/line.png" mode="widthFix" style="width: 95%;height: auto;"></image>
  72. </view>
  73. <view class="bottom" v-if="item.scopeOfBusiness">
  74. {{item.scopeOfBusiness}}
  75. </view>
  76. <view class="bottom no-text" v-else>
  77. 暂无业务描述
  78. </view>
  79. <view class="flex btn" v-if="item.lookPage==1||item.notDisplay!=1">
  80. <image @click='toHome(item)' src="../../static/imgs/cirlce/home.png" mode="widthFix" style="width: 32rpx;height: auto;"
  81. v-if="item.lookPage==1&&item.personalHomeId"></image>
  82. <image src="../../static/imgs/cirlce/change.png" mode="widthFix" style="width: 32rpx;;height: auto"
  83. @click="changeCard(item)" v-if="item.notDisplay!=1"></image>
  84. </view>
  85. </view>
  86. </mescroll-uni>
  87. </view>
  88. <u-picker :immediateChange ="true" @cancel="isShowCard=false" :show="isShowCard" :columns="cardList" keyName="cardBusiness"
  89. @confirm="cardConfirm"></u-picker>
  90. <u-toast ref="uToast"></u-toast>
  91. <u-modal :show="show" :content='content' @confirm="$u.debounce(joinCircle, 500)" showCancelButton
  92. @cancel="show=false" @close="show=false" closeOnClickOverlay></u-modal>
  93. <u-modal :show="show1" content='确定退出圈子' @confirm="$u.debounce(exitCircleConfirm, 500)" showCancelButton
  94. @cancel="show1=false" @close="show1=false" closeOnClickOverlay></u-modal>
  95. <u-modal :show="isShowChangeCard" content='确定交换名片?' @confirm="$u.debounce(confirmChangeSubmit, 500)"
  96. showCancelButton @cancel="isShowChangeCard=false" @close="isShowChangeCard=false"
  97. closeOnClickOverlay></u-modal>
  98. <!-- #ifdef MP-WEIXIN -->
  99. <u-modal :show="showAuthorizePhone" :showConfirmButton="false">
  100. <view class="slot-content">
  101. <view class="auth-card">
  102. <view class="">
  103. <img class="avatar-img" src="@/static/imgs/logo.png" mode="widthFix">
  104. </view>
  105. <view class="content">手机登录后才能查看名片哦~</view>
  106. </view>
  107. <view class="auth-btncard">
  108. <view class="btn-unok">
  109. <u-button :customStyle="customStyleUnOk" @click="showAuthorizePhone=false" :plain="true">
  110. 拒绝</u-button>
  111. </view>
  112. <view class="btn-ok">
  113. <u-button :customStyle="customStyleOk" open-type="getPhoneNumber"
  114. @getphonenumber="getPhoneNumber"> 立即登录</u-button>
  115. </view>
  116. </view>
  117. </view>
  118. </u-modal>
  119. <u-modal :show="showAuthorizeUser" :showConfirmButton="false">
  120. <view class="slot-content">
  121. <view class="auth-card">
  122. <view class="">
  123. <img class="avatar-img" src="/static/imgs/logo.png" mode="widthFix">
  124. </view>
  125. <view class="content">邀请您补全个人信息<br></br>(昵称、头像)</view>
  126. <view style="margin-left: 100rpx;margin-right: 100rpx">
  127. <u-form :model="userInfo" ref="uForm">
  128. <u-form-item label="头像">
  129. <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
  130. slot="right">
  131. <image class="avatar"
  132. :src="userInfo.head?userInfo.head:'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'">
  133. </image>
  134. </button>
  135. </u-form-item>
  136. <u-form-item label="昵称">
  137. <u-input inputAlign='right' v-model="userInfo.nickname" class="weui-input"
  138. @blur="userNameInput" placeholder="请输入昵称" border="false" />
  139. <!-- <input type="nickname" :value="userInfo.nickname" class="weui-input" @blur="userNameInput" placeholder="请输入昵称"/> -->
  140. </u-form-item>
  141. </u-form>
  142. </view>
  143. </view>
  144. <view class="auth-btncard">
  145. <view class="btn-unok"><u-button :customStyle="customStyleUnOk" @click="authUser(0)">
  146. 拒绝</u-button>
  147. </view>
  148. <view class="btn-ok">
  149. <u-button :customStyle="customStyleOk" @click="authUser(1)"> 允许</u-button>
  150. </view>
  151. </view>
  152. </view>
  153. </u-modal>
  154. <!-- #endif -->
  155. </view>
  156. </template>
  157. <script>
  158. var that;
  159. import {
  160. pathToBase64,
  161. base64ToPath
  162. } from 'image-tools'
  163. import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
  164. export default {
  165. mixins: [MescrollMixin], // 使用mixin
  166. data() {
  167. return {
  168. showAuthorizeUser: false,
  169. showAuthorizePhone: false,
  170. customStyleUnOk: {
  171. marginTop: '20rpx',
  172. color: '#18254C',
  173. border: '2px solid #18254C',
  174. "border-radius": "10px",
  175. fontSize: "32rpx"
  176. },
  177. customStyleOk: {
  178. marginTop: '20rpx',
  179. color: '#fff',
  180. border: '2px solid #18254C',
  181. "border-radius": "10px",
  182. fontSize: "32rpx",
  183. background: "#18254C"
  184. },
  185. userInfo: {
  186. head: '',
  187. nickname: '',
  188. phone: '',
  189. },
  190. downOption: {
  191. auto: false,
  192. textColor: '#bbb'
  193. },
  194. upOption: {
  195. page: {
  196. size: 10 // 每页数据的数量,默认10
  197. },
  198. auto: false,
  199. noMoreSize: 1,
  200. textNoMore: '没有更多了~',
  201. textColor: '#bbb'
  202. },
  203. selectIndex: 0,
  204. isShowChangeCard: false,
  205. show1:false,
  206. dataObj: {
  207. circleName: '',
  208. cardNum: '',
  209. circleLabel: []
  210. },
  211. canReset: false,
  212. cardList: [],
  213. isShowCard: false,
  214. show: false,
  215. content: '加入后其他用户查看您的名片和主页,确认加入圈子?',
  216. cardId: '',
  217. id: '',
  218. changeCardList: [],
  219. cardStatus: '',
  220. isMyCard: false,
  221. swapNameCards: false,
  222. selectMycard: {},
  223. selectRowCard: {}
  224. };
  225. },
  226. onShow() {
  227. if (uni.getStorageSync("userInfo").phone) {
  228. this.$nextTick(function() {
  229. that.mescroll.resetUpScroll()
  230. });
  231. }else {
  232. this.showAuthorizePhone = true
  233. }
  234. },
  235. onLoad(options) {
  236. that = this
  237. console.log(options)
  238. this.id = options.val
  239. this.userInfo = uni.getStorageSync("userInfo")
  240. },
  241. onShareAppMessage(res) {
  242. if (res.from === 'button') {
  243. let path = `/pages/circle/detail?val=${that.dataObj.id}`
  244. return {
  245. title:`${that.userInfo.nickname}邀请您加入${that.dataObj.circleName}圈子`,
  246. path: path,
  247. };
  248. }
  249. },
  250. methods: {
  251. //获取昵称输入内容
  252. userNameInput(e) {
  253. this.userInfo.nickname = e.detail.value
  254. },
  255. async onChooseAvatar(e) {
  256. this.$set(this.userInfo, "head", await this.toBase64(e.detail.avatarUrl))
  257. },
  258. toBase64(url) {
  259. return new Promise(resolve => {
  260. pathToBase64(url).then(path => {
  261. resolve(path);
  262. }).catch(error => {
  263. console.log(error)
  264. })
  265. })
  266. },
  267. async authUser(type) {
  268. //同步信息,没有头像和昵称自动生成
  269. this.userInfo = await this.$request.syncInfo(this.userInfo)
  270. if (this.userInfo.openId) {
  271. uni.setStorageSync("userInfo", that.userInfo)
  272. that.showAuthorizeUser = false
  273. that.mescroll.resetUpScroll()
  274. }
  275. },
  276. async getPhoneNumber(e) {
  277. that.userInfo = await this.$request.wxlogin()
  278. this.$nextTick(function() {
  279. that.userInfo.phone = that.$request.getPhone(e, that.userInfo)
  280. that.showAuthorizePhone = false
  281. that.showAuthorizeUser = true
  282. });
  283. },
  284. toHome(item){
  285. uni.navigateTo({
  286. url:'/pages/circle/lookHome?id='+item.personalHomeId
  287. })
  288. },
  289. confirmChangeSubmit() {
  290. this.$request.baseRequest('admin.unimall.cardExchangeInfo', 'add', {
  291. cardExchangeInfo: JSON.stringify({
  292. sendId: this.userInfo.id,
  293. receiveId: this.selectRowCard.receiveId,
  294. sendCardId: this.selectMycard.id,
  295. receiveCardId: this.selectRowCard.id,
  296. circleName: this.dataObj.circleName
  297. }),
  298. }, failres => {
  299. console.log('res+++++', failres.errmsg)
  300. uni.showToast({
  301. icon:"none",
  302. title: failres.errmsg,
  303. duration: 3000
  304. });
  305. uni.hideLoading()
  306. }).then(res => {
  307. this.isShowChangeCard = false
  308. uni.showToast({
  309. icon:"success",
  310. title: '操作成功!',
  311. duration: 2000
  312. });
  313. setTimeout(() => {
  314. this.mescroll.resetUpScroll()
  315. }, 500)
  316. })
  317. },
  318. changeMyCard() {
  319. this.$request.baseRequest('admin.unimall.circleCardInfo', 'update', {
  320. circleCardInfo: JSON.stringify({
  321. circleId: this.dataObj.id,
  322. cardId: this.cardId,
  323. commonId: this.userInfo.id
  324. }),
  325. }, failres => {
  326. console.log('res+++++', failres.errmsg)
  327. uni.showToast({
  328. icon:"none",
  329. title: failres.errmsg,
  330. duration: 3000
  331. });
  332. uni.hideLoading()
  333. }).then(res => {
  334. this.isShowCard = false
  335. uni.showToast({
  336. icon:"success",
  337. title: '更改圈子名片成功!',
  338. duration: 2000
  339. });
  340. this.mescroll.resetUpScroll()
  341. })
  342. },
  343. myCardClick() {
  344. this.isShowCard = true
  345. this.isMyCard = true
  346. },
  347. changeCardStatus(val) {
  348. this.selectIndex = val
  349. this.cardStatus = val
  350. this.getCardList({
  351. num: 1,
  352. size: 10
  353. })
  354. },
  355. exitCircle() {
  356. console.log(11111)
  357. this.show1=true
  358. },
  359. exitCircleConfirm(){
  360. this.$request.baseRequest('admin.unimall.circleCardInfo', 'delete', {
  361. id: this.dataObj.circleCardInfo.id,
  362. }, failres => {
  363. console.log('res+++++', failres.errmsg)
  364. uni.showToast({
  365. icon:"none",
  366. title: failres.errmsg,
  367. duration: 3000
  368. });
  369. uni.hideLoading()
  370. }).then(res => {
  371. this.isShowCard = false
  372. this.show1=false
  373. uni.showToast({
  374. icon:"success",
  375. title: '退出成功!',
  376. duration: 2000
  377. });
  378. this.mescroll.resetUpScroll()
  379. })
  380. },
  381. cardConfirm(e) {
  382. console.log("e", e)
  383. this.cardId = e.value[0].id
  384. if (this.isMyCard) {
  385. this.changeMyCard()
  386. } else if (this.swapNameCards) {
  387. this.selectMycard = e.value[0]
  388. this.isShowCard = false
  389. this.isShowChangeCard = true
  390. } else {
  391. this.joinCircle()
  392. }
  393. },
  394. joinCircle() {
  395. this.$request.baseRequest('admin.unimall.circleCardInfo', 'add', {
  396. circleCardInfo: JSON.stringify({
  397. circleId: this.dataObj.id,
  398. cardId: this.cardId,
  399. commonId: this.userInfo.id
  400. }),
  401. }, failres => {
  402. console.log('res+++++', failres.errmsg)
  403. uni.showToast({
  404. icon:"none",
  405. title: failres.errmsg,
  406. duration: 3000
  407. });
  408. uni.hideLoading()
  409. }).then(res => {
  410. this.isShowCard = false
  411. this.show = false
  412. uni.showToast({
  413. icon:"success",
  414. title: '加入成功!',
  415. duration: 2000
  416. });
  417. this.mescroll.resetUpScroll()
  418. })
  419. },
  420. addCircle() {
  421. if (this.cardList[0].length == 1) {
  422. // console.log(this.cardList[0])
  423. this.cardId = this.cardList[0][0].id
  424. this.show = true
  425. } else if (this.cardList[0].length > 1) {
  426. this.isShowCard = true
  427. } else {
  428. uni.showToast({
  429. icon:"none",
  430. title: '您还没有自己的名片,请创建后再加入圈子!',
  431. duration: 2000
  432. });
  433. // this.$refs.uToast.show({
  434. // type: 'error',
  435. // message: "您还没有自己的名片,请创建后再加入圈子",
  436. // })
  437. }
  438. },
  439. getCardList(page) {
  440. uni.showLoading({
  441. title: '数据加载中'
  442. })
  443. this.$request.baseRequest('admin.unimall.circleManagementInfo', 'circleCardlist', {
  444. commonId: this.userInfo.id,
  445. id: this.dataObj.id,
  446. status: this.cardStatus,
  447. page: page.num,
  448. limit: page.size,
  449. }, failres => {
  450. console.log('res+++++', failres.errmsg)
  451. uni.hideLoading()
  452. uni.showToast({
  453. icon:"none",
  454. title: failres.errmsg,
  455. duration: 3000
  456. });
  457. }).then(res => {
  458. uni.hideLoading()
  459. console.log(11)
  460. let curPageData = res.data.items;
  461. let totalPage = res.data.total;
  462. let curPageLen = curPageData.length;
  463. this.mescroll.endByPage(curPageLen, totalPage);
  464. console.log(res.data)
  465. // this.makeData(res.data)
  466. if (page.num == 1) this.changeCardList = []; //如果是第一页需手动置空列表
  467. this.changeCardList = this.changeCardList.concat(curPageData); //追加新数据
  468. for(let i = 0;i<this.changeCardList.length;i++){
  469. if(this.changeCardList[i].scopeOfBusiness&&this.changeCardList[i].scopeOfBusiness.length>90){
  470. this.changeCardList[i].scopeOfBusiness = this.changeCardList[i].scopeOfBusiness.substr(0,90) + '...' ;
  471. }
  472. }
  473. })
  474. },
  475. async upCallback(page) {
  476. //获取名片
  477. await this.$request.baseRequest('admin.unimall.cardManagementInfo', 'list', {
  478. commonId: this.userInfo.id
  479. }, failres => {
  480. console.log('res+++++', failres.errmsg)
  481. uni.showToast({
  482. icon:"none",
  483. title: failres.errmsg,
  484. duration: 3000
  485. });
  486. }).then(res => {
  487. this.cardList = [res.data.items]
  488. })
  489. await this.$request.baseRequest('admin.unimall.circleManagementInfo', 'get', {
  490. commonId: this.userInfo.id,
  491. id: this.id
  492. }, failres => {
  493. console.log('res+++++', failres.errmsg)
  494. uni.hideLoading()
  495. uni.showToast({
  496. icon:"none",
  497. title: failres.errmsg,
  498. duration: 3000
  499. });
  500. }).then(res => {
  501. console.log(res.data)
  502. this.dataObj = res.data
  503. this.dataObj.circleLabel = res.data.circleLabel.split(",")
  504. })
  505. this.getCardList(page)
  506. },
  507. changeCard(val) {
  508. if(!this.dataObj.circleCardInfo){
  509. uni.showToast({
  510. icon:"none",
  511. title: "请先加入圈子!",
  512. duration: 2000
  513. });
  514. }else{
  515. this.selectRowCard = val
  516. this.swapNameCards = true
  517. this.isShowCard = true
  518. }
  519. },
  520. }
  521. }
  522. </script>
  523. <style lang="scss" scoped>
  524. .bgc {
  525. background-color: #112253;
  526. padding-bottom: 100rpx;
  527. position:fixed;
  528. top:0;
  529. width:100%;
  530. }
  531. .content1 {
  532. display: flex;
  533. padding: 40rpx;
  534. box-sizing: border-box;
  535. .right {
  536. width: 100%;
  537. display: flex;
  538. flex-direction: column;
  539. justify-content: space-evenly;
  540. .top {
  541. width: 100%;
  542. .text {
  543. color: #fff;
  544. font-weight: bold;
  545. }
  546. .join {
  547. background: #0A173D;
  548. color: #fff;
  549. position: absolute;
  550. right: 0rpx;
  551. padding: 15rpx 20rpx;
  552. font-size: 26rpx;
  553. border-radius: 50rpx 0rpx 0rpx 50rpx;
  554. }
  555. }
  556. .bottom {
  557. .text {
  558. color: #ffffff50;
  559. background: #f1f5ff20;
  560. padding: 10rpx 20rpx;
  561. margin:0 10rpx 10rpx 0;
  562. border-radius: 10rpx;
  563. font-size: 26rpx;
  564. }
  565. }
  566. }
  567. }
  568. .no-text {
  569. color: #969393;
  570. }
  571. .img {
  572. width: 122rpx;
  573. height: 122rpx;
  574. border-radius: 10px;
  575. margin-right: 30rpx;
  576. }
  577. .content2 {
  578. padding: 0 40rpx 40rpx 40rpx;
  579. box-sizing: border-box;
  580. .text {
  581. font-size: 26rpx;
  582. font-weight: 500;
  583. color: #FFFFFF;
  584. opacity: 0.5;
  585. margin-right: 56rpx;
  586. }
  587. .active {
  588. font-size: 32rpx;
  589. font-weight: bold;
  590. color: #FFFFFF;
  591. position: relative;
  592. margin-right: 56rpx;
  593. }
  594. .active:after {
  595. position: absolute;
  596. bottom: -20rpx;
  597. content: '';
  598. width: 50%;
  599. height: 6rpx;
  600. border-radius: 40rpx;
  601. background: #FFFFFF;
  602. right: 0;
  603. left: 0;
  604. margin: auto;
  605. }
  606. .right {
  607. color: #D7C08B;
  608. font-size: 26rpx;
  609. }
  610. }
  611. .content3 {
  612. position: relative;
  613. border-radius: 30rpx;
  614. background: red;
  615. box-sizing: border-box;
  616. height:400rpx;
  617. .item {
  618. align-items: flex-start;
  619. padding: 34rpx 40rpx 0 40rpx;
  620. }
  621. .top {
  622. .left {
  623. margin-right: 36rpx;
  624. }
  625. .right {
  626. .row1 {
  627. margin-bottom: 10rpx;
  628. .name {
  629. font-size: 38rpx;
  630. font-weight: bold;
  631. color: #000000;
  632. margin-right: 26rpx;
  633. }
  634. .post {
  635. font-size: 26rpx;
  636. font-weight: 500;
  637. color: #666666;
  638. }
  639. }
  640. .row2 {
  641. font-size: 26rpx;
  642. font-weight: bold;
  643. color: #333333;
  644. }
  645. }
  646. }
  647. .bottom {
  648. padding: 20rpx 60rpx 0rpx 60rpx;
  649. font-size: 26rpx;
  650. }
  651. .btn {
  652. background: #11225350;
  653. width: 145rpx;
  654. display: flex;
  655. justify-content: space-evenly;
  656. padding: 15rpx 0;
  657. border-radius: 32rpx;
  658. position: absolute;
  659. top: 35rpx;
  660. right: 40rpx;
  661. }
  662. }
  663. .line {
  664. text-align: center;
  665. }
  666. .shareBtn{
  667. background-color: #9E9E9E !important;
  668. position: absolute;
  669. top: 0;
  670. right: 30rpx;
  671. height: 40rpx;
  672. padding: 0;
  673. margin: 0;
  674. width: 40rpx;
  675. border-radius: 0 10px 0 27rpx;
  676. }
  677. .slot-content {
  678. width: 100%;
  679. }
  680. .auth-btncard {
  681. display: flex !important;
  682. justify-content: space-between !important;
  683. .btn-unok {
  684. width: 40%;
  685. }
  686. .btn-ok {
  687. width: 40%;
  688. }
  689. }
  690. .auth-card {
  691. text-align: center;
  692. .avatar-img {
  693. width: 250rpx;
  694. }
  695. .title {
  696. font-size: 20rpx;
  697. }
  698. .content {
  699. font-size: 32rpx;
  700. font-weight: bold;
  701. color: #1A1A1A;
  702. margin-bottom: 30rpx;
  703. }
  704. }
  705. .avatar-wrapper {
  706. color: #333 !important;
  707. border: none !important;
  708. border-radius: 0 !important;
  709. background-color: transparent !important;
  710. padding: 0;
  711. }
  712. .avatar-wrapper::after {
  713. border: none !important;
  714. }
  715. .avatar {
  716. width: 100rpx;
  717. height: 100rpx;
  718. overflow: hidden;
  719. border-radius: 100%;
  720. }
  721. /deep/.u-popup__content {
  722. border-radius: 20rpx !important;
  723. }
  724. </style>