detail.vue 23 KB

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