maintainItem.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. <template>
  2. <view class="box">
  3. <homenav :iStatusBarHeight="iStatusBarHeight" :title="'商品详情'"></homenav>
  4. <view class="spwBox">
  5. <swiper class="swiper" circular :autoplay="false" :indicator-dots="true" indicator-color="#CCCCCC" indicator-active-color="#EC0F0A">
  6. <swiper-item v-for="(item,index) in detail.openMaintainImgUrls">
  7. <view class="swiper-item">
  8. <img mode="aspectFit" :src="item" alt="" class="swiper-itemImg" >
  9. </view>
  10. </swiper-item>
  11. </swiper>
  12. </view>
  13. <view class="shopCont">
  14. <view style="display: flex;padding-left: 24rpx;">
  15. <view v-if="itemDefault.salesLabel==1" class="biaoqian">活动价</view>
  16. <view v-if="itemDefault.salesLabel==2" class="biaoqian">促销价</view>
  17. <view v-if="itemDefault.salesLabel==3" class="biaoqian">特价</view>
  18. <view v-if="itemDefault.salesLabel==4" class="biaoqian">限量抢购</view>
  19. <view v-if="itemDefault.salesLabel==5" class="biaoqian">{{itemDefault.salesLabelCustom}}</view>
  20. </view>
  21. <view class="shopCtop">
  22. <view class="goodsPrice" >
  23. <view class="goodsPrice2">¥</view>
  24. <view class="goodsPrice3" >{{itemDefault.money}}</view>
  25. <view class="goodsPrice4" v-if="itemDefault.showCrossedPrice==1">原价:¥{{itemDefault.crossedPrice}}</view>
  26. </view>
  27. <button open-type="share" class="shareBox" >
  28. <view class="shareTxt">分享</view>
  29. <image class="shareIcon" src="../../static/timg/share.png" mode=""></image>
  30. </button>
  31. <!-- <view class="shareBox" >
  32. </view> -->
  33. </view>
  34. <view class="goodsName">{{detail.title}}</view>
  35. <view class="goodsMSBox" v-if="detail.content">
  36. <!-- <view class="goodsMs" v-if="detail.showOilType">机油类型|{{detail.showOilType}}</view>
  37. <view class="goodsMs" v-if="detail.showOilLevel">机油等级|{{detail.showOilLevel}}</view>
  38. <view class="goodsMs" v-if="detail.showFit">适配粘度|{{detail.showFit}}</view> -->
  39. <view class="goodsMs" v-for="(item,index) in detail.content.split(',')">{{item}}</view>
  40. </view>
  41. <view class="timeBox">
  42. <view class="itemTime" v-if="detail.validityType==1">套餐有效期:{{detail.validityTime}}</view>
  43. <view class="sell" v-if="itemDefault.showSalesCount==1">
  44. <span>已售:</span><span style="color: #FFC107;">{{itemDefault.dummyCount}}</span>
  45. </view>
  46. </view>
  47. </view>
  48. <view class="buyBOx">
  49. <view class="buyLine" @click="ckCar" style="padding-bottom: 10rpx;">
  50. <view class="buyTitle">已选车型</view>
  51. <view class="buyData" style="display: flex;">
  52. <view class="carModelLine"> {{carInfo.carModel?carInfo.carModel:''}}</view>
  53. <image class="jtIcon" src="../../static/img2/byjt.png" mode=""></image>
  54. </view>
  55. </view>
  56. <view class="carTis" v-if="isRecommend!='true'">此套餐可能与爱车不适配</view>
  57. <view class="buyLine" style="padding: 6rpx 24rpx;">
  58. <view class="buyTitle" style="line-height: 52rpx;">商品规格</view>
  59. <view class="guigeBox">
  60. <scroll-view scroll-x="true" enable-flex="true" class="buyData guigeBox2">
  61. <!-- <view class="goodsGuige activeGuige" style="margin-right: 24rpx;">单次购买</view> -->
  62. <view class="goodsGuige" @click="goodsGuige(item)"
  63. :class="{activeGuige:item.id==itemDefault.id}" v-if="item.isShow==1"
  64. v-for="(item,index) in detail.packageItems">{{item.title}}</view>
  65. </scroll-view>
  66. </view>
  67. </view>
  68. <view class="buyLine" style="padding: 10rpx 24rpx;">
  69. <view class="buyTitle" style="line-height: 44rpx;">商品数量</view>
  70. <view class="buyData">
  71. <view class="numJsbox">
  72. <view class="numJj" @click="calculation(1)">-</view>
  73. <view class="goodsnum">
  74. <input type="number" value="" v-model="goodsnum" class="goodsnumInput"/>
  75. </view>
  76. <view class="numJj" @click="calculation(2)">+</view>
  77. </view>
  78. </view>
  79. </view>
  80. <view class="buyLine">
  81. <view class="buyTitle">使用方式</view>
  82. <view class="buyData">到店使用</view>
  83. </view>
  84. <view class="buyLine">
  85. <view class="buyTitle">可用门店</view>
  86. <view class="buyData" v-if="itemDefault.packTimeShopName=='全部'">全部门店</view>
  87. <view @click="keyongFn" class="buyData " style="display: flex;" v-else>{{itemDefault.packTimeShopName.split(',').length}}个门店可用
  88. <image src="../../static/img2/byjt.png" mode="" class="hjt"></image>
  89. </view>
  90. </view>
  91. </view>
  92. <view class="mealBox" v-if="itemDefault.content">
  93. <view class="fwlcTitle">套餐内容</view>
  94. <rich-text :nodes="itemDefault.content" style="background: #fff;"></rich-text>
  95. <!-- <view class="mealTop">
  96. <view class="mealName">套餐名称</view>
  97. <view class="mealNum">数量</view>
  98. <view class="mealexpire">有效期</view>
  99. </view>
  100. <view class="mealTop2">
  101. <view class="mealName">【豪华车型】全合成机油保养套餐</view>
  102. <view class="mealNum">2</view>
  103. <view class="mealexpire">18个月</view>
  104. </view>
  105. <view class="mealXj">
  106. <view class="xjLine">
  107. <view class="xjyd"></view>
  108. <view class="xjTxt">20项检查</view>
  109. </view>
  110. <view class="xjLine">
  111. <view class="xjyd"></view>
  112. <view class="xjTxt">20美日韩车型专用保养套餐适配机油</view>
  113. </view>
  114. </view>
  115. <view class="mealMs">
  116. <view class="mealMsline">
  117. 1.本套餐不限车辆使用;
  118. 2.机油套餐包含:机油,机油滤,工时费
  119. 3.购买此套餐,共享有2次保养次数。
  120. </view>
  121. </view> -->
  122. </view>
  123. <!-- 商品详情 -->
  124. <view class="goodsDetail" v-if="detail.detailContent">
  125. <view class="goodsDetailTitle">商品详情</view>
  126. <!-- <view v-html="info.details" style="background: #fff;"></view> -->
  127. <rich-text :nodes="detail.detailContent" style="background: #fff;"></rich-text>
  128. </view>
  129. <view class="bottomTianc"></view>
  130. <view class="bottom">
  131. <view class="bleft" @click="makePhoneCall(showSetting.tel)">
  132. <image class="kefuIcon" src="../../static/img2/kefu.png" mode=""></image>
  133. <view style="text-align: center;font-size: 20rpx;color: #110B01;">客服</view>
  134. </view>
  135. <view class="Btn commonBtn" @click="submitFn">立即购买</view>
  136. </view>
  137. <!-- 提交订单弹框-->
  138. <view class="tkBox" v-if="tkShow" @click="closeTk">
  139. <view class="tkCont" @click.stop="">
  140. <view class="tkTop">
  141. <image class="tkImg" v-if="itemDefault.mainImgUrl" :src="itemDefault.mainImgUrl" mode="" ></image>
  142. <image class="tkImg" v-else src="../../static/timg/noimg.png" mode="" ></image>
  143. <view class="tkNameBox">
  144. <view class="tkName">{{detail.title}}</view>
  145. <view style="display: flex;padding-bottom: 24rpx;">
  146. <view v-if="itemDefault.salesLabel==1" class="biaoqian">活动价</view>
  147. <view v-if="itemDefault.salesLabel==2" class="biaoqian">促销价</view>
  148. <view v-if="itemDefault.salesLabel==3" class="biaoqian">特价</view>
  149. <view v-if="itemDefault.salesLabel==4" class="biaoqian">限量抢购</view>
  150. <view v-if="itemDefault.salesLabel==5" class="biaoqian">{{itemDefault.salesLabelCustom}}</view>
  151. </view>
  152. <view class="goodsPrice">
  153. <view class="goodsPrice2">¥</view>
  154. <view class="goodsPrice3">{{itemDefault.money}}</view>
  155. <view class="goodsPrice4" v-if="itemDefault.showCrossedPrice==1">原价:¥{{itemDefault.crossedPrice}}</view>
  156. </view>
  157. </view>
  158. <image class="chahao" src="../../static/img2/chahao.png" mode="" @click="closeTk"></image>
  159. </view>
  160. <view class="buyLine">
  161. <view class="buyTitle">商品规格</view>
  162. <view class="guigeBox">
  163. <scroll-view scroll-x="true" enable-flex="true" class="buyData guigeBox2">
  164. <view class="goodsGuige" @click="goodsGuige(item)"
  165. :class="{activeGuige:item.id==itemDefault.id}" v-if="item.isShow==1"
  166. v-for="(item,index) in detail.packageItems">{{item.title}}</view>
  167. </scroll-view>
  168. </view>
  169. </view>
  170. <view class="buyLine">
  171. <view class="buyTitle">商品数量</view>
  172. <view class="buyData">
  173. <view class="numJsbox">
  174. <view class="numJj" @click="calculation(1)">-</view>
  175. <view class="goodsnum">
  176. <input type="number" value="" v-model="goodsnum" class="goodsnumInput"/>
  177. </view>
  178. <view class="numJj" @click="calculation(2)">+</view>
  179. </view>
  180. </view>
  181. </view>
  182. <view class="tkBottom">
  183. <view class="tkBottomBtn commonBtn" @click="goSubmit">立即购买</view>
  184. </view>
  185. </view>
  186. </view>
  187. <!-- 提交订单弹框-->
  188. <!-- 门店列表-->
  189. <view class="tkBox" v-if="keyongShow" @click="keyongClose">
  190. <view class="tkCont2">
  191. <view class="tkTOp2">
  192. <view class="chahao"></view>
  193. <view class="kymd">可用门店</view>
  194. <image class="chahao" src="../../static/img2/chahao.png" mode="" @click="closeTk"></image>
  195. </view>
  196. <view class="keyongBOx">
  197. <view class="keyongLine" v-for="(item,index) in itemDefault.packTimeShopName.split(',')">
  198. {{item}}
  199. </view>
  200. </view>
  201. </view>
  202. </view>
  203. </view>
  204. </template>
  205. <script>
  206. import homenav from "../../components/homenav/nav.vue"
  207. export default {
  208. components: {
  209. homenav
  210. },
  211. data() {
  212. return {
  213. themeColor:'',
  214. ext:'',
  215. goodsnum:1,
  216. details:'11233',
  217. maintainId:'',
  218. detail:'',
  219. itemDefault:'',
  220. carInfo:'',
  221. userInfo:'',
  222. isRecommend:'',
  223. tkShow:false,
  224. keyongShow:false,
  225. showSetting:'',
  226. iStatusBarHeight:'',
  227. }
  228. },
  229. onLoad(opt) {
  230. this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
  231. this.ext = this.$common.getExtStoreId();
  232. this.themeColor = uni.getStorageSync("themeColor");
  233. this.maintainId=opt.maintainId
  234. this.carInfo=this.$store.state.carInfo;
  235. this.userInfo=this.$store.state.userInfo;
  236. this.isRecommend=opt.isRecommend
  237. //console.log("this.isRecommend=="+this.isRecommend)
  238. if(this.userInfo){
  239. this.getdetail()
  240. this.getInfo()
  241. }else{
  242. this.$common.automaticlogin().then(val => {
  243. this.userInfo=this.$store.state.userInfo;
  244. this.getdetail()
  245. this.getInfo()
  246. })
  247. }
  248. },
  249. onShow() {
  250. var car =uni.getStorageSync("byCar")
  251. if(car){
  252. this.carInfo=car;
  253. this.getdetail()
  254. this.isRecommend=false
  255. }
  256. },
  257. methods: {
  258. makePhoneCall(tel){
  259. uni.makePhoneCall({
  260. phoneNumber: tel,
  261. });
  262. },
  263. getInfo(){
  264. this.$http('openreservation/getInfo', {
  265. lat: '',
  266. lng: '',
  267. }, 'GET').then(res => {
  268. this.showSetting=res.data.showSetting
  269. })
  270. },
  271. ckCar(){
  272. uni.navigateTo({
  273. url:'../user/addCar/cailist?type=5'
  274. })
  275. },
  276. goodsGuige(item){
  277. this.itemDefault=item
  278. this.itemDefault.mainImgUrl=this.detail.openMaintainImgUrls[0]
  279. },
  280. goSubmit(){
  281. this.itemDefault.goodsnum=this.goodsnum
  282. this.itemDefault.goodsname=this.detail.title
  283. this.itemDefault.itemId=this.detail.id
  284. this.itemDefault.mainImgUrl=this.detail.openMaintainImgUrls[0]
  285. uni.setStorage({
  286. key: 'itemDefault',
  287. data: this.itemDefault,
  288. success: function () {
  289. uni.navigateTo({
  290. url:'maintainSubmit'
  291. })
  292. }
  293. });
  294. },
  295. closeTk(){
  296. this.tkShow=false
  297. },
  298. keyongClose(){
  299. this.keyongShow=false;
  300. },
  301. keyongFn(){
  302. this.keyongShow=true;
  303. },
  304. submitFn(){
  305. if(this.itemDefault){
  306. this.tkShow=true
  307. }else{
  308. uni.showToast({
  309. title: '请选择商品规格',
  310. icon:'none',
  311. duration: 3000
  312. });
  313. /* uni.showModal({
  314. title: '提示',
  315. content:"请选择商品规格",
  316. success: function(resTKk) {
  317. }
  318. }); */
  319. }
  320. },
  321. calculation(type){
  322. if(type==1){
  323. if(this.goodsnum>1){
  324. this.goodsnum--
  325. }
  326. }else{
  327. console.log("+++")
  328. this.goodsnum++
  329. }
  330. },
  331. getdetail(){
  332. uni.showLoading({
  333. title: '加载中'
  334. })
  335. this.$http('openMaintain/detail/'+this.maintainId, {
  336. /* maintainId:this.maintainId */
  337. }, 'GET').then(res => {
  338. uni.hideLoading();
  339. this.detail=res.data
  340. this.detail.packageItems.forEach(item=>{
  341. if(item.isDefault==1){
  342. this.itemDefault=item
  343. this.itemDefault.mainImgUrl=this.detail.openMaintainImgUrls[0]
  344. }
  345. if(item.content){
  346. item.content=item.content.replace(/\<img/gi, '<img style="max-width:100% !important;height:auto" ');
  347. }
  348. })
  349. if(this.detail.detailContent){
  350. this.detail.detailContent=this.detail.detailContent.replace(/\<img/gi, '<img style="max-width:100% !important;height:auto" ');
  351. }
  352. })
  353. },
  354. },
  355. onShareAppMessage(res) {
  356. var img='';
  357. if(this.detail.openMaintainImgUrls.length>0){
  358. img=this.detail.openMaintainImgUrls[0]
  359. }
  360. return {
  361. title: this.detail.title,
  362. imageUrl:img,
  363. path: 'pages/subPack/maintainItem?maintainId=' + this.maintainId+'&isRecommend='+this.isRecommend+'&shareId='+this.userInfo.openId,
  364. success(res){
  365. uni.showToast({
  366. title:'分享成功'
  367. })
  368. },
  369. fail(res){
  370. uni.showToast({
  371. title:'分享失败',
  372. icon:'none',
  373. duration: 3000
  374. })
  375. }
  376. }
  377. },
  378. }
  379. </script>
  380. <style scoped lang="less">
  381. .box {
  382. width: 100vw;
  383. min-height: 100vh;
  384. background: #F4F4F4;
  385. }
  386. .swiper{
  387. width: 750rpx;
  388. height: 700rpx;
  389. background: #FFFFFF;
  390. /* border-bottom: 1px solid #EEEEEE; */
  391. }
  392. .swiper-item{
  393. width: 750rpx;
  394. height: 700rpx;
  395. }
  396. .swiper-itemImg{
  397. width: 750rpx;
  398. height: 700rpx;
  399. }
  400. .goodsPrice{
  401. display: flex;
  402. }
  403. .goodsPrice1{
  404. font-size: 24rpx;
  405. font-weight: 400;
  406. color: #EC0F0A;
  407. padding-top: 14rpx;
  408. padding-right: 14rpx;
  409. }
  410. .goodsPrice2{
  411. font-size: 28rpx;
  412. font-weight: 400;
  413. color: #EC0F0A;
  414. padding-top: 16rpx;
  415. }
  416. .goodsPrice3{
  417. font-size: 44rpx;
  418. font-weight: 500;
  419. color: #EC0F0A;
  420. }
  421. .goodsPrice4{
  422. font-size: 24rpx;
  423. font-weight: 400;
  424. color: #999999;
  425. padding-top: 20rpx;
  426. text-decoration:line-through;
  427. padding-left: 10rpx;
  428. }
  429. .Sold{
  430. font-weight: 400;
  431. color: #999999;
  432. font-size: 24rpx;
  433. padding-top: 18rpx;
  434. }
  435. .goodsName{
  436. font-size: 30rpx;
  437. line-height: 42rpx;
  438. font-weight: 500;
  439. color: #333333;
  440. padding: 20rpx 24rpx;
  441. padding-top: 0;
  442. padding-bottom: 16rpx;
  443. }
  444. .goodsMd{
  445. font-weight: 400;
  446. color: #999999;
  447. font-size: 26rpx;
  448. padding: 0 24rpx;
  449. padding-bottom: 20rpx;
  450. }
  451. .shopCont{
  452. background: #FFFFFF;
  453. }
  454. .shopCtop{
  455. display: flex;
  456. padding: 20rpx 24rpx 6rpx 20rpx;
  457. justify-content: space-between;
  458. background: #FFFFFF;
  459. }
  460. .goodsMSBox{
  461. display: flex;padding-left: 24rpx;
  462. }
  463. .goodsMs{
  464. font-size: 18rpx;
  465. color: #FF063A;
  466. padding: 2rpx 8rpx;
  467. border-radius: 6rpx;
  468. border: 1rpx solid #FF063A;
  469. margin-right: 16rpx;
  470. }
  471. .timeBox{
  472. display: flex;justify-content: space-between;
  473. padding: 20rpx 24rpx;
  474. font-size: 26rpx;
  475. color: #666E80;
  476. }
  477. .shareIcon{
  478. width: 33rpx;height: 33rpx;margin-left: 10rpx;
  479. }
  480. .shareBox{
  481. display: flex;font-size: 24rpx;
  482. color: #666666;padding-top: 6rpx;
  483. line-height: 33rpx;
  484. }
  485. .jtIcon{
  486. margin-top: 8rpx;
  487. width: 12rpx;
  488. height: 22rpx;
  489. margin-left: 6rpx;
  490. }
  491. .buyLine{
  492. display: flex;justify-content: space-between;
  493. padding: 15rpx 24rpx;font-size: 26rpx;
  494. color: #666E80;
  495. }
  496. .buyBOx{
  497. background: #FFFFFF;margin-top: 20rpx;
  498. padding: 15rpx 0;
  499. }
  500. .buyData{
  501. color: #222222;display: flex;
  502. }
  503. .goodsGuige{
  504. /* width: 150rpx; */
  505. height: 50rpx;line-height: 50rpx;
  506. background: #F6F6F6;
  507. border-radius: 5rpx;
  508. font-size: 24rpx;
  509. color: #222222;text-align: center;
  510. margin-left: 24rpx;
  511. padding: 0 20rpx;
  512. display: inline-block;
  513. }
  514. .activeGuige{
  515. /* width: 146rpx; */
  516. height: 46rpx;line-height: 46rpx;
  517. border: 2rpx solid #FF0035;
  518. border-radius: 5rpx;
  519. font-size: 24rpx;
  520. color: #FF0035;text-align: center;
  521. background: #ffffff;
  522. }
  523. .numJsbox{
  524. display: flex;overflow: hidden;
  525. }
  526. .buyCont{
  527. position: absolute;
  528. left: 0;
  529. bottom: 0;
  530. width: 750rpx;
  531. height: 688rpx;
  532. background: #FFFFFF;
  533. border-radius: 26rpx 26rpx 0px 0px;
  534. }
  535. .buyNumBox{
  536. padding: 30rpx;
  537. padding-top: 10rpx;
  538. padding-bottom: 70rpx;
  539. }
  540. .buyContCh{
  541. position: absolute;
  542. top: 53rpx;
  543. right: 36rpx;
  544. width: 36rpx;
  545. height: 36rpx;
  546. }
  547. .goodsnum{
  548. width: 44rpx;
  549. height: 44rpx;
  550. background: #F4F5F7;
  551. line-height: 44rpx;
  552. text-align: center;
  553. font-weight: 500;
  554. color: #333333;
  555. font-size: 24rpx;
  556. margin: 0 4rpx;
  557. border-left:1px solid #dddddd;
  558. border-right:1px solid #dddddd;
  559. }
  560. .goodsnumInput{
  561. width: 44rpx;
  562. height: 44rpx;
  563. background: #FFFFFF;
  564. line-height: 44rpx;
  565. text-align: center;
  566. font-weight: 500;
  567. color: #333333;
  568. font-size: 24rpx;
  569. }
  570. .numJj{
  571. width: 44rpx;
  572. height: 44rpx;
  573. background: #ffffff;
  574. border-radius: 0px 6rpx 6rpx 0px;
  575. text-align: center;
  576. line-height: 44rpx;
  577. font-size: 32rpx;
  578. color: #999999;
  579. }
  580. .numJsbox{
  581. border: 1px solid #dddddd;
  582. border-radius: 6rpx;
  583. }
  584. .mealBox{
  585. background: #FFFFFF;
  586. padding: 20rpx 24rpx;
  587. margin-top: 20rpx;
  588. font-size: 26rpx;
  589. }
  590. .fwlcTitle{
  591. font-size: 26rpx;padding-bottom: 24rpx;
  592. color: #666E80;
  593. }
  594. .mealTop{
  595. display: flex;
  596. justify-content: space-between;
  597. height: 72rpx;
  598. line-height: 72rpx;
  599. font-weight: 500;
  600. font-size: 26rpx;
  601. color: #222222;
  602. font-size: 26rpx;
  603. padding: 0 20rpx;
  604. }
  605. .mealNum{
  606. text-align: center;
  607. width: 120rpx;
  608. }
  609. .mealexpire{
  610. text-align: center; width: 120rpx;
  611. }
  612. .mealName{
  613. width: 460rpx;
  614. }
  615. .mealTop2{
  616. display: flex;
  617. justify-content: space-between;
  618. height: 72rpx;
  619. line-height: 72rpx;
  620. font-weight: 500;
  621. font-size: 26rpx;
  622. color: #222222;
  623. font-size: 26rpx;
  624. padding: 0 20rpx;
  625. background: #FFF6DB;
  626. }
  627. .mealXj{
  628. background: #FFFCF3;
  629. }
  630. .xjLine{
  631. display: flex;
  632. font-weight: 500;
  633. font-size: 26rpx;
  634. color: #222222;
  635. padding: 20rpx 20rpx;
  636. }
  637. .xjyd{
  638. width: 8rpx;
  639. height: 8rpx;
  640. background: #FABF1B;
  641. border-radius: 50rpx;
  642. margin-top: 12rpx;
  643. margin-right: 10rpx;
  644. }
  645. .mealMs{
  646. background: #FFFFFF;
  647. padding: 20rpx;
  648. font-weight: 400;
  649. font-size: 24rpx;
  650. color: #9A9A9A;
  651. line-height: 38rpx;
  652. }
  653. .goodsDetailTitle{
  654. font-size: 26rpx;
  655. color: #666E80;
  656. background: #FFFFFF;
  657. padding-bottom: 24rpx;
  658. }
  659. .goodsDetail{
  660. padding: 20rpx;
  661. background: #FFFFFF;
  662. font-size: 26rpx;
  663. margin-top: 20rpx;
  664. }
  665. .goodsDetail img{
  666. width: 750rpx;
  667. }
  668. .goodsDetail image{
  669. width: 750rpx;
  670. }.bottom{
  671. background: #FFFFFF;
  672. display: flex;
  673. justify-content: space-between;
  674. position: fixed;
  675. width: 100%;
  676. padding:30rpx 0;
  677. padding-bottom: constant(safe-area-inset-bottom);
  678. padding-bottom: env(safe-area-inset-bottom);
  679. left: 0;bottom: 0;
  680. box-shadow: 0rpx -2rpx 16rpx 0rpx rgba(153,153,153,0.2);
  681. }
  682. .bleft{
  683. font-weight: 500;
  684. color: #222222;
  685. padding-left: 50rpx;
  686. }
  687. .Btn{
  688. width: 532rpx;text-align: center;
  689. height: 86rpx;line-height: 86rpx;
  690. /* background: #FCD903; */
  691. border-radius: 43rpx;
  692. font-size: 32rpx;
  693. color: #110B01;
  694. margin-right: 36rpx;
  695. }
  696. .kefuIcon{
  697. width: 50rpx;height: 50rpx;
  698. }
  699. .bottomTianc{
  700. height: 160rpx;
  701. padding-bottom: constant(safe-area-inset-bottom);
  702. padding-bottom: env(safe-area-inset-bottom);
  703. }
  704. .carTis{
  705. color: #EC0F0A;font-size: 20rpx;
  706. text-align: right;
  707. padding-right: 24rpx;
  708. }
  709. .guigeBox{
  710. /* height: 50rpx; */
  711. height: 52rpx;
  712. width: 500rpx;
  713. overflow: hidden;
  714. }
  715. .guigeBox2{
  716. flex-wrap: nowrap;justify-content: flex-end;white-space: nowrap;
  717. height: 50rpx;
  718. }
  719. .tkBox{
  720. width: 100vw;height: 100vh;background: rgba(0,0,0,0.5);
  721. position: fixed;left: 0;top: 0;
  722. z-index: 11;
  723. }
  724. .tkCont{
  725. width: 750rpx;
  726. height: 611rpx;
  727. background: #FFFFFF;
  728. border-radius: 28rpx 28rpx 0rpx 0rpx;
  729. position: absolute;
  730. left: 0;bottom: 0;
  731. padding-bottom: constant(safe-area-inset-bottom);
  732. padding-bottom: env(safe-area-inset-bottom);
  733. }
  734. .tkCont2{
  735. width: 750rpx;
  736. height:50vh;
  737. background: #FFFFFF;
  738. border-radius: 28rpx 28rpx 0rpx 0rpx;
  739. position: absolute;
  740. left: 0;bottom: 0;
  741. padding-bottom: constant(safe-area-inset-bottom);
  742. padding-bottom: env(safe-area-inset-bottom);
  743. overflow-y: auto;
  744. }
  745. .tkTop{
  746. display: flex;padding: 40rpx 24rpx;
  747. padding-bottom: 25rpx;
  748. }
  749. .tkImg{
  750. width: 160rpx;
  751. height: 160rpx;border-radius: 13rpx;
  752. }
  753. .tkName{
  754. font-size: 30rpx;
  755. color: #222222;
  756. line-height: 42rpx;
  757. font-weight: 500;
  758. text-overflow: -o-ellipsis-lastline;
  759. overflow: hidden;
  760. text-overflow: ellipsis;
  761. display: -webkit-box;
  762. -webkit-line-clamp: 2;
  763. line-clamp: 2;
  764. -webkit-box-orient: vertical;
  765. }
  766. .tkNameBox{
  767. padding-left: 24rpx;width: 500rpx;
  768. }
  769. .chahao{
  770. width: 22rpx;height: 22rpx;padding-top: 10rpx;
  771. }
  772. .buyLine{
  773. display: flex;justify-content: space-between;
  774. padding: 15rpx 24rpx;font-size: 26rpx;
  775. color: #666E80;
  776. }
  777. .buyBOx{
  778. background: #FFFFFF;margin-top: 20rpx;
  779. }
  780. .buyData{
  781. color: #222222;display: flex;
  782. }
  783. .carModelLine{
  784. max-width: 560rpx;
  785. white-space: nowrap; /* 确保文本在一行内显示 */
  786. overflow: hidden; /* 超出容器部分隐藏 */
  787. text-overflow: ellipsis
  788. }
  789. .activeGuige{
  790. /* width: 146rpx; */
  791. height: 46rpx;line-height: 46rpx;
  792. border: 2rpx solid #FF0035;
  793. border-radius: 5rpx;
  794. font-size: 24rpx;
  795. color: #FF0035;text-align: center;
  796. background: #ffffff;
  797. font-weight: 500;
  798. }
  799. .numJsbox{
  800. display: flex;
  801. }
  802. .buyCont{
  803. position: absolute;
  804. left: 0;
  805. bottom: 0;
  806. width: 750rpx;
  807. height: 688rpx;
  808. background: #FFFFFF;
  809. border-radius: 26rpx 26rpx 0px 0px;
  810. }
  811. .buyNumBox{
  812. padding: 30rpx;
  813. padding-top: 10rpx;
  814. padding-bottom: 70rpx;
  815. }
  816. .buyContCh{
  817. position: absolute;
  818. top: 53rpx;
  819. right: 36rpx;
  820. width: 36rpx;
  821. height: 36rpx;
  822. }
  823. .tkBottomBtn{
  824. width: 661rpx;text-align: center;
  825. height: 86rpx;line-height: 86rpx;
  826. /* background: #FCD903; */
  827. border-radius: 43rpx;
  828. font-size: 32rpx;
  829. color: #110B01;
  830. }
  831. .tkBottom{
  832. width: 750rpx;
  833. padding-top: 30rpx;
  834. background: #FFFFFF;
  835. box-shadow: 0rpx -2rpx 16rpx 0rpx rgba(153,153,153,0.2);
  836. padding-bottom: constant(safe-area-inset-bottom);
  837. padding-bottom: env(safe-area-inset-bottom);
  838. display: flex;justify-content: center;align-items: center;
  839. position: absolute;left: 0;bottom: 0;
  840. }
  841. .tkTOp2{
  842. display: flex;justify-content: space-between;
  843. font-size: 30rpx;
  844. padding: 30rpx;
  845. }
  846. .keyongLine{
  847. padding: 16rpx 24rpx;
  848. font-size: 26rpx;
  849. border-bottom: 1px solid #eaeaea;
  850. }
  851. .mealBox img{
  852. width: 100%;
  853. }
  854. .hjt{
  855. width: 12rpx;height: 24rpx;
  856. margin-top: 6rpx;margin-left: 10rpx;
  857. }
  858. button::after{
  859. border: none;
  860. }
  861. button{
  862. position: relative;
  863. display: block;
  864. margin-left: 0;
  865. margin-right: 0;
  866. padding-left: 0px;
  867. padding-right: 0px;
  868. box-sizing: border-box;
  869. // font-size: 18px;
  870. text-align: center;
  871. text-decoration: none;
  872. // line-height: 1;
  873. line-height: 1.35;
  874. // border-radius: 5px;
  875. -webkit-tap-highlight-color: transparent;
  876. overflow: hidden;
  877. color: #000000;
  878. background-color: #fff;
  879. height: 100%;
  880. }
  881. .biaoqian{
  882. background: #FF0035;
  883. border-radius: 24rpx 24rpx 25rpx 0rpx;
  884. padding: 4rpx 16rpx;
  885. font-size: 22rpx;
  886. color: #FFFFFF;
  887. margin-top: 24rpx;
  888. margin-bottom: -15rpx;
  889. }
  890. .tkNameBox .biaoqian{
  891. margin-top: 16rpx;margin-bottom: -18rpx;
  892. }
  893. </style>