klondike.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  1. <template>
  2. <view class="container">
  3. <view class="top-box">
  4. <view class="top-img"><image src="http://shicai.liuniu946.com/img/KlonBanner.png"></image></view>
  5. <!-- <view class="switch-bar flex_item">
  6. <view class="switchList" @click="change(index)" :key="index" v-for="(ls, index) in switchList" v-bind:class="{ active_color: index == checkedTab }">
  7. <view class="time">{{ ls.time }}</view>
  8. <view class="name">{{ ls.name }}</view>
  9. <view class="switchimg" v-bind:class="{ switchimgshow: index == 1 }"><image src="/static/img/img084.png"></image></view>
  10. </view>
  11. </view> -->
  12. <view class="tip">
  13. <view class="time-box flex" >
  14. <view class="time-name">选择商品复制文案发起群接龙,抢先买好货!</view>
  15. <!-- <view class="flex_item" v-show="starting">
  16. <view>距开始</view>
  17. <uni-countdown color="#FFFFFF" background-color="#334432"
  18. :show-day="false"
  19. :hour="starthour"
  20. :minute="startminute"
  21. :second="startsecond">
  22. </uni-countdown>
  23. </view> -->
  24. <!-- <view class="flex_item" v-show="Timeing">
  25. <view>距结束</view>
  26. <uni-countdown color="#FFFFFF" background-color="#334432"
  27. :show-day="false"
  28. :hour="Timeinghour"
  29. :minute="Timeingminute"
  30. :second="Timeingsecond">
  31. </uni-countdown>
  32. </view> -->
  33. </view>
  34. </view>
  35. </view>
  36. <view class="tab-content">
  37. <view class="preferred_item" v-for="item in list" @click="navToDetailPage(item)">
  38. <view class="flex_item">
  39. <view class="tlist-img">
  40. <view class="leftImgIcon">接龙团</view>
  41. <!-- <view class="leftImgIcon" v-if="sid == 131">达人团</view> -->
  42. <view class="img"><image :src="item.image" mode="scaleToFill"></image></view>
  43. </view>
  44. <view class="tlist-img " v-for="imgItem in item.images">
  45. <view class="img"><image :src="imgItem" mode="scaleToFill"></image></view>
  46. </view>
  47. </view>
  48. <view class="goods_name">
  49. <view class="goods_title flex_item">
  50. <!-- <view class="text">{{ item.min_people }}人团</view> -->
  51. <view class="title-text">{{ item.title }}</view>
  52. </view>
  53. <view class="goods-height">
  54. <!-- <view class="goods_num clamp">{{ item.info }}</view> -->
  55. <view class="flex goods-peplo">
  56. <view class="goods-tip flex_item">
  57. <view class="peplo">库存剩{{ item.percent | parseIntTo }}%</view>
  58. <view class="make">{{ item.mark }}</view>
  59. </view>
  60. <!-- <view class="right flex_item">
  61. <image src="/static/icon/hot.png" mode="aspectFill"></image>
  62. <text>已拼{{ item.order_count }}/份</text>
  63. </view> -->
  64. </view>
  65. </view>
  66. <view class="price flex">
  67. <view class="price_list">
  68. <view class="price-red">
  69. <text class="moneyIcon">¥</text>
  70. <text class="money">{{ item.price }}</text>
  71. <text class="moneyType">/{{ item.unit_name }}</text>
  72. <text class="outMoney">¥{{ item.product_price }}</text>
  73. </view>
  74. </view>
  75. <!-- <view v-if="item.stock >0 " class="img position-relative" @click.stop="Addcar(item)">去开团</view> -->
  76. <view v-if="item.stock >0 " class="img position-relative" @click.stop="navToDetailPage(item)">去接龙</view>
  77. <view v-if="item.stock <1 " class="img1 position-relative">已售罄</view>
  78. <!-- <view v-if="sid == 131 && item.stock <1 " class="img1 position-relative">敬请期待</view> -->
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. <!-- <button open-type="share" class="shareDate">分享给好友</button> -->
  84. </view>
  85. </template>
  86. <script>
  87. // import { cartAdd, autoPink } from '@/api/product.js';
  88. import { getCombinationList, KlonList } from '@/api/groupBooking.js';
  89. import { loadIndexs } from '@/api/index.js';
  90. import { saveUrl, interceptor } from '@/utils/loginUtils.js';
  91. import { mapState } from 'vuex';
  92. import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
  93. import empty from '@/components/empty';
  94. import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
  95. import uniPopup from '@/components/uni-popup/uni-popup.vue';
  96. export default {
  97. computed: {
  98. ...mapState('user', ['userInfo', 'hasLogin']),
  99. ...mapState(['addressData', 'addressPageShow'])
  100. },
  101. components: {
  102. empty,
  103. uniLoadMore,
  104. uniCountdown,
  105. uniPopup,
  106. },
  107. data() {
  108. return {
  109. scrollHeight: 0, // 底部分享按钮高度
  110. checkedTab: 0, // 当前选中的切换页面
  111. sid:132,
  112. list:[],
  113. checkid:0,
  114. //倒计时
  115. hour: 0,//距离明天8点开始时间
  116. minute: 0,
  117. second: 0,
  118. starting: false,//判断活动未开始
  119. Timeing:false,//判断活动进行中
  120. starthour:0,//距离今天开始时间
  121. startminute:0,
  122. startsecond:0,
  123. Timeinghour:0,//距离今天结束时间
  124. Timeingminute:0,
  125. Timeingsecond:0,
  126. workstarTime:'',
  127. workendTime:'',
  128. };
  129. },
  130. filters: {
  131. parseIntTo(percent) {
  132. percent = +percent * 100;
  133. if (percent % 1 === 0) {
  134. return percent;
  135. } else {
  136. percent = percent.toFixed(1);
  137. return percent;
  138. }
  139. }
  140. },
  141. onLoad(option) {
  142. // 判断是否登录
  143. if (!this.hasLogin) {
  144. interceptor();
  145. }
  146. // 判断有无邀请人
  147. if (option.spread) {
  148. uni.setStorageSync('spread', option.spread);
  149. }
  150. saveUrl();
  151. },
  152. onShow() {
  153. this.Getlist();
  154. this.loadData('refresh');
  155. },
  156. //下拉刷新
  157. onPullDownRefresh() {
  158. let obj = this;
  159. //监听下拉刷新动作的执行方法,每次手动下拉刷新都会执行一次
  160. obj.loadData('refresh');
  161. },
  162. // 加载完成后重置无限加载商品包裹框高度
  163. // onReady() {
  164. // let obj = this;
  165. // // 处理数据加载完毕则加载数据
  166. // obj.onlodingTrue().then(e => {
  167. // obj.scrollHeight = e.pageHeight - e.topHeight - e.bottomHeight;
  168. // obj.loadData();
  169. // });
  170. // },
  171. //分享
  172. // onShareAppMessage(options) {
  173. // // 设置菜单中的转发按钮触发转发事件时的转发内容
  174. // let shareObj = {
  175. // title: '点击进入拼团', // 默认是小程序的名称(可以写slogan等)
  176. // path: '/pages/groupBooking/klondike?spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
  177. // imageUrl: 'http://shicai.liuniu946.com/static/img/pinkShare.jpg',
  178. // success: function(res) {
  179. // // 转发成功之后的回调
  180. // if (res.errMsg == 'shareAppMessage:ok') {
  181. // }
  182. // },
  183. // fail: function() {
  184. // // 转发失败之后的回调
  185. // if (res.errMsg == 'shareAppMessage:fail cancel') {
  186. // // 用户取消转发
  187. // } else if (res.errMsg == 'shareAppMessage:fail') {
  188. // // 转发失败,其中 detail message 为详细失败信息
  189. // }
  190. // }
  191. // }; // 来自页面内的按钮的转发 // 返回shareObj
  192. // return shareObj;
  193. // },
  194. methods: {
  195. // 消息通知
  196. // tongzhi() {
  197. // this.$refs.popup.close()
  198. // wx.requestSubscribeMessage({
  199. // tmplIds: ['upq4J5ZQqRx-se7KgRdWS5d-l7EXKdAKT8W_J6HF70g','XKBGRmGwCzpT6oZZ0m6CF8nOS-eyGoDAI2KMSO4R4JY', '93fUZzhSsYNpBcDgFSgTDk3raKodD-bedAvfl3V4Iho'],
  200. // success (res) {
  201. // uni.showToast({
  202. // title:'开启通知成功',
  203. // success() {
  204. // setTimeout(function() {
  205. // uni.navigateTo({
  206. // url: '/pages/order/order?state=1'
  207. // })
  208. // }, 1000);
  209. // }
  210. // })
  211. // }
  212. // })
  213. // },
  214. // 获取营业时间
  215. async Getlist() {
  216. loadIndexs({})
  217. .then(({ data }) => {
  218. let arr = data.sell_time.split(',');
  219. this.workstarTime = arr[0];
  220. this.workendTime = arr[1];
  221. this.StartDate();
  222. this.GetDate();
  223. })
  224. .catch(e => {
  225. });
  226. },
  227. //点击切换商品种类
  228. change(index) {
  229. // 当前选中的对象
  230. if( this.userInfo.is_promoter == 0) {
  231. this.$api.msg('请先成为团长');
  232. setTimeout(() => {
  233. uni.navigateTo({
  234. url: '/pages/notice/poster?id=5'
  235. })
  236. }, 1000);
  237. return;
  238. } else {
  239. this.checkedTab = index
  240. if(this.checkedTab == 0){
  241. this.sid = 132;
  242. }else{
  243. this.sid = 131;
  244. }
  245. console.log(this.sid,55)
  246. this.loadData('tabChange');
  247. }
  248. },
  249. StartDate() {
  250. let obj = this;
  251. //console.log(obj.workstarTime)
  252. //console.log(this.workendTime)
  253. // 获取当前时间
  254. let now = new Date();
  255. let year = now.getFullYear(); //得到年份
  256. let month = now.getMonth();//得到月份
  257. let date = now.getDate();//得到日期
  258. let hour = now.getHours();//得到小时
  259. let minu = now.getMinutes();//得到分钟
  260. let sec = now.getSeconds();//得到秒
  261. //获取早上开始营业的时间戳
  262. let aa = this.workstarTime.split(':');
  263. let bb = aa[0];
  264. let cc = aa[1];
  265. let dd = String(cc).split('');
  266. let ff = dd[0];
  267. let gg = dd[1];
  268. //console.log(bb,ff,gg)
  269. let time1 = new Date(year,month,date,bb,ff,gg);
  270. let morning = time1.getTime();
  271. //获取现在时间的时间戳
  272. let time2 = new Date(year,month,date,hour,minu,sec);
  273. let present = time2.getTime();
  274. //获取晚上结束营业的时间戳
  275. let a = this.workendTime.split(':');
  276. let b = a[0];
  277. let c = a[1];
  278. let d = String(c).split('');
  279. let f = d[0];
  280. let g = d[1];
  281. //console.log(b,f,g)
  282. let time3 = new Date(year,month,date,b,f,g);
  283. //console.log(time1,'time1')
  284. //console.log(time3,'time3')
  285. let night = time3.getTime();
  286. //现在时间大于结束时间,活动结束
  287. // if(present > time3){
  288. // console.log('现在时间大于结束时间,活动结束')
  289. // obj.end = true;
  290. // }
  291. //现在时间大于开始时间小于结束时间,活动进行中
  292. if(present < time3 && present > time1){
  293. //console.log('现在时间大于开始时间小于结束时间,活动进行中')
  294. obj.Timeing = true;
  295. let starTime = time3 - present;
  296. let hours = Math.floor((starTime / 1000 / 60 / 60) % 24); //获取剩余小时数
  297. let minutes = Math.floor((starTime / 1000 / 60) % 60); //获取分钟
  298. let seconds = Math.floor((starTime / 1000) % 60); //获取秒数
  299. obj.Timeinghour = hours;
  300. obj.Timeingminute = minutes;
  301. obj.Timeingsecond = seconds;
  302. //console.log('时间差是: '+ obj.Timeinghour + '小时, ' + obj.Timeingminute + '分钟, ' + obj.Timeingsecond + '秒','距离晚上22:00点结束');
  303. }
  304. //现在时间小于开始时间,活动还未开始
  305. if(present < time1){
  306. //console.log('现在时间小于开始时间,活动还未开始')
  307. obj.starting = true;
  308. let starTime = time1 - present;
  309. let hours = Math.floor((starTime / 1000 / 60 / 60) % 24); //获取剩余小时数
  310. let minutes = Math.floor((starTime / 1000 / 60) % 60); //获取分钟
  311. let seconds = Math.floor((starTime / 1000) % 60); //获取秒数
  312. obj.starthour = hours;
  313. obj.startminute = minutes;
  314. obj.startsecond = seconds;
  315. //console.log('时间差是: '+ obj.starthour + '小时, ' + obj.startminute + '分钟, ' + obj.startsecond + '秒','距离早上7:00点开始');
  316. }
  317. //现在时间距离第二天开始时间
  318. // day3.setTime(day3.getTime()+24*60*60*1000);
  319. // var s3 = day3.getFullYear()+"-" + (day3.getMonth()+1) + "-" + day3.getDate();
  320. },
  321. //获取明天早上7:00的时间戳
  322. GetDate(){
  323. let obj = this;
  324. let now = new Date();
  325. //现在时间转换成时间戳
  326. let nowTime = now.getTime();
  327. now.setTime(now.getTime()+24*60*60*1000);
  328. let time = obj.workstarTime;
  329. let data = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + time;
  330. data = data.replace(/-/g, '/');
  331. let time4 = new Date(data);
  332. let tomorrow = time4.getTime();
  333. let starTime = tomorrow - nowTime;
  334. let hours = Math.floor((starTime / 1000 / 60 / 60) % 24); //获取剩余小时数
  335. let minutes = Math.floor((starTime / 1000 / 60) % 60); //获取分钟
  336. let seconds = Math.floor((starTime / 1000) % 60); //获取秒数
  337. obj.hour = hours;
  338. obj.minute = minutes;
  339. obj.second = seconds;
  340. //console.log('时间差是: '+ hours + '小时, ' + minutes + '分钟, ' + seconds + '秒','距离第二天6:40开始');
  341. },
  342. // onlodingTrue() {
  343. // let obj = this;
  344. // return new Promise(function(resolve, reject) {
  345. // let num = 0;
  346. // let height = {
  347. // topHeight: 0,
  348. // bottomHeight: 0,
  349. // pageHeight: 0
  350. // };
  351. // // 初始化获取头部宽度
  352. // uni.createSelectorQuery()
  353. // .select('#pinkBanner')
  354. // .fields(
  355. // {
  356. // size: true
  357. // },
  358. // data => {
  359. // // 计算最多下拉的高度
  360. // height.topHeight = data.height;
  361. // num++;
  362. // if (num == 3) {
  363. // resolve(height);
  364. // }
  365. // }
  366. // )
  367. // .exec();
  368. // // 初始化获取底部分享宽度
  369. // uni.createSelectorQuery()
  370. // .select('.shareDate')
  371. // .fields(
  372. // {
  373. // size: true
  374. // },
  375. // data => {
  376. // // 计算最多下拉的高度
  377. // height.bottomHeight = data.height;
  378. // num++;
  379. // if (num == 3) {
  380. // resolve(height);
  381. // }
  382. // }
  383. // )
  384. // .exec();
  385. // // 初始化获取底部分享宽度
  386. // uni.createSelectorQuery()
  387. // .select('.container')
  388. // .fields(
  389. // {
  390. // size: true
  391. // },
  392. // data => {
  393. // // 计算最多下拉的高度
  394. // height.pageHeight = data.height;
  395. // num++;
  396. // if (num == 3) {
  397. // resolve(height);
  398. // }
  399. // }
  400. // )
  401. // .exec();
  402. // });
  403. // },
  404. // 查询分类切换
  405. // changeTab(e) {
  406. // this.checkedTab = e.target.current;
  407. // this.loadData('tabChange');
  408. // },
  409. // 请求商品列表
  410. async loadData() {
  411. let obj = this;
  412. KlonList({
  413. page: 1,
  414. limit: 100
  415. })
  416. .then(({ data }) => {
  417. let arr = data.map(e => {
  418. e.images = e.images.slice(0, 2);
  419. return e;
  420. });
  421. obj.list = arr;
  422. console.log(obj.list);
  423. })
  424. .catch(e => {
  425. console.log(e);
  426. });
  427. },
  428. // 一键拼团
  429. // pinkAuto() {
  430. // console.log(this.userInfo.is_promoter,999)
  431. // // if( this.userInfo.is_promoter == 0) {
  432. // // this.$api.msg('请先成为团长');
  433. // // setTimeout(() => {
  434. // // uni.navigateTo({
  435. // // url: '/pages/notice/poster?id=5'
  436. // // })
  437. // // }, 1000);
  438. // // return;
  439. // // }
  440. // autoPink({}).then((data) => {
  441. // console.log(data,5673)
  442. // this.$api.msg(data.msg)
  443. // this.$refs.popup.open()
  444. // })
  445. // .catch(e => {
  446. // console.log(e.message);
  447. // if (e.message == '请先设置拼团地址') {
  448. // this.$api.msg(e.msg)
  449. // setTimeout(function() {
  450. // uni.navigateTo({
  451. // url: '/pages/address/addressPink'
  452. // })
  453. // }, 1000);
  454. // }
  455. // })
  456. // },
  457. //加入购物车
  458. // Addcar(item) {
  459. // let obj = this;
  460. // uni.navigateTo({
  461. // url: '/pages/product/groupdetails?id='+ item.id
  462. // })
  463. // },
  464. //跳转商品详情页
  465. navToDetailPage(ls) {
  466. let obj = this;
  467. let id = ls.id;
  468. // uni.navigateTo({
  469. // url: '/pages/product/productGroup?id=' + id
  470. // });
  471. uni.navigateTo({
  472. url: '/pages/product/productKlon?id=' + id
  473. });
  474. }
  475. }
  476. };
  477. </script>
  478. <style lang="scss">
  479. page,
  480. .container {
  481. background: #F3F3F4;
  482. height: 100%;
  483. }
  484. .top-img {
  485. width: 100%;
  486. height: 220rpx;
  487. image {
  488. width: 100%;
  489. height: 100%;
  490. }
  491. }
  492. .switch-bar {
  493. width: 100%;
  494. font-size: 32rpx;
  495. background-color: #FFFFFF;
  496. .switchList {
  497. padding: 28rpx 0rpx;
  498. text-align: center;
  499. width: 50%;
  500. .time {
  501. font-size: $font-lg;
  502. font-weight: bold;
  503. }
  504. .name {
  505. font-size: $font-sm;
  506. }
  507. }
  508. .switchimg{
  509. position: absolute;
  510. left: 23%;
  511. image{
  512. width: 24rpx;
  513. height: 13rpx;
  514. }
  515. }
  516. .switchimgshow{
  517. left:73.5%;
  518. }
  519. .active_color {
  520. background: linear-gradient(270deg, #fe531e 0%, #fe9503 100%);
  521. color: #ffffff;
  522. }
  523. }
  524. .tip {
  525. width: 100%;
  526. height: 100rpx;
  527. // background-color: #7400C2;
  528. background-color: #FFFFFF;
  529. // background:linear-gradient(14deg,rgba(255,116,37,1),rgba(255,30,41,1));
  530. color: #000000;
  531. // justify-content: space-around;
  532. }
  533. .time-box{
  534. width: 100%;
  535. padding: 20rpx 25rpx;
  536. font-size:27rpx;
  537. // justify-content: space-around;
  538. justify-content: center;
  539. }
  540. .time-name{
  541. font-size:27rpx;
  542. }
  543. .tab-content{
  544. padding: 25rpx 25rpx 100rpx 25rpx;
  545. border-radius: 30rpx;
  546. background: #F3F3F4;
  547. margin-top: -26rpx;
  548. }
  549. .preferred_item {
  550. width: 100%;
  551. height: 100%;
  552. padding: 25rpx 25rpx;
  553. position: relative;
  554. background-color: #FFFFFF;
  555. border-radius: 15rpx;
  556. margin-bottom: 15rpx;
  557. .tlist-img {
  558. width: 225rpx;
  559. position: relative;
  560. margin-right: 15rpx;
  561. .leftImgIcon {
  562. position: absolute;
  563. top: 0;
  564. left: 0;
  565. font-size: 22rpx;
  566. font-family: PingFangSC;
  567. // color: #FFFFFF;
  568. // background: linear-gradient(270deg, rgba(181,116,242, 1) 0%, rgba(139,86,254, 1) 100%);
  569. color: rgba(148, 71, 34, 1);
  570. background: rgba(254, 242, 111, 1);
  571. z-index: 99;
  572. border-radius: 5rpx;
  573. padding: 5rpx 10rpx;
  574. }
  575. .img {
  576. width: 210rpx;
  577. height: 210rpx;
  578. image {
  579. width: 100%;
  580. height: 100%;
  581. border-radius: 20rpx;
  582. }
  583. }
  584. .stock {
  585. margin-top: 13rpx;
  586. font-size: 26rpx;
  587. background: #fff1ee;
  588. width: 100%;
  589. color: #fb4912;
  590. padding: 6rpx 0;
  591. border-radius: 5rpx;
  592. justify-content: center;
  593. align-items: center;
  594. position: absolute;
  595. left: 0;
  596. bottom: 0;
  597. .img {
  598. width: 20rpx;
  599. height: 20rpx;
  600. flex-shrink: 0;
  601. }
  602. .stock-num {
  603. padding-left: 7rpx;
  604. font-size: 22rpx;
  605. border-radius: 5rpx;
  606. height: 32rpx;
  607. line-height: 32rpx;
  608. }
  609. }
  610. }
  611. .goods_name {
  612. .goods_title {
  613. padding-top: 15rpx;
  614. color:rgba(0,0,0,1);
  615. white-space: nowrap;
  616. overflow: hidden;
  617. text-overflow: ellipsis;
  618. font-size:32rpx;
  619. color: $font-color-dark;
  620. height: 70rpx;
  621. overflow: hidden;
  622. text-overflow: ellipsis;
  623. white-space: nowrap;
  624. .title-text {
  625. width: 100%;
  626. overflow: hidden;
  627. text-overflow: ellipsis;
  628. white-space: nowrap;
  629. }
  630. .text{
  631. border-radius: 8rpx;
  632. border: 2rpx solid #FF1A27;
  633. color: #FF1A27;
  634. padding:0rpx 10rpx;
  635. font-size: 26rpx !important;
  636. margin-right: 15rpx;
  637. }
  638. }
  639. .goods-height {
  640. min-height: 60rpx;
  641. }
  642. .goods_num {
  643. font-size: 26rpx;
  644. color: #8f8f97;
  645. padding-bottom: 15rpx;
  646. }
  647. .goods-peplo {
  648. height: 45rpx;
  649. margin-top: 15rpx;
  650. .right {
  651. color:#8e8e8e;
  652. font-size: 24rpx;
  653. width:195rpx;
  654. image {
  655. width: 30rpx;
  656. height: 33rpx;
  657. margin-right: 15rpx;
  658. }
  659. }
  660. .goods-tip {
  661. .peplo {
  662. background:linear-gradient(14deg,rgba(255,116,37,1),rgba(255,30,41,1));
  663. padding: 5rpx 10rpx;
  664. color: #ffffff;
  665. border-top-left-radius:8rpx;
  666. border-bottom-left-radius: 8rpx;
  667. }
  668. .make {
  669. background-color: #fef26f;
  670. color: #944722;
  671. border-top-right-radius: 8rpx;
  672. border-bottom-right-radius: 8rpx;
  673. }
  674. .make,
  675. .peplo {
  676. font-size: $font-sm;
  677. padding: 5rpx 10rpx;
  678. }
  679. }
  680. }
  681. .price {
  682. font-size: 28rpx;
  683. position: relative;
  684. padding-top: 15rpx;
  685. .price_list {
  686. .price-red {
  687. font-size: 30rpx !important;
  688. font-family: Source Han Sans CN;
  689. color: rgba(253, 27, 42, 1);
  690. font-size: $font-base;
  691. font-weight: bold;
  692. .moneyIcon {
  693. font-weight: normal !important;
  694. }
  695. .money {
  696. font-size: 58rpx;
  697. }
  698. .moneyType {
  699. font-weight: 400;
  700. }
  701. .outMoney {
  702. font-weight: 400;
  703. text-decoration: line-through;
  704. color: rgba(142, 142, 142, 1);
  705. }
  706. }
  707. .price-green {
  708. color: #2dbd59;
  709. font-size: 26rpx !important;
  710. font-weight: bold;
  711. text {
  712. background: linear-gradient(45deg, rgba(21, 197, 52, 1), rgba(21, 197, 52, 1));
  713. color: #ffffff;
  714. padding: 0rpx 10rpx;
  715. border-radius: 7rpx;
  716. font-size: 24rpx !important;
  717. margin-left: 15rpx;
  718. }
  719. }
  720. }
  721. .img {
  722. width: 265rpx;
  723. height: 74rpx;
  724. line-height: 74rpx;
  725. background:linear-gradient(14deg,rgba(255,116,37,1),rgba(255,30,41,1));
  726. // background: linear-gradient(270deg, rgba(181,116,242, 1) 0%, rgba(139,86,254, 1) 100%);
  727. border-radius: 99rpx;
  728. color: #ffffff;
  729. font-size: $font-lg;
  730. text-align: center;
  731. }
  732. .img1{
  733. background-color: #D3D3D3;
  734. width: 265rpx;
  735. height: 74rpx;
  736. line-height: 74rpx;
  737. border-radius: 99rpx;
  738. color: #ffffff;
  739. font-size: $font-lg;
  740. text-align: center;
  741. }
  742. .tomorrow {
  743. background: #29a66e;
  744. color: #ffffff;
  745. border-radius: 25rpx;
  746. padding: 10rpx 25rpx;
  747. }
  748. }
  749. }
  750. }
  751. .shareDate {
  752. width: 100%;
  753. font-size: 28rpx;
  754. background: linear-gradient(270deg, #fe531e 0%, #fe9503 100%);
  755. padding: 25rpx 0rpx;
  756. line-height: 1;
  757. text-align: center;
  758. color: #ffffff;
  759. position: fixed;
  760. bottom: 0;
  761. border: none;
  762. border-radius: 0rpx !important;
  763. z-index: 999;
  764. }
  765. </style>