cardDetail.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. <template>
  2. <view>
  3. <ujp-navbar title="会员卡详情" :isBack="isMe" >
  4. <view slot="right" style="margin-right: 10px;">
  5. <view class="iconfont qr-code" @click="openModalBl=true">
  6. &#xe60d;
  7. </view>
  8. </view>
  9. </ujp-navbar>
  10. <u-mask :show="show" @click="show = false">
  11. <u-image width="100%" :mode="'widthFix'" src="/static/img/guide_point2.png"></u-image>
  12. </u-mask>
  13. <u-modal v-model="show2" :content="content2" @confirm="confirmShow2" :show-cancel-button="true" confirm-color="#00b962"></u-modal>
  14. <u-modal v-model="show3" :content="content3" @confirm="confirmShow3" :show-cancel-button="true" confirm-color="#00b962"></u-modal>
  15. <u-modal v-model="openModalBl" @confirm="confirmPhone" confirm-text="拨打电话" confirm-color="#606266"
  16. :show-cancel-button="true" ref="uModal" :asyncClose="true" title="客服电话" :content="content"
  17. :content-style="{fontSize: '24px',color: '#101010'}"></u-modal>
  18. <!-- 头部 -->
  19. <view :class="{
  20. header:regUserCard.status==1,
  21. header2:regUserCard.status==2
  22. }">
  23. <view class="discount-card">
  24. <img v-if="regUserCard.status==2" class="corner-mark" src="@/assets/img/nonactivated.png" alt="">
  25. <view class="top" v-if="regUserCard.status==2">
  26. <view class="right-corner">
  27. <img class="rightCorner" src="@/assets/img/rightCorner.png" alt="">
  28. <img class="icon" v-if="item.type==3" src="@/assets/img/mb-times@3x.png" alt="">
  29. <img class="picc" v-if="item.type==3" src="@/assets/img/picc.png" alt="">
  30. </view>
  31. </view>
  32. <view class="img">
  33. <img v-if="item.classify==1" src="@/assets/img/monthCard.png" alt="">
  34. <img v-else-if="item.classify==2&&item.serviceFeeDiscountRate==60" src="@/assets/img/0.6off.png" alt="">
  35. <img v-else-if="item.classify==2&&item.serviceFeeDiscountRate==50" src="@/assets/img/halfoff.png" alt="">
  36. <img v-else src="@/assets/img/monthCard.png" alt="">
  37. </view>
  38. <view class="card-number" v-if="regUserCard.status==2">
  39. 卡号:{{regUserCard.cardNo}}
  40. </view>
  41. <view class="progress" v-if="regUserCard.status==1">
  42. <view class="time">
  43. {{thisendTime(regUserCard.endTime)}}到期 剩余{{thisdaysDistance(regUserCard.endTime)}}天
  44. </view>
  45. <view class="electric-quantity" v-if="regUserCard.classify==2">
  46. 已用{{regUserCard.chargedDegree}}度 / 共{{regUserCard.chargeDegreeLimit}}度
  47. </view>
  48. </view>
  49. <ujp-line-progress v-if="regUserCard.status==1" active-color="#2979ff" :percent="thispercent(regUserCard)"></ujp-line-progress>
  50. <view class="bottom" v-if="regUserCard.status==1">
  51. <view class="right-corner">
  52. <img class="rightCorner" src="@/assets/img/rightCorner.png" alt="">
  53. <img v-if="item.type==3" class="icon" src="@/assets/img/mb-times@3x.png" alt="">
  54. <img v-if="item.type==3" class="picc" src="@/assets/img/picc.png" alt="">
  55. </view>
  56. </view>
  57. </view>
  58. <img class="cardCover" src="@/assets/img/cardCover.png" alt="">
  59. </view>
  60. <!-- 卡片信息 -->
  61. <view class="main" v-if="regUserCard.status==2">
  62. <view class="details">
  63. <view class="headline">
  64. <view class="title">
  65. 卡片信息
  66. </view>
  67. <view class="show" v-if="!this.showHide" @click="showHide=true">
  68. 显示<u-icon name="eye"></u-icon>
  69. </view>
  70. <view class="hide" v-if="this.showHide" @click="showHide=false">
  71. 隐藏<u-icon name="eye-off"></u-icon>
  72. </view>
  73. </view>
  74. <view class="content" v-if="this.showHide">
  75. <view class="item">
  76. <view class="item-title">
  77. 卡名
  78. </view>
  79. <view class="item-value">
  80. {{item.name}}
  81. </view>
  82. </view>
  83. <view class="item">
  84. <view class="item-title">
  85. 折扣率
  86. </view>
  87. <view class="item-value">
  88. {{regUserCard.classify==1?"服务费全免":""}}
  89. {{regUserCard.classify==2?"服务费"+(item.serviceFeeDiscountRate/10)+"折":""}}
  90. </view>
  91. </view>
  92. <view class="item">
  93. <view class="item-title">
  94. 规格
  95. </view>
  96. <view class="item-value" v-if="regUserCard.classify==1">
  97. 服务费全免 (有效期{{setValidity(item.periodOfValidity)}})
  98. </view>
  99. <view class="item-value" v-if="regUserCard.classify==2">
  100. 可用{{item.chargeDegreeLimit}}度(有效期{{setValidity(item.periodOfValidity)}})
  101. </view>
  102. </view>
  103. </view>
  104. </view>
  105. <!-- 按钮 -->
  106. <view class="btn" v-if="isMe">
  107. <button class="share" @click="show=true">转赠分享<img class="icon" src="@/assets/img/riLine-gift-2-line@3x.png" alt=""></button>
  108. <button class="activate" @click="show2Btn">立即激活</button>
  109. </view>
  110. <view class="btn2" v-else>
  111. <button class="get" @click="show2Btn">领用会员卡</button>
  112. </view>
  113. </view>
  114. <!-- 卡片信息 -->
  115. <view class="main" v-if="regUserCard.status==1">
  116. <view class="title">
  117. 会员信息
  118. </view>
  119. <view class="details">
  120. <view class="item">
  121. <view class="item-title">
  122. 会员昵称
  123. </view>
  124. <view class="item-value">
  125. {{userInfo.nickName}}
  126. </view>
  127. </view>
  128. <view class="item">
  129. <view class="item-title">
  130. 绑定账号
  131. </view>
  132. <view class="item-value">
  133. {{getphone(userInfo.phone)}}
  134. </view>
  135. </view>
  136. <view class="item">
  137. <view class="item-title">
  138. 绑定车辆
  139. </view>
  140. <view class="item-value">
  141. {{userInfo.carNum}}
  142. </view>
  143. </view>
  144. </view>
  145. <view class="title">
  146. 卡片信息
  147. </view>
  148. <view class="details">
  149. <view class="item">
  150. <view class="item-title">
  151. 卡状态
  152. </view>
  153. <view class="item-value">
  154. 已激活
  155. </view>
  156. </view>
  157. <view class="item">
  158. <view class="item-title">
  159. 卡名
  160. </view>
  161. <view class="item-value">
  162. {{item.name}}
  163. </view>
  164. </view>
  165. <view class="item">
  166. <view class="item-title">
  167. 折扣率
  168. </view>
  169. <view class="item-value" v-if="item.classify==1">
  170. 服务费全免
  171. </view>
  172. <view class="item-value" v-if="item.classify==2">
  173. {{item.serviceFeeDiscountRate/10}}折
  174. </view>
  175. </view>
  176. <view class="item">
  177. <view class="item-title">
  178. 规格
  179. </view>
  180. <view class="item-value" v-if="regUserCard.classify==1">
  181. 服务费全免 (有效期{{setValidity(item.periodOfValidity)}})
  182. </view>
  183. <view class="item-value" v-if="regUserCard.classify==2">
  184. 可用{{item.chargeDegreeLimit}}度(有效期{{setValidity(item.periodOfValidity)}})
  185. </view>
  186. </view>
  187. <view class="item">
  188. <view class="item-title">
  189. 有效期
  190. </view>
  191. <view class="item-value">
  192. {{regUserCard.startTime.substring(0,10)}}至{{regUserCard.endTime.substring(0,10)}}
  193. </view>
  194. </view>
  195. <view class="item" v-if="regUserCard.classify==2">
  196. <view class="item-title">
  197. 剩余度数
  198. </view>
  199. <view class="item-value">
  200. {{(regUserCard.chargeDegreeLimit-regUserCard.chargedDegree).toFixed(0)}}度
  201. </view>
  202. </view>
  203. <view class="item">
  204. <view class="item-title">
  205. 卡号
  206. </view>
  207. <view class="item-value">
  208. {{regUserCard.cardNo}}
  209. </view>
  210. </view>
  211. </view>
  212. <!-- 按钮 -->
  213. <button class="check" @click="gotoUrl('pages/article/details?code=FWF6ZK')" >查看使用规则</button>
  214. </view>
  215. </view>
  216. </template>
  217. <script>
  218. // import * as API from '@/apis/index.js'
  219. import * as API from '@/apis/order.js'
  220. import * as API_weixin from '@/apis/weixin.js'
  221. import wx from 'weixin-js-sdk'
  222. import {
  223. newDate,
  224. daysDistance
  225. } from '@/utils'
  226. export default {
  227. data() {
  228. return {
  229. id: "",
  230. item: {},
  231. regUserCard:{},
  232. orderInfo:{},
  233. content: "400-8899-619",
  234. openModalBl: false,
  235. expireUserCardList: [],
  236. showHide:false,
  237. show2: false,
  238. show:false,
  239. content2: '确认激活此会员卡吗?',
  240. content3: '领用会员卡需要注册成为会员,点击前往',
  241. show3: false,
  242. //userCard: {},
  243. isMe:false,
  244. projectName: "",
  245. userInfo:{},
  246. carNum:""
  247. }
  248. },
  249. onLoad(op) {
  250. this.id = op.id
  251. this.get_wx_config();
  252. //this.userInfo=this.carhelp.getPersonInfo()
  253. this.projectName = process.car.ProjectName;
  254. var info=this.carhelp.getPersonInfo()
  255. if(info.id&&info.userType==2){
  256. }else{
  257. this.show3=true
  258. }
  259. this.getChargeList();
  260. },
  261. onReady() {
  262. var consumerPhone = "400-8899-619"
  263. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  264. if (consumerPhone) {
  265. this.content = consumerPhone
  266. }
  267. },
  268. methods: {
  269. getphone(phone){
  270. var phoneget=""
  271. if (phone) {
  272. var phone1 = phone.slice(0, 3);
  273. var phone2 = phone.slice(-4);
  274. phoneget = phone1 + '****' + phone2;
  275. }
  276. return phoneget;
  277. },
  278. show2Btn(){
  279. var info=this.carhelp.getPersonInfo()
  280. if(info.id&&info.userType==2){
  281. this.show2=true
  282. }else{
  283. this.show3=true
  284. }
  285. },
  286. confirmShow3(){
  287. uni.navigateTo({
  288. url:"/pages/login/login?jpcode2=card&codeId="+this.id
  289. })
  290. },
  291. confirmShow2(){
  292. uni.showLoading({
  293. title: "加载中",
  294. mask: true,
  295. })
  296. API.activateCard({
  297. id:this.id
  298. }).then((res) => {
  299. uni.hideLoading();
  300. uni.showToast({
  301. title:"领取成功"
  302. })
  303. this.getChargeList();
  304. //console.log(obj)
  305. //this.recordsTotal = res.data.recordsTotal;
  306. }).catch(error => {
  307. uni.showToast({
  308. title: error,
  309. icon: "none"
  310. })
  311. })
  312. },
  313. //获取微信jssdk配置信息
  314. get_wx_config() {
  315. //("get_wx_configget_wx_configget_wx_configget_wx_config")
  316. var _this = this
  317. API_weixin.getConfig().then(response => {
  318. var wxconfig = response.data.wxConfig;
  319. console.log(222)
  320. wx.config({
  321. debug: false, // 开启调试模式,
  322. appId: wxconfig.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
  323. timestamp: wxconfig.timestamp, // 必填,生成签名的时间戳
  324. nonceStr: wxconfig.nonceStr, // 必填,生成签名的随机串
  325. signature: wxconfig.signature, // 必填,签名,见附录1
  326. jsApiList: ['updateAppMessageShareData',
  327. 'updateTimelineShareData','onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone'], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  328. });
  329. console.log(222)
  330. _this.wxShare()
  331. wx.error(function(res) {
  332. console.log('微信api配置出错');
  333. });
  334. }).catch(error => {
  335. //(error);
  336. })
  337. },
  338. //微信分享自定义
  339. wxShare() {
  340. console.log(111)
  341. var img =
  342. "http://oss.xiaoxinda.com/charging/chargingconfigure/2022/6/6/ec228c56-487a-4ae1-ac6f-37284060fbba/hongbao.jpg"
  343. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  344. // if (indexLogo) {
  345. // this.indexLogo = indexLogo;
  346. // }
  347. var info = this.carhelp.getPersonInfo()
  348. //var img=require("@/static/img/aboutus.png")
  349. ////(this.nowItem);
  350. var ProjectName = process.car.ProjectName; //info.nickName+
  351. var nickName = info.nickName ? info.nickName : '好友';
  352. var title = nickName + "赠送您一张"
  353. if(this.item.classify==1){
  354. title+="'服务费月卡'"
  355. }else if(this.item.classify==2&&this.item.serviceFeeDiscountRate==60){
  356. title+="'服务费6折卡'"
  357. }else if(this.item.classify==2&&this.item.serviceFeeDiscountRate==50&&this.item.periodOfValidity==365){
  358. title+="'充电5折卡年卡'"
  359. }else if(this.item.classify==2&&this.item.serviceFeeDiscountRate==50){
  360. title+="'服务费5折卡'"
  361. }
  362. //"["+ProjectName+"]"+'和好友一起领5元红包'
  363. // <img v-if="item.classify==1" src="@/assets/img/monthCard.png" alt="">
  364. // <img v-else-if="item.classify==2&&item.serviceFeeDiscountRate==60" src="@/assets/img/0.6off.png" alt="">
  365. // <img v-else-if="item.classify==2&&item.serviceFeeDiscountRate==50" src="@/assets/img/halfoff.png" alt="">
  366. // <img v-else src="@/assets/img/monthCard.png" alt="">
  367. var desc = ProjectName
  368. let joinUrl = window.location.href.split("/team51/")[0] + "/team51/#/pages/cardBag/cardDetail?id="+this.id
  369. //this.joinUrl=joinUrl;
  370. var _this=this;
  371. wx.ready(function() {
  372. wx.onMenuShareAppMessage({
  373. title: title,
  374. desc: desc,
  375. link: joinUrl,
  376. imgUrl: img,
  377. success: function() {
  378. // 设置成功
  379. _this.$emit("wxShare",null);
  380. }
  381. })
  382. wx.onMenuShareTimeline({
  383. title: title,
  384. desc: desc,
  385. link: joinUrl,
  386. imgUrl: img,
  387. success: function() {
  388. // 设置成功
  389. _this.$emit("wxShare",null);
  390. }
  391. })
  392. wx.updateAppMessageShareData({
  393. title: title,
  394. desc: desc,
  395. link: joinUrl,
  396. imgUrl: img,
  397. success: function() {
  398. //("updateAppMessageShareData")
  399. // 设置成功
  400. _this.$emit("wxShare", null);
  401. }
  402. })
  403. wx.updateTimelineShareData({
  404. title: title,
  405. desc: desc,
  406. link: joinUrl,
  407. imgUrl: img,
  408. success: function() {
  409. //("updateTimelineShareData")
  410. // 设置成功
  411. _this.$emit("wxShare", null);
  412. }
  413. })
  414. console.log("readyreadyreadyreadyready")
  415. });
  416. },
  417. thisendTime(endTime){
  418. if(endTime){
  419. var reg=new RegExp('-','gi')
  420. var str=endTime.substring(0,10).replace(reg,'.')
  421. return str
  422. }
  423. return ''
  424. },
  425. thispercent(userCard) {
  426. if(userCard.classify==1){
  427. var k1=daysDistance(userCard.startTime, userCard.endTime)
  428. var k2=this.thisdaysDistance(userCard.endTime)
  429. var p=(k1-k2)/k2* 100
  430. if (p > 100) {
  431. p = 100
  432. }
  433. return p.toFixed(0)
  434. }else if(userCard.classify==2){
  435. var p = 0
  436. if (userCard && userCard.chargeDegreeLimit) {
  437. p = userCard.chargedDegree / userCard.chargeDegreeLimit * 100
  438. }
  439. if (p > 100) {
  440. p = 100
  441. }
  442. return p.toFixed(0)
  443. }else{
  444. return 0
  445. }
  446. },
  447. thisdaysDistance(endTime){
  448. var date=new Date()
  449. var date2=newDate(endTime);
  450. return daysDistance(date,date2)
  451. },
  452. thisdaysDistance2(){
  453. if(this.item.endTime){
  454. var date=newDate(this.item.startTime)
  455. var date2=newDate(this.item.endTime);
  456. return daysDistance(date,date2)
  457. }
  458. return 0
  459. },
  460. regUserCarList(){
  461. uni.showLoading({
  462. title: "加载中",
  463. mask: true,
  464. })
  465. API.regUserCarList({
  466. id:this.id
  467. }).then((res) => {
  468. uni.hideLoading();
  469. if(res.data&&res.data.length){
  470. this.carNum=res.data[0].carNum
  471. }
  472. //this.recordsTotal = res.data.recordsTotal;
  473. }).catch(error => {
  474. uni.showToast({
  475. title: error,
  476. icon: "none"
  477. })
  478. })
  479. },
  480. getChargeList() {
  481. uni.showLoading({
  482. title: "加载中",
  483. mask: true,
  484. })
  485. API.buyCardDetail({
  486. id:this.id
  487. }).then((res) => {
  488. uni.hideLoading();
  489. this.item = res.data.monthlyRentCard;
  490. this.regUserCard = res.data.regUserCard;
  491. // if(this.regUserCard.status==1){
  492. // this.regUserCarList()
  493. // }
  494. this.userInfo=res.data.buyUser;
  495. var info=this.carhelp.getPersonInfo()
  496. if(info&&info.id&&info.id==this.regUserCard.regUserId){
  497. this.isMe=true
  498. }
  499. this.orderInfo = res.data.orderInfo;
  500. //console.log(obj)
  501. //this.recordsTotal = res.data.recordsTotal;
  502. }).catch(error => {
  503. uni.showToast({
  504. title: error,
  505. icon: "none"
  506. })
  507. })
  508. },
  509. confirmPhone() {
  510. this.openModalBl = false;
  511. uni.makePhoneCall({
  512. phoneNumber: this.content //仅为示例
  513. });
  514. },
  515. }
  516. }
  517. </script>
  518. <style lang="scss" scoped>
  519. page {
  520. background-color: #fff;
  521. }
  522. // 头部
  523. .header {
  524. padding: 24rpx 32rpx 0;
  525. opacity: 0.9;
  526. background: linear-gradient(30deg, rgba(59, 182, 254, 1) 13.4%, rgba(0, 185, 98, 1) 85.87%);
  527. position: relative;
  528. .discount-card {
  529. background: url(@/assets/img/cardDetail.png);
  530. background-size: 686rpx 400rpx;
  531. border-radius: 8px 8px 0 0;
  532. background-color: #1D1F2A;
  533. padding: 24rpx;
  534. margin-top: 24rpx;
  535. height: 400rpx;
  536. position: relative;
  537. .corner-mark{
  538. width: 128rpx;
  539. height: 128rpx;
  540. position: absolute;
  541. top: 0;
  542. right: 0;
  543. }
  544. .img {
  545. width: 262rpx;
  546. height: 56rpx;
  547. img {
  548. width: 100%;
  549. }
  550. }
  551. .u-progress {
  552. height: 20rpx !important;
  553. }
  554. .progress {
  555. display: flex;
  556. justify-content: space-between;
  557. color: rgba(219, 219, 219, 1);
  558. font-size: 24rpx;
  559. margin-bottom: 16rpx;
  560. margin-top: 24rpx;
  561. }
  562. /deep/.u-active {
  563. background: linear-gradient(84.49deg, rgba(59, 182, 254, 1) 4.25%, rgba(0, 185, 98, 1) 95.02%);
  564. }
  565. .top {
  566. .right-corner {
  567. display: flex;
  568. align-items: center;
  569. height: 36rpx;
  570. .rightCorner {
  571. width: 148rpx;
  572. margin-left: 8rpx;
  573. }
  574. .icon {
  575. width: 24rpx;
  576. height: 24rpx;
  577. margin-left: 8rpx;
  578. }
  579. .picc {
  580. width: 124rpx;
  581. height: 32rpx;
  582. margin-left: 8rpx;
  583. }
  584. }
  585. }
  586. // 右下角角标
  587. .bottom {
  588. position: absolute;
  589. bottom: 48rpx;
  590. right: 40rpx;
  591. .right-corner {
  592. display: flex;
  593. align-items: center;
  594. justify-content: flex-end;
  595. height: 32rpx;
  596. .rightCorner {
  597. width: 148rpx;
  598. }
  599. .icon {
  600. width: 24rpx;
  601. height: 24rpx;
  602. margin-left: 8rpx;
  603. }
  604. .picc {
  605. width: 124rpx;
  606. margin-left: 8rpx;
  607. }
  608. }
  609. }
  610. }
  611. .cardCover {
  612. width: 100%;
  613. height: 70rpx;
  614. position: absolute;
  615. left: 0;
  616. right: 0;
  617. bottom: 0rpx;
  618. z-index: 999;
  619. }
  620. }
  621. .header2 {
  622. padding: 24rpx 32rpx 0;
  623. opacity: 0.9;
  624. background: linear-gradient(30deg, rgba(59,182,254,1) 13.4%,rgba(0,185,98,1) 85.87%);
  625. position: relative;
  626. .discount-card {
  627. background: url(@/assets/img/cardDetail.png);
  628. background-size: 686rpx 400rpx;
  629. border-radius: 8px 8px 0 0;
  630. background-color: #1D1F2A;
  631. padding: 24rpx;
  632. margin-top: 24rpx;
  633. height: 400rpx;
  634. position: relative;
  635. .corner-mark{
  636. width: 128rpx;
  637. height: 128rpx;
  638. position: absolute;
  639. top: 0;
  640. right: 0;
  641. }
  642. .img {
  643. margin:82rpx auto 0;
  644. width: 486rpx;
  645. height: 104rpx;
  646. img {
  647. width: 100%;
  648. }
  649. }
  650. .top {
  651. .right-corner {
  652. display: flex;
  653. align-items: center;
  654. height: 36rpx;
  655. .rightCorner {
  656. width: 148rpx;
  657. margin-left: 8rpx;
  658. }
  659. .icon {
  660. width: 24rpx;
  661. height: 24rpx;
  662. margin-left: 8rpx;
  663. }
  664. .picc {
  665. width: 124rpx;
  666. height: 32rpx;
  667. margin-left: 8rpx;
  668. }
  669. }
  670. }
  671. }
  672. .cardCover {
  673. width: 100%;
  674. height: 70rpx;
  675. position: absolute;
  676. left: 0;
  677. right: 0;
  678. bottom: 0rpx;
  679. z-index: 999;
  680. }
  681. .card-number{
  682. color: rgba(209, 178, 121, 1);
  683. text-align: center;
  684. margin-top: 8rpx;
  685. }
  686. }
  687. // 卡片信息
  688. .main {
  689. background-color: #fff;
  690. padding: 32rpx;
  691. padding-bottom: 60px;
  692. .headline{
  693. display: flex;
  694. justify-content: space-between;
  695. align-items: center;
  696. font-size: 32rpx;
  697. .title{
  698. color: rgba(16, 16, 16, 1);
  699. }
  700. .show,.hide{
  701. color: rgba(119, 119, 119, 1);
  702. }
  703. }
  704. .title {
  705. color: rgba(16, 16, 16, 1);
  706. font-size: 32rpx;
  707. }
  708. .details {
  709. margin-top: 16rpx;
  710. border-radius: 12px;
  711. padding: 32rpx 24rpx;
  712. background-color: rgba(255, 255, 255, 1);
  713. text-align: center;
  714. border: 1px solid rgba(226, 226, 226, 1);
  715. margin-bottom: 40rpx;
  716. .item {
  717. display: flex;
  718. margin-top: 24rpx;
  719. .item-title {
  720. width: 128rpx;
  721. color: #777777;
  722. text-align: left;
  723. }
  724. .item-value {
  725. margin-left: 16rpx;
  726. color: #101010;
  727. }
  728. }
  729. }
  730. .btn2{
  731. margin-top: 32rpx;
  732. .get{
  733. border-radius: 50px;
  734. background: linear-gradient(90deg, rgba(0,171,91,1) 0%,rgba(0,209,66,1) 100%);
  735. color: rgba(255, 255, 255, 1);
  736. font-size: 16px;
  737. text-align: center;
  738. }
  739. }
  740. //按钮
  741. .btn{
  742. margin-top: 32rpx;
  743. display: flex;
  744. justify-content: space-between;
  745. .share{
  746. width: 328rpx;
  747. height: 88rpx;
  748. line-height: 88rpx;
  749. border-radius: 50px;
  750. background-color: rgba(255, 255, 255, 1);
  751. text-align: center;
  752. border: 1px solid rgba(255, 150, 0, 1);
  753. color: rgba(255, 150, 0, 1);
  754. font-size: 32rpx;
  755. display: flex;
  756. align-items: center;
  757. justify-content: center;
  758. .icon{
  759. width: 36rpx;
  760. height: 36rpx;
  761. }
  762. }
  763. .activate{
  764. width: 328rpx;
  765. height: 88rpx;
  766. line-height: 88rpx;
  767. border-radius: 50px;
  768. background: linear-gradient(90deg, rgba(0,171,91,1) 0%,rgba(0,209,66,1) 100%);
  769. color: rgba(255, 255, 255, 1);
  770. font-size: 32rpx
  771. }
  772. }
  773. }
  774. // 查看
  775. .check {
  776. position: fixed;
  777. bottom: 32rpx;
  778. left: 32rpx;
  779. right: 32rpx;
  780. font-size: 32rpx;
  781. border-radius: 50px;
  782. background-color: rgba(255, 255, 255, 1);
  783. color: rgba(0, 185, 98, 1);
  784. border: 1px solid rgba(0, 185, 98, 1);
  785. }
  786. </style>