storeProductPackageDetails.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913
  1. <template>
  2. <view class="content">
  3. <!-- 商品轮播图片 -->
  4. <view class="shop-banner" @click="showImg()">
  5. <swiper
  6. class="swiper"
  7. :indicator-dots="false"
  8. :circular="true"
  9. :autoplay="true"
  10. :interval="3000"
  11. :duration="1000"
  12. indicator-color="rgba(255, 255, 255, 0.6)"
  13. indicator-active-color="#ffffff"
  14. @change="swiperChange"
  15. >
  16. <swiper-item class="swiper-item" v-for="(item,index) in banner" :key="index">
  17. <image :src="item" mode="aspectFit"></image>
  18. </swiper-item>
  19. </swiper>
  20. <!-- 底部遮罩 -->
  21. <view class="banner-mask"></view>
  22. <!-- 数量 -->
  23. <view class="num-box">{{ activeBanner }}/{{ banner.length }}</view>
  24. </view>
  25. <!-- 详细信息 -->
  26. <view class="det-info">
  27. <view class="price-box">
  28. <view class="price">
  29. <text class="label">会员价</text>
  30. <text class="unit">¥</text>
  31. <text class="num" v-if="package!=null" >{{package.payMoney.toFixed(2)}}</text>
  32. <text class="label">零售价</text>
  33. <text class="old" v-if="package!=null" >¥{{package.money.toFixed(2)}}</text>
  34. </view>
  35. </view>
  36. <view class="name-box">
  37. {{package.title}}
  38. </view>
  39. <view class="intro">
  40. {{package.descs}}
  41. </view>
  42. </view>
  43. <!-- <view class="drug-box">
  44. <view class="title">组合套餐</view>
  45. <view class="inner">
  46. <view class="drug-list" >
  47. <view v-for="(subItem,index) in products" :key="index" class="drug-item">
  48. <view class="img-box">
  49. <image :src="subItem.image" mode="aspectFill"></image>
  50. </view>
  51. <view class="drug-info" >
  52. <view>
  53. <view class="name-box ellipsis2">
  54. {{subItem.productName}}
  55. </view>
  56. <view class="spec">{{subItem.sku}}</view>
  57. </view>
  58. <view class="num-box">
  59. <view class="price">
  60. <text class="unit">¥</text>
  61. <text class="num">{{subItem.price.toFixed(2)}}</text>
  62. </view>
  63. <view class="amount">x{{subItem.count}}</view>
  64. </view>
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. </view> -->
  70. <!-- 图文详情 -->
  71. <view class="det-box">
  72. <view class="title">图文详情</view>
  73. <!-- <view class="inner">
  74. <view v-html="package.content" style="font-size:0" ></view>
  75. </view> -->
  76. <view v-html="package.content" ></view>
  77. </view>
  78. <!-- 底部按钮 -->
  79. <view class="btn-foot">
  80. <view class="menu-box">
  81. <view class="item" @click="goHome">
  82. <image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/back_home.png" mode=""></image>
  83. <text class="label">首页</text>
  84. </view>
  85. <view class="item" style="position: relative;">
  86. <image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/consult_small.png" mode=""></image>
  87. <text class="label">咨询</text>
  88. <button class="contact-btn" open-type="contact"></button>
  89. </view>
  90. </view>
  91. <view class="btn-box">
  92. <view class="btn buy" @click="buy">立即购买</view>
  93. </view>
  94. </view>
  95. <view class="message-box" v-if="messageShow">
  96. <view class="left">
  97. <image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/close24.png" mode="" @click="closeOrder()" ></image>
  98. <view class="text ellipsis">您有{{count0}}个待支付订单</view>
  99. </view>
  100. <view class="btn" @click="showOrder()">查看</view>
  101. </view>
  102. </view>
  103. </template>
  104. <script>
  105. import {getOrderCount} from '@/api/storeOrder'
  106. import {getStoreProductPackageDetails} from '@/api/storeProductPackage'
  107. export default {
  108. data() {
  109. return {
  110. count0:0,
  111. messageShow:false,
  112. banner:[],
  113. packageId:null,
  114. package:null,
  115. products:[],
  116. // 当前轮播的图片
  117. activeBanner: 1,
  118. };
  119. },
  120. onLoad(options) {
  121. if (options.hasOwnProperty('q') && options.q) {
  122. // 通过下面这步解码,可以拿到url的值
  123. const url = decodeURIComponent(options.q)
  124. this.url=url;
  125. // // 对url中携带的参数提取处理
  126. const obj = this.utils.urlToObj(url)
  127. this.packageId = obj.packageId;
  128. this.companyId = obj.companyId;
  129. this.companyUserId = obj.companyUserId;
  130. }
  131. else{
  132. this.packageId = options.packageId;
  133. this.companyId = options.companyId;
  134. this.companyUserId = options.companyUserId;
  135. }
  136. uni.showShareMenu({
  137. withShareTicket:true,
  138. //小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击
  139. menus:["shareAppMessage","shareTimeline"] //不设置默认发送给朋友
  140. })
  141. },
  142. //发送给朋友
  143. onShareAppMessage(res) {
  144. return {
  145. title: this.package.title,
  146. path: `/pages_company/storeProductPackageDetails?packageId=${this.package.packageId}`+"&companyId="+this.companyId+"&companyUserId="+this.companyUserId,
  147. imageUrl: this.package.imgUrl //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  148. }
  149. },
  150. //分享到朋友圈
  151. onShareTimeline(res) {
  152. return {
  153. title: this.package.title,
  154. query:'packageId='+this.package.packageId+"&companyId="+this.companyId+"&companyUserId="+this.companyUserId,//页面参数
  155. imageUrl: this.package.imgUrl //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  156. }
  157. },
  158. onShow() {
  159. console.log("onshow")
  160. if(this.utils.isLogin()){
  161. this.getOrderCount();
  162. }
  163. this.getStoreProductPackageDetails();
  164. },
  165. methods: {
  166. getOrderCount(){
  167. getOrderCount().then(
  168. res => {
  169. if(res.code==200){
  170. this.count0=res.count0;
  171. if(this.count0>0){
  172. this.messageShow=true;
  173. }
  174. }
  175. },
  176. rej => {}
  177. );
  178. },
  179. showOrder(){
  180. this.utils.isLogin().then(res => {
  181. if(res){
  182. uni.navigateTo({
  183. url: '/pages_user/user/storeOrder?status=0'
  184. })
  185. }
  186. })
  187. },
  188. closeOrder(){
  189. this.messageShow=false;
  190. },
  191. showImg() {
  192. //预览图片
  193. uni.previewImage({
  194. urls: this.banner,
  195. current: this.banner[0]
  196. });
  197. },
  198. getStoreProductPackageDetails(){
  199. let data = {packageId:this.packageId};
  200. getStoreProductPackageDetails(data).then(
  201. res => {
  202. if(res.code==200){
  203. this.package=res.data;
  204. console.log('详情',res.data)
  205. if(this.package.images!=null){
  206. this.banner=this.package.images.split(',')
  207. }
  208. else{
  209. this.banner=[]
  210. }
  211. this.products=JSON.parse(this.package.products);
  212. }else{
  213. uni.showToast({
  214. icon:'none',
  215. title: "请求失败",
  216. });
  217. }
  218. },
  219. rej => {}
  220. );
  221. },
  222. //swiper变化事件
  223. swiperChange(event) {
  224. this.activeBanner = event.detail.current + 1
  225. },
  226. buy() {
  227. this.utils.isLogin().then(res => {
  228. if(res){
  229. uni.navigateTo({
  230. url: '/pages_shopping/shopping/confirmPackageOrder?packageId='+this.packageId+"&companyUserId="+this.companyUserId
  231. })
  232. }
  233. })
  234. },
  235. //回到首页
  236. goHome() {
  237. uni.switchTab({
  238. url: '/pages/home/index'
  239. })
  240. },
  241. //跳转页面
  242. navgetTo(url) {
  243. this.utils.isLogin().then(res => {
  244. if(res){
  245. uni.navigateTo({
  246. url: url
  247. })
  248. }
  249. })
  250. },
  251. }
  252. }
  253. </script>
  254. <style lang="scss">
  255. .shop-banner{
  256. height: 756upx;
  257. background-color: #FFFFFF;
  258. position: relative;
  259. .swiper-item{
  260. box-sizing: border-box;
  261. }
  262. .swiper,
  263. .swiper-item,
  264. .swiper-item image{
  265. width: 100%;
  266. height: 100%;
  267. }
  268. .banner-mask{
  269. width: 100%;
  270. height: 44upx;
  271. // background: linear-gradient(0deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0));
  272. // opacity: 0.8;
  273. position: absolute;
  274. left: 0;
  275. bottom: 0;
  276. z-index: 9;
  277. background-image: url(https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/black_mask.png);
  278. background-size: 20upx 44upx;
  279. background-repeat: repeat-x;
  280. }
  281. .num-box{
  282. width: 80upx;
  283. height: 44upx;
  284. line-height: 44upx;
  285. text-align: center;
  286. font-size: 24upx;
  287. font-family: PingFang SC;
  288. font-weight: 500;
  289. color: #FFFFFF;
  290. background: rgba(0, 0, 0, .3);
  291. border-radius: 22upx;
  292. position: absolute;
  293. right: 30upx;
  294. bottom: 30upx;
  295. z-index: 10;
  296. }
  297. }
  298. .det-info{
  299. background: #FFFFFF;
  300. padding: 36upx 30upx 25upx;
  301. .price-box{
  302. display: flex;
  303. align-items: center;
  304. justify-content: space-between;
  305. .price{
  306. display: flex;
  307. align-items: flex-end;
  308. .label{
  309. color: #333;
  310. font-size: 28upx;
  311. font-family: PingFang SC;
  312. line-height: 1.3;
  313. margin-right: 5upx;
  314. }
  315. .unit{
  316. font-size: 28upx;
  317. font-family: PingFang SC;
  318. font-weight: bold;
  319. color: #FF6633;
  320. line-height: 1.3;
  321. }
  322. .num{
  323. font-size: 40upx;
  324. font-family: PingFang SC;
  325. font-weight: bold;
  326. color: #FF6633;
  327. margin: 0 20upx 0 10upx;
  328. line-height: 1;
  329. }
  330. .old{
  331. font-size: 28upx;
  332. font-family: PingFang SC;
  333. font-weight: 500;
  334. text-decoration: line-through;
  335. color: #BBBBBB;
  336. line-height: 1.3;
  337. }
  338. }
  339. .share-box{
  340. width: 120upx;
  341. height: 46upx;
  342. border: 1px solid #2BC7B9;
  343. border-radius: 23upx;
  344. display: flex;
  345. align-items: center;
  346. justify-content: center;
  347. position: relative;
  348. .text{
  349. font-size: 26upx;
  350. font-family: PingFang SC;
  351. font-weight: 500;
  352. color: #2BC7B9;
  353. }
  354. image{
  355. margin-left: 2rpx;
  356. width: 25upx;
  357. height: 24upx;
  358. }
  359. .share{
  360. display: inline-block;
  361. position: absolute;
  362. top: 0;
  363. left: 0;
  364. width: 100%;
  365. height: 100%rpx;
  366. opacity: 0;
  367. }
  368. }
  369. .spec{
  370. font-size: 24upx;
  371. font-family: PingFang SC;
  372. font-weight: 500;
  373. color: #999999;
  374. line-height: 36upx;
  375. }
  376. }
  377. .name-box{
  378. font-size: 32upx;
  379. font-family: PingFang SC;
  380. font-weight: bold;
  381. color: #111111;
  382. line-height: 44upx;
  383. margin-top: 32upx;
  384. .tag{
  385. display: inline-block;
  386. padding: 0 6upx;
  387. height: 30upx;
  388. background: linear-gradient(90deg, #66b2ef 0%, #2BC7B9 100%);
  389. border-radius: 4upx;
  390. margin-right: 10upx;
  391. font-size: 22upx;
  392. font-family: PingFang SC;
  393. font-weight: bold;
  394. color: #FFFFFF;
  395. line-height: 30upx;
  396. float: left;
  397. margin-top: 7upx;
  398. }
  399. }
  400. .intro{
  401. font-size: 26upx;
  402. font-family: PingFang SC;
  403. font-weight: 500;
  404. color: #999999;
  405. line-height: 36upx;
  406. padding: 18upx 0;
  407. // border-bottom: 1px solid #f7f7f7;
  408. }
  409. .safe-box{
  410. display: flex;
  411. align-items: center;
  412. padding-top: 24upx;
  413. image{
  414. width: 20upx;
  415. height: 24upx;
  416. margin-right: 20upx;
  417. }
  418. .text{
  419. font-size: 22upx;
  420. font-family: PingFang SC;
  421. font-weight: 500;
  422. color: #999999;
  423. line-height: 1;
  424. }
  425. .line{
  426. width: 1px;
  427. height: 23upx;
  428. background: #EDEEEF;
  429. margin: 0 20upx;
  430. }
  431. }
  432. }
  433. .inventor{
  434. height: 88upx;
  435. padding: 0 39upx 0 30upx;
  436. margin-top: 10upx;
  437. background: #FFFFFF;
  438. display: flex;
  439. align-items: center;
  440. justify-content: space-between;
  441. .left{
  442. display: flex;
  443. align-items: center;
  444. .head-box{
  445. margin-right: 27upx;
  446. display: flex;
  447. align-items: center;
  448. .head{
  449. width: 48upx;
  450. height: 48upx;
  451. border-radius: 50%;
  452. overflow: hidden;
  453. box-shadow: 0 0 0 1px #fff;
  454. margin-right: -10upx;
  455. image{
  456. width: 100%;
  457. height: 100%;
  458. }
  459. }
  460. }
  461. .num-box{
  462. font-size: 24upx;
  463. font-family: PingFang SC;
  464. font-weight: 500;
  465. color: #999999;
  466. .text{
  467. font-size: 24upx;
  468. font-family: PingFang SC;
  469. font-weight: 500;
  470. color: #666666;
  471. }
  472. }
  473. }
  474. .right{
  475. font-size: 24upx;
  476. font-family: PingFang SC;
  477. font-weight: 500;
  478. color: #999999;
  479. .text{
  480. font-size: 24upx;
  481. font-family: PingFang SC;
  482. font-weight: 500;
  483. color: #666666;
  484. }
  485. }
  486. }
  487. .effect{
  488. box-sizing: border-box;
  489. padding: 20upx 30upx;
  490. background: #FFFFFF;
  491. font-size: 28upx;
  492. font-family: PingFang SC;
  493. font-weight: 500;
  494. color: #666666;
  495. line-height: 1.8;
  496. margin-top: 10upx;
  497. display: flex;
  498. flex-direction: row;
  499. align-items: center;
  500. justify-content: space-between;
  501. .label{
  502. font-size: 28upx;
  503. font-family: PingFang SC;
  504. font-weight: 500;
  505. color: #111111;
  506. line-height: 1.8;
  507. }
  508. }
  509. .det-box{
  510. margin-top: 10upx;
  511. padding: 40upx 30upx 130upx 30upx;
  512. background-color: #FFFFFF;
  513. .title{
  514. font-size: 30upx;
  515. font-family: PingFang SC;
  516. font-weight: bold;
  517. color: #333333;
  518. line-height: 1;
  519. margin-bottom: 25upx;
  520. }
  521. }
  522. .btn-foot{
  523. box-sizing: border-box;
  524. width: 100%;
  525. height: 121upx;
  526. background: #FFFFFF;
  527. padding: 0 32upx 0 28upx;
  528. display: flex;
  529. align-items: center;
  530. justify-content: space-between;
  531. position: fixed;
  532. left: 0;
  533. bottom: 0;
  534. z-index: 99;
  535. .menu-box{
  536. display: flex;
  537. align-items: center;
  538. .item{
  539. display: flex;
  540. align-items: center;
  541. flex-direction: column;
  542. margin-right: 48upx;
  543. &:last-child{
  544. margin-right: 0;
  545. }
  546. image{
  547. width: 36upx;
  548. height: 36upx;
  549. margin-bottom: 10upx;
  550. }
  551. .label{
  552. font-size: 20upx;
  553. font-family: PingFang SC;
  554. font-weight: 500;
  555. color: #666666;
  556. text-align: center;
  557. }
  558. }
  559. :deep(.uni-badge--x){
  560. display: flex;
  561. align-items: center;
  562. justify-content: center;
  563. }
  564. :deep(.uni-badge){
  565. border: none;
  566. background-color: #FF3636;
  567. font-family: Roboto;
  568. }
  569. }
  570. .btn-box{
  571. display: flex;
  572. align-items: center;
  573. .btn{
  574. width: 200upx;
  575. height: 88upx;
  576. line-height: 88upx;
  577. text-align: center;
  578. border-radius: 44upx;
  579. margin-left: 20upx;
  580. font-size: 30upx;
  581. font-family: PingFang SC;
  582. font-weight: bold;
  583. color: #FFFFFF;
  584. &:first-child{
  585. margin-left: 0;
  586. }
  587. &.cart{
  588. background: #FF6633;
  589. }
  590. &.buy{
  591. background: #2BC7B9;
  592. }
  593. }
  594. }
  595. }
  596. .product-spec{
  597. .pro-info{
  598. display: flex;
  599. align-items: center;
  600. .img-box{
  601. width: 200upx;
  602. height: 200upx;
  603. background: #FFFFFF;
  604. border-radius: 16upx;
  605. overflow: hidden;
  606. margin-right: 30upx;
  607. image{
  608. width: 100%;
  609. height: 100%;
  610. }
  611. }
  612. .info-text{
  613. height: 200upx;
  614. display: flex;
  615. flex-direction: column;
  616. justify-content: space-between;
  617. .price{
  618. display: flex;
  619. align-items: flex-end;
  620. .unit{
  621. font-size: 32upx;
  622. font-family: PingFang SC;
  623. font-weight: bold;
  624. color: #FF6633;
  625. line-height: 1.2;
  626. margin-right: 10upx;
  627. }
  628. .num{
  629. font-size: 50upx;
  630. font-family: PingFang SC;
  631. font-weight: bold;
  632. color: #FF6633;
  633. line-height: 1;
  634. }
  635. }
  636. .desc-box{
  637. display: flex;
  638. flex-direction: column;
  639. padding-bottom: 9upx;
  640. .text{
  641. font-size: 26upx;
  642. font-family: PingFang SC;
  643. font-weight: 500;
  644. color: #999999;
  645. margin-top: 27upx;
  646. line-height: 1;
  647. &:first-child{
  648. margin-top: 0;
  649. }
  650. }
  651. }
  652. }
  653. }
  654. .spec-box{
  655. padding-top: 50upx;
  656. .title{
  657. font-size: 34upx;
  658. font-family: PingFang SC;
  659. font-weight: bold;
  660. color: #111111;
  661. line-height: 1;
  662. }
  663. .spec-list{
  664. display: flex;
  665. flex-wrap: wrap;
  666. margin-top: 30upx;
  667. .item{
  668. box-sizing: border-box;
  669. height: 64upx;
  670. padding: 0 30upx;
  671. line-height: 64upx;
  672. font-size: 28upx;
  673. font-family: PingFang SC;
  674. font-weight: 500;
  675. color: #111111;
  676. background: #F7F7F7;
  677. border: 1px solid #F7F7F7;
  678. border-radius: 32upx;
  679. margin-right: 20upx;
  680. margin-bottom: 30upx;
  681. &.active{
  682. background: #F1FFFE;
  683. border: 1px solid #8AD5CE;
  684. color: #2BC7B9;
  685. }
  686. }
  687. }
  688. }
  689. .price-num{
  690. display: flex;
  691. align-items: center;
  692. justify-content: space-between;
  693. margin-top: 14upx;
  694. .label{
  695. font-size: 34upx;
  696. font-family: PingFang SC;
  697. font-weight: bold;
  698. color: #111111;
  699. }
  700. .num-box{
  701. display: flex;
  702. align-items: center;
  703. .img-box{
  704. width: 60upx;
  705. height: 60upx;
  706. // border-radius: 4upx;
  707. border: 1px solid #dddddd;
  708. display: flex;
  709. align-items: center;
  710. justify-content: center;
  711. image{
  712. width: 25rpx;
  713. height: 25rpx;
  714. }
  715. }
  716. input{
  717. width: 60upx;
  718. height: 60upx;
  719. line-height: 60upx;
  720. font-size: 28upx;
  721. font-family: PingFang SC;
  722. font-weight: 500;
  723. color: #111111;
  724. // border-radius: 4upx;
  725. border-top: 1px solid #dddddd;
  726. border-bottom: 1px solid #dddddd;
  727. text-align: center;
  728. // margin: 0 16upx;
  729. }
  730. }
  731. }
  732. .sub-btn{
  733. width: 100%;
  734. height: 88upx;
  735. line-height: 88upx;
  736. text-align: center;
  737. font-size: 30upx;
  738. font-family: PingFang SC;
  739. font-weight: bold;
  740. color: #FFFFFF;
  741. background: #2BC7B9;
  742. border-radius: 44upx;
  743. margin-top: 30upx;
  744. // margin-bottom: 30upx;
  745. }
  746. }
  747. .contact-btn{
  748. display: inline-block;
  749. position: absolute;
  750. top: 0;
  751. left: 0;
  752. width: 100%;
  753. height: 100%;
  754. opacity: 0;
  755. z-index: 9999;
  756. }
  757. .drug-box{
  758. margin: 10upx 0 10upx;
  759. padding: 40upx 30upx;
  760. background-color: #FFFFFF;
  761. .drug-list{
  762. .drug-item{
  763. padding: 30upx 0;
  764. border-bottom: 1px soli #F0F0F0;
  765. display: flex;
  766. align-items: center;
  767. .img-box{
  768. width: 160upx;
  769. height: 160upx;
  770. margin-right: 30upx;
  771. flex-shrink: 0;
  772. image{
  773. width: 100%;
  774. height: 100%;
  775. }
  776. }
  777. .drug-info{
  778. width: calc(100% - 190upx);
  779. height: 160upx;
  780. display: flex;
  781. flex-direction: column;
  782. justify-content: space-between;
  783. .name-box{
  784. font-size: 28upx;
  785. font-family: PingFang SC;
  786. font-weight: 500;
  787. color: #111111;
  788. line-height: 40upx;
  789. .tag{
  790. display: inline-block;
  791. padding: 0 6upx;
  792. height: 30upx;
  793. background: linear-gradient(90deg, #66b2ef 0%, #2BC7B9 100%);
  794. border-radius: 4upx;
  795. margin-right: 10upx;
  796. font-size: 22upx;
  797. font-family: PingFang SC;
  798. font-weight: bold;
  799. color: #FFFFFF;
  800. line-height: 30upx;
  801. float: left;
  802. margin-top: 7upx;
  803. }
  804. }
  805. .spec{
  806. font-size: 24upx;
  807. font-family: PingFang SC;
  808. font-weight: 500;
  809. color: #999999;
  810. line-height: 1;
  811. margin-top: 10upx;
  812. }
  813. .num-box{
  814. display: flex;
  815. align-items: center;
  816. justify-content: space-between;
  817. .price{
  818. display: flex;
  819. align-items: flex-end;
  820. .unit{
  821. font-size: 24upx;
  822. font-family: PingFang SC;
  823. font-weight: 500;
  824. color: #111111;
  825. line-height: 1.2;
  826. margin-right: 4upx;
  827. }
  828. .num{
  829. font-size: 32upx;
  830. font-family: PingFang SC;
  831. font-weight: 500;
  832. color: #111111;
  833. line-height: 1;
  834. }
  835. }
  836. .amount{
  837. font-size: 24upx;
  838. font-family: PingFang SC;
  839. font-weight: 500;
  840. color: #999999;
  841. line-height: 1;
  842. }
  843. }
  844. }
  845. }
  846. }
  847. }
  848. .message-box{
  849. box-sizing: border-box;
  850. width: 693upx;
  851. height: 84upx;
  852. background: #F3FFFD;
  853. border: 1px solid #C7E9E5;
  854. box-shadow: 0px 4upx 12upx 0px rgba(90, 203, 138, 0.16);
  855. border-radius: 16upx;
  856. position: fixed;
  857. left: 50%;
  858. transform: translateX(-50%);
  859. bottom: 128upx;
  860. z-index: 99;
  861. display: flex;
  862. align-items: center;
  863. justify-content: space-between;
  864. padding: 0 20upx 0 30upx;
  865. .left{
  866. width: 80%;
  867. display: flex;
  868. align-items: center;
  869. image{
  870. width: 24upx;
  871. height: 24upx;
  872. margin-right: 18upx;
  873. }
  874. .text{
  875. width: 90%;
  876. font-size: 28upx;
  877. font-family: PingFang SC;
  878. font-weight: 500;
  879. color: #2BC7B9;
  880. }
  881. }
  882. .btn{
  883. width: 100upx;
  884. height: 48upx;
  885. line-height: 48upx;
  886. text-align: center;
  887. font-size: 24upx;
  888. font-family: PingFang SC;
  889. font-weight: 500;
  890. color: #FFFFFF;
  891. border: 1px solid #D2E6FF;
  892. background: linear-gradient(135deg, #66b2ef 0%, #2BC7B9 100%);
  893. border-radius: 24upx;
  894. margin-left: 30upx;
  895. }
  896. }
  897. </style>