model.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. <template>
  2. <view class="content mone" v-if="baseURL">
  3. <model :modelId='mtype' :templateData='userTemplate' :isShare='isShare' :isLook='isLook' :isDefault='isDefault'
  4. :share-number='shareNumber'></model>
  5. <view class="fxmp flex bottom" v-if="type==2">
  6. <button class="share" type="default" open-type="share">
  7. 分享名片
  8. </button>
  9. <view class="nav-model pink" @click="payPhone"
  10. v-if="mtype ==5">
  11. 拨打电话
  12. </view>
  13. <view class="nav-model" @click="navto('/pages/user/model/model?mtype=' + mtype+'&type=0')"
  14. v-if="mtype != 3">
  15. 生成我的名片
  16. </view>
  17. <template v-else-if="mtype == 3">
  18. <view class="nav-model" @click="navto('/pages/user/model/modelrz?modelid='+userInfo.show_template_id)"
  19. v-if=" hasLogin && userInfo.info_audit_status==-2">
  20. 立即认证
  21. </view>
  22. <view class="nav-model" @click="navto('/pages/user/model/mymodellist')"
  23. v-if=" hasLogin && userInfo.info_audit_status==1">
  24. 查看我的名片
  25. </view>
  26. <view class="nav-model" v-if=" hasLogin && userInfo.info_audit_status==0">
  27. 资料审核中
  28. </view>
  29. <view class="nav-model" v-if=" !hasLogin" @click="toLogin">
  30. 生成我的名片
  31. </view>
  32. </template>
  33. </view>
  34. <view class="fxmp flex bottom" v-if="type==3">
  35. <button class="share" type="default" open-type="share">
  36. 分享名片
  37. </button>
  38. <view class="nav-model " @click="navto('/pages/user/model/modelrz?type=1&modelid=' + mtype)">
  39. 修改名片
  40. </view>
  41. <view class="nav-model pink"
  42. @click="navto('/pages/user/model/modelQr?modelid='+mtype+'&avatar='+userTemplate.avatar)">
  43. 保存分享图
  44. </view>
  45. </view>
  46. <view style="height: 100rpx;" v-if="type==3"></view>
  47. <block v-if="type==0">
  48. <view class="ljrz bottom" v-if="userInfo.work_type_id <=0&&userInfo.info_audit_status != 1"
  49. @click="navto('/pages/user/model/modelrz?modelid=' + mtype + '&type=2')">
  50. 生成我的名片
  51. </view>
  52. <view v-else class="create-model flex bottom">
  53. <view v-if="systeam!='ios'" class="price-show">
  54. 模板费用:<text>{{modelInfo.price*1}}</text>
  55. </view>
  56. <view class="to-show" @click="preview">
  57. 模板预览
  58. </view>
  59. <view v-if="systeam!='ios'" class="by-now" @click="gobuy">
  60. 立即使用
  61. </view>
  62. </view>
  63. </block>
  64. <view class="yl bottom" v-if="previewShow" @click="outPreview">
  65. 结束预览
  66. </view>
  67. </view>
  68. </template>
  69. <script>
  70. import {
  71. mapState,
  72. mapMutations
  73. } from 'vuex';
  74. import {
  75. getUserCardInfo,
  76. getCommonUserCardInfo,
  77. getShowTemplateItem,
  78. subShowTemplateOrder
  79. } from '@/api/model.js'
  80. import {
  81. getUser
  82. } from '@/api/user.js';
  83. import {
  84. saveUrl,
  85. interceptor
  86. } from '@/utils/loginUtils.js';
  87. import model from '@/pages/modelData/index.vue';
  88. export default {
  89. components: {
  90. model
  91. },
  92. data() {
  93. return {
  94. mtype: 1, //modelid
  95. shareId: '', //保存分享uid
  96. // 默认显示数据
  97. cardInfo: {},
  98. // 是否显示默认
  99. isDefault: true,
  100. shareNumber: 0, //浏览量
  101. userTemplate: {}, //用户展示数据
  102. modelInfo: {}, //当前模板信息
  103. payType: 'wxpay',
  104. type: 0, //0为商品页面进入1为个人中心进入修改预览2为分享查看预览,3为已购模板进入查看分享
  105. isShare: false, //是否显示分享按钮
  106. isLook: 0, //1为平台浏览量2为用户浏览量0为不显示
  107. previewShow: false, //是否显示预览
  108. }
  109. },
  110. onLoad(opt) {
  111. const that = this;
  112. // #ifndef MP
  113. if (opt.spread) {
  114. // 存储其他邀请人
  115. uni.setStorageSync('spread', opt.spread);
  116. }
  117. // #endif
  118. // #ifdef MP
  119. if (opt.spread) {
  120. // 存储其他邀请人
  121. uni.setStorageSync('spread_code', opt.spread);
  122. }
  123. uni.hideShareMenu();
  124. if (opt.scene) {
  125. let arr = opt.scene.split('_')
  126. this.isLook = 2;
  127. this.type = 2;
  128. this.mtype = arr[1]
  129. this.shareId = arr[0];
  130. // 存储小程序邀请人
  131. uni.setStorage({
  132. key: 'spread_code',
  133. data: arr[0]
  134. });
  135. this.getCommonUserCardInfo(arr[0]);
  136. return
  137. }
  138. // #endif
  139. // 获取模板id
  140. this.mtype = +opt.mtype
  141. // 获取查看类型
  142. this.type = +opt.type
  143. // 是否首页进入
  144. if (this.type === 0) {
  145. this.isLook = 1;
  146. this.getShowTemplateItem();
  147. if (this.userInfo.uid) {
  148. this.getCommonUserCardInfo(this.userInfo.uid);
  149. }
  150. return
  151. }
  152. //个人中心提交数据预览
  153. if (this.type === 1) {
  154. this.userTemplate = uni.getStorageSync('modeldata');
  155. this.isDefault = false;
  156. uni.setNavigationBarTitle({
  157. title: '名片预览'
  158. })
  159. return
  160. }
  161. //分享预览
  162. if (this.type === 2) {
  163. this.isLook = 2;
  164. this.shareId = opt.uid;
  165. this.getCommonUserCardInfo(opt.uid);
  166. return
  167. }
  168. //我的模板页进入预览
  169. if (this.type === 3) {
  170. this.isShare = true;
  171. this.isLook = 2;
  172. this.shareId = this.userInfo.uid;
  173. this.getCommonUserCardInfo(this.userInfo.uid);
  174. return
  175. }
  176. // if(opt.look && opt.look == 2) {
  177. // this.islook = opt.look
  178. // this.cardInfo = uni.getStorageSync('modeldata')
  179. // this.is_yl = true
  180. // }else {
  181. // if (opt.look && opt.look == 1) {
  182. // uni.showShareMenu();
  183. // this.look = false
  184. // }
  185. // if (opt.uid) {
  186. // this.shareId = opt.uid
  187. // this.getCommonUserCardInfo(opt.uid)
  188. // } else {
  189. // this.getShowTemplateItem()
  190. // }
  191. // }
  192. },
  193. computed: {
  194. ...mapState(['baseURL']),
  195. ...mapState('user', ['userInfo', 'hasLogin']),
  196. // #ifdef MP
  197. ...mapState(['systeam']),
  198. // #endif
  199. },
  200. onShow() {
  201. // this.getUser()
  202. },
  203. // #ifdef MP
  204. onShareAppMessage(options) {
  205. // 设置菜单中的转发按钮触发转发事件时的转发内容
  206. let pages = getCurrentPages(); //获取加载的页面
  207. let currentPage = pages[pages.length - 1]; //获取当前页面的对象
  208. let url = currentPage.route; //当前页面url
  209. let item = currentPage.options; //如果要获取url中所带的参数可以查看options
  210. let shareObj = {}
  211. shareObj = {
  212. title: this.userTemplate.name + '母婴界数字名片', // 默认是小程序的名称(可以写slogan等)
  213. path: url + '?uid=' + this.shareId + '&mtype=' + this.mtype + '&type=2', // 默认是当前页面,必须是以‘/’开头的完整路径
  214. imageUrl: '',
  215. success: function(res) {
  216. // 转发成功之后的回调
  217. if (res.errMsg == 'shareAppMessage:ok') {}
  218. },
  219. fail: function() {
  220. // 转发失败之后的回调
  221. if (res.errMsg == 'shareAppMessage:fail cancel') {
  222. // 用户取消转发
  223. } else if (res.errMsg == 'shareAppMessage:fail') {
  224. // 转发失败,其中 detail message 为详细失败信息
  225. }
  226. }
  227. };
  228. // 判断是否可以邀请
  229. if (this.userInfo.uid) {
  230. shareObj.path += '&spread=' + this.userInfo.uid;
  231. }
  232. return shareObj;
  233. },
  234. // #endif
  235. onUnload() {
  236. let pages = getCurrentPages(); //获取加载的页面
  237. let currentPage = pages[pages.length - 2]; //获取当前页面的对象
  238. if (currentPage.route == 'pages/public/wxLogin') {
  239. uni.switchTab({
  240. url: '/pages/index/index'
  241. })
  242. }
  243. },
  244. methods: {
  245. ...mapMutations('user', ['setUserInfo']),
  246. payPhone(){
  247. uni.makePhoneCall({
  248. phoneNumber:this.userTemplate.mobile
  249. })
  250. },
  251. toLogin() {
  252. saveUrl();
  253. interceptor();
  254. },
  255. // 模板预览
  256. preview() {
  257. if (!this.userInfo.uid) {
  258. uni.showModal({
  259. title: '提示',
  260. content: '您未登录是否登录查看',
  261. cancelText: '取消',
  262. confirmText: '立即登录',
  263. success: res => {
  264. if (res.confirm) {
  265. saveUrl();
  266. interceptor();
  267. }
  268. },
  269. fail: () => {},
  270. complete: () => {}
  271. });
  272. return
  273. }
  274. // 判断是否显示默认数据
  275. if (this.userTemplate.id) {
  276. this.isDefault = false;
  277. } else {
  278. this.isDefault = true;
  279. }
  280. this.previewShow = true;
  281. // 隐藏浏览数量
  282. this.isLook = 0;
  283. },
  284. // 结束预览
  285. outPreview() {
  286. // 显示默认数据
  287. this.isDefault = true;
  288. this.previewShow = false;
  289. if (this.type == 0) {
  290. this.isLook = 1;
  291. return
  292. }
  293. if (this.type == 3) {
  294. this.isLook = 2;
  295. return
  296. }
  297. },
  298. navto(url) {
  299. uni.navigateTo({
  300. url
  301. })
  302. },
  303. getUser() {
  304. const that = this;
  305. getUser({}).then((e) => {
  306. that.setUserInfo(e.data)
  307. if (e.data.work_type_id > 0 && that.shareId == '') {
  308. that.getUserCardInfo()
  309. } else {
  310. that.cardInfo = {}
  311. }
  312. }).catch((e) => {})
  313. },
  314. gobuy() {
  315. let that = this
  316. subShowTemplateOrder({
  317. id: that.mtype,
  318. pay_type: that.payType
  319. }).then(res => {
  320. if (res.data.status == 1) {
  321. uni.showModal({
  322. title: '提示',
  323. content: '支付成功!',
  324. cancelText: '关闭',
  325. confirmText: '查看模板',
  326. success: res => {
  327. if (res.confirm) {
  328. uni.reLaunch({
  329. url: '/pages/user/model/model?mtype=' +
  330. that.mtype,
  331. });
  332. }
  333. },
  334. fail: () => {},
  335. complete: () => {}
  336. });
  337. } else {
  338. let da = res.data.jsApiParameters;
  339. let data = {
  340. appId: da.appId,
  341. // #ifdef H5
  342. timestamp: da.timeStamp,
  343. // #endif
  344. // #ifdef MP
  345. timeStamp: da.timeStamp + '',
  346. // #endif
  347. nonceStr: da.nonceStr,
  348. package: da.package,
  349. signType: da.signType,
  350. paySign: da.paySign,
  351. success: function(res) {
  352. // obj.paySuccessTo();
  353. // alert('支付成功')
  354. uni.showModal({
  355. title: '提示',
  356. content: '支付成功!',
  357. cancelText: '关闭',
  358. confirmText: '查看模板',
  359. success: res => {
  360. if (res.confirm) {
  361. uni.reLaunch({
  362. url: '/pages/user/model/model?mtype=' +
  363. that.mtype,
  364. });
  365. }
  366. },
  367. fail: () => {},
  368. complete: () => {}
  369. });
  370. },
  371. fail: (err) => {
  372. console.log(err)
  373. // alert('支付失败')
  374. // uni.navigateTo({
  375. // url: '/pages/order/order?state=0'
  376. // });
  377. }
  378. };
  379. if (that.payType == 'wxpay') {
  380. wx.requestPayment(data)
  381. }
  382. }
  383. })
  384. },
  385. // 获取模板详情
  386. getShowTemplateItem() {
  387. let that = this
  388. getShowTemplateItem({
  389. id: that.mtype
  390. }).then(res => {
  391. that.modelInfo = res.data;
  392. if (that.type == 0) {
  393. uni.setNavigationBarTitle({
  394. title: that.modelInfo.title
  395. })
  396. that.shareNumber = res.data.look_count
  397. }
  398. })
  399. },
  400. // 加载用户模板数据
  401. getCommonUserCardInfo(uid) {
  402. let that = this
  403. getCommonUserCardInfo({
  404. uid: uid
  405. }).then(res => {
  406. let arr = []
  407. let basearr = res.data.service_area_all
  408. basearr.forEach(item => {
  409. if (item.length == 3) {
  410. arr.push(item[0].name + item[1].name + item[2].name)
  411. }
  412. if (item.length == 2) {
  413. arr.push(item[0].name + item[1].name + '市辖区')
  414. }
  415. })
  416. res.data.service_area_all = arr
  417. // 保存用户模板数据
  418. that.userTemplate = res.data
  419. // 判断是否从用户个人中心或者分享进入
  420. if (that.type == 3 || that.type == 2) {
  421. // 修改为非默认数据
  422. that.isDefault = false;
  423. that.shareNumber = res.data.card_look_count;
  424. uni.setNavigationBarTitle({
  425. title: this.userTemplate.name + '的分享名片'
  426. })
  427. }
  428. })
  429. },
  430. getUserCardInfo() {
  431. let that = this
  432. getUserCardInfo().then(res => {
  433. console.log(res)
  434. let arr = []
  435. let basearr = res.data.service_area_all
  436. basearr.forEach(item => {
  437. arr.push(item[0].name + item[1].name + item[2].name)
  438. })
  439. res.data.service_area_all = arr
  440. that.cardInfo = res.data
  441. })
  442. }
  443. }
  444. }
  445. </script>
  446. <style lang="scss" scoped>
  447. .bottom_padding {
  448. height: 45px;
  449. width: 100%;
  450. }
  451. .m-card {
  452. width: 640rpx;
  453. background: #fcf4f1;
  454. border-radius: 20rpx;
  455. position: relative;
  456. // min-height: 270rpx;
  457. margin: 0 auto 46rpx;
  458. .card-tit {
  459. width: 219rpx;
  460. height: 57rpx;
  461. background: #F46C85;
  462. border-radius: 20rpx 28rpx 29rpx 0rpx;
  463. justify-content: flex-start;
  464. align-items: center;
  465. padding: 0 20rpx;
  466. font-size: 32rpx;
  467. font-weight: bold;
  468. color: #FFFFFF;
  469. .tit-logo {
  470. width: 32rpx;
  471. height: 32rpx;
  472. margin-right: 18rpx;
  473. }
  474. }
  475. .card-bg {
  476. width: 100%;
  477. height: 270rpx;
  478. position: absolute;
  479. bottom: 0rpx;
  480. }
  481. .card-content {
  482. padding: 25rpx 35rpx;
  483. font-size: 26rpx;
  484. font-weight: 500;
  485. color: #2C2E35;
  486. position: relative;
  487. }
  488. .img-list {
  489. justify-content: space-between;
  490. flex-wrap: wrap;
  491. margin: auto;
  492. padding: 30rpx 30rpx 0;
  493. position: relative;
  494. image {
  495. width: 270rpx;
  496. height: 270rpx;
  497. background-color: #fff;
  498. margin-bottom: 30rpx;
  499. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.6);
  500. }
  501. }
  502. .fw {
  503. font-size: 26rpx;
  504. font-weight: 500;
  505. color: #2C2E35;
  506. padding: 10rpx 0;
  507. .fw-tit {
  508. color: #F46C85;
  509. display: flex;
  510. align-items: center;
  511. .yg {
  512. background-color: #F46C85;
  513. display: inline-block;
  514. width: 10rpx;
  515. height: 10rpx;
  516. border-radius: 50%;
  517. margin-right: 10rpx;
  518. }
  519. }
  520. .fw-content {
  521. padding-top: 10rpx;
  522. padding-left: 18rpx;
  523. text-align: justify;
  524. }
  525. }
  526. .user-info {
  527. flex-wrap: wrap;
  528. font-size: 26rpx;
  529. font-weight: 500;
  530. color: #000000;
  531. position: relative;
  532. .info-item-b,
  533. .info-item-q {
  534. padding: 10rpx 0;
  535. color: #000000;
  536. position: relative;
  537. padding-left: 20rpx;
  538. &::before {
  539. display: inline-block;
  540. content: '';
  541. width: 10rpx;
  542. height: 10rpx;
  543. border-radius: 50%;
  544. background-color: #F46C85;
  545. position: absolute;
  546. top: 22rpx;
  547. left: 0;
  548. }
  549. .qianger {
  550. width: 2em;
  551. display: inline-block;
  552. }
  553. .laner {
  554. width: 0.5em;
  555. display: inline-block;
  556. }
  557. }
  558. .info-item-b {
  559. width: 50%;
  560. }
  561. .info-item-q {
  562. width: 100%;
  563. display: flex;
  564. align-items: flex-start;
  565. justify-content: start;
  566. .fwdz {
  567. flex-direction: column;
  568. align-items: flex-start;
  569. }
  570. .gzt {
  571. width: 312rpx;
  572. height: 24rpx;
  573. padding-top: 10rpx;
  574. position: relative;
  575. image {
  576. width: 312rpx;
  577. height: 24rpx;
  578. position: relative;
  579. }
  580. .gzt-price,
  581. .gzt-price-b {
  582. width: 200rpx;
  583. text-align: center;
  584. position: absolute;
  585. padding-top: 20rpx;
  586. &::after {
  587. content: '';
  588. width: 0px;
  589. height: 0rpx;
  590. // background: #FEB8C6;
  591. border: 14rpx solid;
  592. border-color: transparent transparent #FEB8C6;
  593. // border-top:transparent;
  594. // border-left: transparent;
  595. // border-right: transparent;
  596. position: absolute;
  597. top: -14rpx;
  598. left: 0;
  599. right: 0;
  600. margin: auto;
  601. }
  602. text {
  603. color: #F46C85;
  604. }
  605. }
  606. .gzt-price {
  607. left: -100rpx;
  608. }
  609. .gzt-price-b {
  610. right: -100rpx;
  611. }
  612. }
  613. .rz {
  614. margin-top: 10rpx;
  615. margin-left: 10rpx;
  616. width: 87rpx;
  617. height: 26rpx;
  618. }
  619. }
  620. }
  621. }
  622. .m-btm {
  623. width: 660rpx;
  624. height: 384rpx;
  625. }
  626. .hua2 {
  627. position: relative;
  628. &::before {
  629. content: '';
  630. width: 199rpx;
  631. height: 298rpx;
  632. background: url($base-url + '/resource/icon/model1/hua2.png') no-repeat;
  633. position: absolute;
  634. bottom: -100rpx;
  635. right: 0;
  636. background-size: 100% 100%;
  637. }
  638. }
  639. .hua3 {
  640. position: relative;
  641. &::before {
  642. content: '';
  643. width: 192rpx;
  644. height: 223rpx;
  645. background: url($base-url + '/resource/icon/model1/hua3.png') no-repeat;
  646. position: absolute;
  647. top: 0;
  648. bottom: 0;
  649. left: 0;
  650. margin: auto;
  651. background-size: 100% 100%;
  652. }
  653. }
  654. .hua4 {
  655. position: relative;
  656. &::before {
  657. content: '';
  658. width: 128rpx;
  659. height: 145rpx;
  660. background: url($base-url + '/resource/icon/model1/hua4.png') no-repeat;
  661. position: absolute;
  662. bottom: -70rpx;
  663. right: 0;
  664. background-size: 100% 100%;
  665. }
  666. }
  667. .hua5 {
  668. position: relative;
  669. &::before {
  670. content: '';
  671. width: 199rpx;
  672. height: 298rpx;
  673. background: url($base-url + '/resource/icon/model1/hua2.png') no-repeat;
  674. position: absolute;
  675. bottom: -100rpx;
  676. left: 0;
  677. background-size: 100% 100%;
  678. transform: rotateY(180deg);
  679. }
  680. }
  681. .hua6 {
  682. position: relative;
  683. &::before {
  684. content: '';
  685. width: 192rpx;
  686. height: 223rpx;
  687. background: url($base-url + '/resource/icon/model1/hua3.png') no-repeat;
  688. position: absolute;
  689. bottom: -110rpx;
  690. right: 0;
  691. background-size: 100% 100%;
  692. transform: rotateY(180deg);
  693. }
  694. }
  695. .fxmp {
  696. width: 750rpx;
  697. .share {
  698. width: 50%;
  699. padding: 0;
  700. border-radius: 0;
  701. flex-grow: 1;
  702. background-color: $base-color;
  703. color: #fff;
  704. font-size: 32rpx;
  705. &::after {
  706. border: none;
  707. }
  708. }
  709. .nav-model {
  710. background-color: #FFF;
  711. color: $base-color;
  712. width: 50%;
  713. &.pink {
  714. color: #FFF;
  715. background-color: #FEB8C6;
  716. }
  717. }
  718. }
  719. .fxmp {
  720. position: fixed;
  721. width: 750rpx;
  722. bottom: 0;
  723. padding: 0;
  724. background: #f65486;
  725. // border-radius: 5rpx;
  726. font-size: 30rpx;
  727. font-weight: 500;
  728. color: #FFFFFF;
  729. text-align: center;
  730. }
  731. .create-model {
  732. position: fixed;
  733. width: 750rpx;
  734. bottom: 0;
  735. // border-radius: 5rpx;
  736. font-size: 32rpx;
  737. font-weight: 500;
  738. text-align: center;
  739. .price-show {
  740. font-size: 32rpx;
  741. font-weight: 500;
  742. color: #333333;
  743. background-color: #fff;
  744. flex-grow: 1;
  745. text {
  746. font-size: 48rpx;
  747. font-weight: 500;
  748. color: #FC6F6D;
  749. }
  750. }
  751. .to-show,
  752. .by-now {
  753. flex-grow: 1;
  754. width: 223rpx;
  755. background: #fa98b6;
  756. flex-shrink: 0;
  757. font-size: 34rpx;
  758. color: #fff;
  759. }
  760. .by-now {
  761. background: #f65486;
  762. }
  763. }
  764. .yl {
  765. position: fixed;
  766. bottom: 0;
  767. width: 750rpx;
  768. font-size: 32rpx;
  769. font-weight: 500;
  770. text-align: center;
  771. color: #fff;
  772. text-align: center;
  773. font-size: 34rpx;
  774. background-color: #f65486;
  775. }
  776. .ljrz {
  777. position: fixed;
  778. width: 750rpx;
  779. bottom: 0;
  780. font-size: 32rpx;
  781. font-weight: 500;
  782. text-align: center;
  783. background-color: #f65486;
  784. color: #fff;
  785. }
  786. .bottom {
  787. line-height: 45px;
  788. height: 45px;
  789. }
  790. </style>