index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925
  1. <template>
  2. <view class="center">
  3. <view class="top">
  4. <view class="vheigh"></view>
  5. <!-- <view class="body-title">
  6. <view class="goback-box" @click="toBack">
  7. <image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
  8. </view>
  9. <view class="header">进货系统</view>
  10. </view> -->
  11. <!-- <image class="top-bg" src="../../static/img/top-bg.png" mode=""></image> -->
  12. <view class="top-main flex">
  13. <view class="search-box flex" @click="clickSearch()">
  14. <image class="search" src="../../static/img/search.png" mode=""></image>
  15. <view class="search-font">输入关键词搜索</view>
  16. </view>
  17. </view>
  18. </view>
  19. <swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
  20. <swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item"
  21. @click="bannerNavToUrl(item)">
  22. <image :src="item.pic" />
  23. </swiper-item>
  24. </swiper>
  25. <view class="stre flex">
  26. <view class="ic-text flex">
  27. <image class="ic-tubiao" src="../../static/icon/shou-ic.png" mode=""></image>
  28. <view class="ic-wen">自用购物优惠</view>
  29. </view>
  30. <view class="ic-text flex">
  31. <image class="ic-tubiao" src="../../static/icon/shou-ic.png" mode=""></image>
  32. <view class="ic-wen">分享好友赚钱</view>
  33. </view>
  34. <view class="ic-text flex">
  35. <image class="ic-tubiao" src="../../static/icon/shou-ic.png" mode=""></image>
  36. <view class="ic-wen">超值正品优惠</view>
  37. </view>
  38. </view>
  39. <view class="zhishi flex">
  40. <view class="zhishi-item">
  41. <image class="zhishi-ic" src="../../static/icon/shou-tro.png" mode=""></image>
  42. <view class="zhishi-te">行业介绍</view>
  43. </view>
  44. <view class="zhishi-item">
  45. <image class="zhishi-ic" src="../../static/icon/shou-we.png" mode=""></image>
  46. <view class="zhishi-te">关于我们</view>
  47. </view>
  48. <view class="zhishi-item">
  49. <image class="zhishi-ic" src="../../static/icon/shou-kefu.png" mode=""></image>
  50. <view class="zhishi-te">联系客服</view>
  51. </view>
  52. <view class="zhishi-item">
  53. <image class="zhishi-ic" src="../../static/icon/firend.png" mode=""></image>
  54. <view class="zhishi-te">邀请好友</view>
  55. </view>
  56. </view>
  57. <view class="tongz flex">
  58. <view>
  59. <view class="tongz-bg">
  60. <image src="../../static/img/tongz-bg.png" mode=""></image>
  61. </view>
  62. <view class="tongz-left flex">
  63. <image class="image-left" src="../../static/icon/shou-gonggao.png" mode=""></image>
  64. <u-notice-bar style="width: 100%;" mode="vertical" type="none" :volume-icon="false"
  65. :more-icon="true" :list="text" @click="goDetails"
  66. @getMore="nav('/pages/index/message?type=1')"></u-notice-bar>
  67. </view>
  68. </view>
  69. </view>
  70. <view class="navbar flex">
  71. <view class="navbar-item" v-for="(item, index) in navbarList[0].children"
  72. @click="nav('/pages/product/list?tid=' + item.id)">
  73. <image class="nitem-image" :src="item.pic" mode=""></image>
  74. <view class="nitem-font">{{ item.cate_name }}</view>
  75. </view>
  76. </view>
  77. <view class="shingle" v-if="list">
  78. <view class="shingle-top flex">
  79. <view class="shingle-title">CBB潮贝抢货通道</view>
  80. <view class="shingle-btn" @click="nav('/pages/hall/hall')">
  81. 更多CBB代理团队
  82. <text>></text>
  83. </view>
  84. </view>
  85. <view class="shingle-main" @click="navTo(list)">
  86. <view class="shingle-bg">
  87. <image :src="list.image" mode=""></image>
  88. </view>
  89. <view class="shinglem-title flex">
  90. <image class="tbg" src="../../static/img/tbg-left.png" mode=""></image>
  91. <view class="shinglemt-center">
  92. <image class="address" src="../../static/img/address.png" mode=""></image>
  93. <view class="shingle-font">{{ list.name || 'null' }}</view>
  94. </view>
  95. <image class="tbg" src="../../static/img/tbg-right.png" mode=""></image>
  96. </view>
  97. <view class="shingle-mmain flex">
  98. <view class="smmain-item">
  99. <view class="smitem-top">开放中</view>
  100. <view class="smitem-bottom">状态</view>
  101. </view>
  102. <view class="shu"></view>
  103. <view class="smmain-item">
  104. <view class="smitem-top clamp">{{ list.nickname }}</view>
  105. <view class="smitem-bottom">CBB潮倍贝</view>
  106. </view>
  107. <view class="shu"></view>
  108. <view class="smmain-item">
  109. <view class="people flex">
  110. <view class="peopleitem" v-for="item in 1">
  111. <image src="../../static/img/busy.png" mode=""></image>
  112. </view>
  113. <view class="peopleitem" v-for="item in 4">
  114. <image src="../../static/img/leisure.png" mode=""></image>
  115. </view>
  116. </view>
  117. <view class="smitem-bottom">流畅</view>
  118. </view>
  119. </view>
  120. <image class="right-bottom" src="../../static/img/right-bottom.png" mode=""></image>
  121. </view>
  122. </view>
  123. <view class="shop" @click="nav('/pages/store/store')">
  124. <view class="shop-title">
  125. <image class="shop-title-icon" src="../../static/icon/index1.png" mode=""></image>
  126. <view class="shop-title-font">本地生活</view>
  127. </view>
  128. <!-- #ifndef APP-PLUS -->
  129. <view class="shop-main">
  130. <image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/59b8e202304061437149756.png" mode=""></image>
  131. </view>
  132. <!-- #endif -->
  133. <!-- #ifdef APP-PLUS -->
  134. <view class="shop-main">
  135. <image src="../../static/img/index-shop.png" mode=""></image>
  136. </view>
  137. <!-- #endif -->
  138. </view>
  139. <view class="product" v-for="(item, index) in navbarList[0].children">
  140. <view class="seckill-title flex">
  141. <view class="seckill-left flex">
  142. <view class="seckill-font">{{ item.cate_name }}</view>
  143. </view>
  144. <view class="seckill-right" @click="nav('/pages/product/list?tid=' + item.id)">
  145. <view class="seckill-rfont">更多</view>
  146. <image class="seckill-back" src="../../static/img/back.png" mode=""></image>
  147. </view>
  148. </view>
  149. <view class="priduct-main">
  150. <view class="priduct-item" v-for="itm in item.product" :key="itm.id" @click="navToDetailPage(itm)">
  151. <view class="priduct-main-image">
  152. <image :src="itm.image" mode="scaleToFill"></image>
  153. </view>
  154. <view class="priduct-main-name clamp margin-c-20">{{ itm.store_name }}</view>
  155. <view class="priduct-main-price">
  156. <view class="price" v-if="item.integral != 0">¥{{ itm.price * 1 }} + {{ itm.integral }}趣豆</view>
  157. <view class="price" v-else>¥{{ itm.price }}</view>
  158. </view>
  159. </view>
  160. </view>
  161. </view>
  162. <u-tabbar activeColor="#f42b4e" v-model="current" :list="tabbar"></u-tabbar>
  163. </view>
  164. </template>
  165. <script>
  166. import {
  167. tabbar1
  168. } from '@/utils/tabbar.js';
  169. import seckill from '../../components/seckill/seckill.vue';
  170. import {
  171. article
  172. } from '@/api/user.js';
  173. import {
  174. getCategoryList,
  175. getProducts
  176. } from '@/api/product.js';
  177. import {
  178. loadIndexs,
  179. store_list
  180. } from '@/api/index.js';
  181. import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
  182. // #ifdef H5
  183. // import { openMap } from '@/utils/rocessor.js';
  184. // #endif
  185. import {
  186. auction_gu
  187. } from '@/api/hall.js';
  188. import {
  189. mapState,
  190. mapMutations
  191. } from 'vuex';
  192. export default {
  193. components: {
  194. seckill,
  195. uniCountdowns
  196. },
  197. data() {
  198. return {
  199. current: 0,
  200. tabbar: tabbar1,
  201. titleNViewBackground: '',
  202. swiperCurrent: 0,
  203. swiperLength: 0,
  204. longitude: '', //经度
  205. latitude: '', //纬度
  206. dataList: '',
  207. carouselList: [], //轮播图列表
  208. text: [],
  209. article: [],
  210. list: {},
  211. stop: [],
  212. navbarList: [{
  213. child: []
  214. }]
  215. };
  216. },
  217. onPullDownRefresh() {
  218. console.log('111');
  219. this.loadData();
  220. this.getaddress();
  221. setTimeout(function() {
  222. uni.stopPullDownRefresh();
  223. }, 1000);
  224. },
  225. onShow() {
  226. this.loadData();
  227. this.getnavbar();
  228. this.getaddress();
  229. },
  230. methods: {
  231. ...mapMutations(['setLat', 'setLon', 'setChoose']),
  232. getnavbar() {
  233. let obj = this;
  234. getCategoryList({})
  235. .then(({
  236. data
  237. }) => {
  238. data[0].children.forEach(e => {
  239. getProducts({
  240. page: 1,
  241. limit: 2,
  242. sid: e.id
  243. }).then(info => {
  244. obj.$set(e, 'product', info.data);
  245. });
  246. });
  247. this.navbarList = data;
  248. console.log(data, '123456');
  249. })
  250. .catch(err => {
  251. console.log(err);
  252. });
  253. },
  254. loadData() {
  255. article({}, 1).then(({
  256. data
  257. }) => {
  258. data.forEach(e => {
  259. this.text.push(e.synopsis);
  260. });
  261. this.article = data;
  262. });
  263. auction_gu({
  264. pages: 1,
  265. limit: 1
  266. })
  267. .then(({
  268. data
  269. }) => {
  270. this.list = data[0];
  271. })
  272. .catch(e => {
  273. console.log(e);
  274. });
  275. loadIndexs({})
  276. .then(({
  277. data
  278. }) => {
  279. let goods = data.info;
  280. this.dataList = goods.bastList; //精品推荐
  281. this.carouselList = data.banner;
  282. })
  283. .catch(e => {});
  284. },
  285. out_of_china(lng, lat) {
  286. return lng < 72.004 || lng > 137.8347 || (lat < 0.8293 || lat > 55.8271 || false);
  287. },
  288. transformlat(lng, lat) {
  289. const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
  290. const PI = 3.1415926535897932384626;
  291. const a = 6378245.0;
  292. const ee = 0.00669342162296594323;
  293. let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(
  294. lng));
  295. ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
  296. ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0;
  297. ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0;
  298. return ret;
  299. },
  300. transformlng(lng, lat) {
  301. const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
  302. const PI = 3.1415926535897932384626;
  303. const a = 6378245.0;
  304. const ee = 0.00669342162296594323;
  305. let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
  306. ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
  307. ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0;
  308. ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0;
  309. return ret;
  310. },
  311. wgs84Togcj02(lng, lat) {
  312. if (this.out_of_china(lng, lat)) {
  313. return [lng, lat];
  314. }
  315. //定义一些常量
  316. //GCJ02 转换为 WGS84
  317. var that = this;
  318. const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
  319. const PI = 3.1415926535897932384626;
  320. const a = 6378245.0;
  321. const ee = 0.00669342162296594323;
  322. let dlat = that.transformlat(lng - 105.0, lat - 35.0);
  323. let dlng = that.transformlng(lng - 105.0, lat - 35.0);
  324. let radlat = (lat / 180.0) * PI;
  325. let magic = Math.sin(radlat);
  326. magic = 1 - ee * magic * magic;
  327. let sqrtmagic = Math.sqrt(magic);
  328. dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
  329. dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
  330. var mglat = lat + dlat;
  331. var mglng = lng + dlng;
  332. return [mglng, mglat];
  333. },
  334. toBack() {
  335. uni.navigateTo({
  336. url: '/pages/navigation/index'
  337. })
  338. },
  339. getaddress() {
  340. console.log('dizhi+++++++++++');
  341. let obj = this;
  342. uni.getLocation({
  343. type: 'wgs84',
  344. success: res => {
  345. let wz = obj.wgs84Togcj02(res.longitude, res.latitude);
  346. obj.setLat(wz[1]);
  347. obj.setLon(wz[0]);
  348. console.log(wz, '经纬度');
  349. },
  350. fail: err => {
  351. console.log(err, '经纬度');
  352. openMap().then(e => {
  353. this.getaddress();
  354. });
  355. }
  356. });
  357. },
  358. goDetails(e) {
  359. uni.navigateTo({
  360. url: '/pages/index/messageInfo?id=' + this.article[e].id
  361. });
  362. },
  363. nav(url) {
  364. console.log(url, '123456');
  365. uni.navigateTo({
  366. url,
  367. fail() {
  368. uni.switchTab({
  369. url
  370. });
  371. }
  372. });
  373. },
  374. //轮播图切换修改背景色
  375. swiperChange(e) {
  376. const index = e.detail.current;
  377. this.swiperCurrent = index;
  378. this.titleNViewBackground = this.carouselList[index].background;
  379. },
  380. // 點擊搜索框
  381. clickSearch() {
  382. uni.navigateTo({
  383. url: '/pages/product/search'
  384. });
  385. },
  386. navTo(item) {
  387. uni.navigateTo({
  388. url: '/pages/hall/halllist?id=' + item.id + '&name=' + item.name + '&peoplename=' + item
  389. .nickname
  390. });
  391. },
  392. //详情页
  393. navToDetailPage(item) {
  394. let id = item.id;
  395. uni.navigateTo({
  396. url: '/pages/product/product?id=' + id
  397. });
  398. }
  399. }
  400. };
  401. </script>
  402. <style lang="scss">
  403. page,
  404. .center {
  405. min-height: 100%;
  406. height: auto;
  407. background: #ffffff;
  408. }
  409. .body-title {
  410. height: 80rpx;
  411. text-align: center;
  412. font-size: 35rpx;
  413. position: relative;
  414. .header {
  415. position: absolute;
  416. left: 0;
  417. top: 0;
  418. width: 100%;
  419. font-size: 36rpx;
  420. font-family: PingFang SC;
  421. font-weight: bold;
  422. color: #fffeff;
  423. height: 80rpx;
  424. font-size: 36rpx;
  425. font-weight: 700;
  426. z-index: 9;
  427. display: flex;
  428. justify-content: center;
  429. align-items: center;
  430. }
  431. .goback-box {
  432. position: absolute;
  433. left: 18rpx;
  434. top: 0;
  435. height: 80rpx;
  436. display: flex;
  437. align-items: center;
  438. }
  439. .goback {
  440. z-index: 100;
  441. width: 34rpx;
  442. height: 34rpx;
  443. }
  444. }
  445. .vheigh {
  446. height: var(--status-bar-height);
  447. background-color: $base-color;
  448. }
  449. .top {
  450. position: relative;
  451. width: 100%;
  452. height: 360rpx;
  453. .top-bg {
  454. position: absolute;
  455. top: 0;
  456. left: 0;
  457. right: 0;
  458. width: 100%;
  459. height: 100%;
  460. }
  461. .top-main {
  462. position: relative;
  463. z-index: 2;
  464. padding: 30rpx;
  465. .search-box {
  466. justify-content: center;
  467. width: 698rpx;
  468. height: 60rpx;
  469. background: rgba(255, 240, 245, 0.4);
  470. // box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
  471. border-radius: 30rpx;
  472. background-color: #EEEEEE;
  473. .search {
  474. width: 34rpx;
  475. height: 34rpx;
  476. }
  477. .search-font {
  478. margin-left: 14rpx;
  479. font-size: 28rpx;
  480. font-family: PingFang SC;
  481. font-weight: 500;
  482. color: #CBCBCB;
  483. }
  484. }
  485. }
  486. }
  487. .carousel {
  488. width: 700rpx;
  489. height: 276rpx;
  490. /* #ifndef APP-PLUS */
  491. margin: -230rpx auto 0;
  492. // margin: -160rpx auto 0;
  493. /* #endif */
  494. /* #ifdef APP-PLUS */
  495. margin: -100rpx auto 0;
  496. /* #endif */
  497. border-radius: 40rpx;
  498. image {
  499. border-radius: 40rpx;
  500. width: 700rpx;
  501. height: 276rpx;
  502. }
  503. }
  504. .ic-text {
  505. margin: 0 60rpx 0 40rpx;
  506. .ic-tubiao {
  507. width: 27rpx;
  508. height: 27rpx;
  509. margin-top: 16rpx;
  510. margin-right: 10rpx;
  511. }
  512. .ic-wen {
  513. width: 121rpx;
  514. height: 20rpx;
  515. font-size: 21rpx;
  516. color: #333333;
  517. margin-top: 5rpx;
  518. }
  519. }
  520. .zhishi {
  521. .zhishi-item {
  522. margin: 40rpx 38rpx auto ;
  523. .zhishi-ic {
  524. width: 90rpx;
  525. height: 90rpx;
  526. }
  527. .zhishi-te {
  528. font-size: 24rpx;
  529. color: #666666;
  530. }
  531. }
  532. }
  533. .tongz {
  534. width: 690rpx;
  535. height: 70rpx;
  536. margin: 32rpx auto 0;
  537. padding: 18rpx 30rpx 18rpx 24rpx;
  538. align-items: center;
  539. position: relative;
  540. .tongz-bg {
  541. position: absolute;
  542. top: 0;
  543. right: 0;
  544. left: 0;
  545. width: 690rpx;
  546. height: 70rpx;
  547. image {
  548. width: 100%;
  549. height: 100%;
  550. }
  551. }
  552. .tongz-left {
  553. width: 640rpx;
  554. .image-left {
  555. width: 28rpx;
  556. height: 28rpx;
  557. }
  558. .tongz-font {
  559. margin-left: 22rpx;
  560. font-size: 28rpx;
  561. font-family: Source Han Sans CN;
  562. font-weight: 400;
  563. color: #0f253a;
  564. }
  565. }
  566. .tongz-right {
  567. position: relative;
  568. z-index: 11;
  569. width: 12rpx;
  570. height: 26rpx;
  571. image {
  572. width: 100%;
  573. height: 100%;
  574. }
  575. }
  576. }
  577. .navbar {
  578. justify-content: flex-start;
  579. flex-wrap: wrap;
  580. .navbar-item {
  581. margin-top: 42rpx;
  582. width: 25%;
  583. display: flex;
  584. flex-direction: column;
  585. align-items: center;
  586. .nitem-image {
  587. width: 90rpx;
  588. height: 90rpx;
  589. }
  590. .nitem-font {
  591. margin-top: 10rpx;
  592. font-size: 24rpx;
  593. font-family: PingFang SC;
  594. font-weight: 500;
  595. color: #0c1732;
  596. }
  597. }
  598. }
  599. .shingle {
  600. width: 750rpx;
  601. background: #f8f8f8;
  602. border-radius: 10rpx;
  603. margin: 60rpx auto 0rpx;
  604. padding: 44rpx 50rpx 40rpx;
  605. .shingle-top {
  606. padding-left: 2rpx;
  607. .shingle-title {
  608. font-size: 36rpx;
  609. font-family: PingFang SC;
  610. font-weight: bold;
  611. color: #dc262b;
  612. }
  613. .shingle-btn {
  614. width: 250rpx;
  615. height: 50rpx;
  616. border: 2rpx solid #dc262b;
  617. border-radius: 10rpx;
  618. padding: 0 16rpx;
  619. text-align: left;
  620. font-size: 24rpx;
  621. font-family: PingFang SC;
  622. font-weight: 500;
  623. color: #dc262b;
  624. line-height: 50rpx;
  625. text {
  626. display: inline-block;
  627. padding-left: 6rpx;
  628. }
  629. }
  630. }
  631. .shingle-main {
  632. margin: 20rpx auto;
  633. width: 650rpx;
  634. height: 206rpx;
  635. position: relative;
  636. .shingle-bg {
  637. position: absolute;
  638. top: 0;
  639. left: 0;
  640. right: 0;
  641. width: 650rpx;
  642. height: 206rpx;
  643. image {
  644. width: 650rpx;
  645. height: 206rpx;
  646. }
  647. }
  648. .shinglem-title {
  649. position: relative;
  650. z-index: 2;
  651. justify-content: center;
  652. height: 70rpx;
  653. .tbg {
  654. height: 70rpx;
  655. width: 40rpx;
  656. }
  657. .shinglemt-center {
  658. display: flex;
  659. align-items: center;
  660. background: rgba(220, 38, 43, 0.66);
  661. }
  662. .address {
  663. width: 28rpx;
  664. height: 30rpx;
  665. }
  666. .shingle-font {
  667. font-size: 36rpx;
  668. font-family: PingFang SC;
  669. font-weight: bold;
  670. color: #ffffff;
  671. line-height: 70rpx;
  672. margin-left: 14rpx;
  673. }
  674. }
  675. .shingle-mmain {
  676. position: relative;
  677. z-index: 2;
  678. margin-top: 30rpx;
  679. .smmain-item {
  680. width: 33%;
  681. display: flex;
  682. flex-direction: column;
  683. align-items: center;
  684. .smitem-top {
  685. text-align: center;
  686. width: 90%;
  687. font-size: 30rpx;
  688. font-family: PingFang SC;
  689. font-weight: bold;
  690. color: #ffffff;
  691. }
  692. .smitem-bottom {
  693. margin-top: 10rpx;
  694. font-size: 30rpx;
  695. font-family: PingFang SC;
  696. font-weight: bold;
  697. color: #ffffff;
  698. }
  699. .people {
  700. justify-content: center;
  701. .peopleitem {
  702. width: 24rpx;
  703. height: 34rpx;
  704. image {
  705. width: 100%;
  706. height: 100%;
  707. }
  708. }
  709. }
  710. }
  711. .shu {
  712. width: 2rpx;
  713. height: 70rpx;
  714. background: #ffffff;
  715. }
  716. }
  717. .right-bottom {
  718. position: absolute;
  719. z-index: 2;
  720. right: 0;
  721. bottom: 0;
  722. width: 94rpx;
  723. height: 92rpx;
  724. }
  725. }
  726. }
  727. .shop {
  728. background: #ffffff;
  729. padding: 32rpx 30rpx 20rpx;
  730. .shop-title {
  731. display: flex;
  732. align-items: center;
  733. .shop-title-icon {
  734. width: 36rpx;
  735. height: 36rpx;
  736. }
  737. .shop-title-font {
  738. margin-left: 20rpx;
  739. font-size: 34rpx;
  740. color: #303133;
  741. font-weight: bold;
  742. }
  743. }
  744. .shop-main {
  745. margin: 20rpx auto 0;
  746. border-radius: 40rpx;
  747. width: 100%;
  748. height: 286rpx;
  749. image {
  750. width: 100%;
  751. height: 100%;
  752. }
  753. }
  754. }
  755. .seckill-title {
  756. padding: 32rpx 30rpx 0;
  757. }
  758. .seckill-left {
  759. justify-content: flex-start;
  760. .seckill-inco {
  761. width: 36rpx;
  762. height: 36rpx;
  763. flex-shrink: 0;
  764. }
  765. .seckill-font {
  766. margin-left: 8rpx;
  767. font-size: 40rpx;
  768. font-family: PingFang SC;
  769. font-weight: bold;
  770. color: #333333;
  771. }
  772. .djs {
  773. margin-left: 12rpx;
  774. font-size: 20rpx;
  775. font-family: PingFang SC;
  776. font-weight: bold;
  777. color: #dc262b;
  778. }
  779. }
  780. .seckill-right {
  781. display: flex;
  782. justify-content: flex-start;
  783. align-items: center;
  784. .seckill-rfont {
  785. font-size: 24rpx;
  786. font-family: PingFang SC;
  787. font-weight: 500;
  788. color: #999999;
  789. margin-right: 8rpx;
  790. }
  791. .seckill-back {
  792. width: 10rpx;
  793. height: 20rpx;
  794. }
  795. }
  796. .product {
  797. background: #f0f0f0;
  798. }
  799. .priduct-main {
  800. margin-top: 38rpx;
  801. width: 100%;
  802. display: flex;
  803. flex-wrap: wrap;
  804. padding: 0 32rpx;
  805. .priduct-item {
  806. width: 48%;
  807. background-color: #ffffff;
  808. border-radius: 12rpx;
  809. margin-bottom: 24rpx;
  810. &:nth-child(2n + 1) {
  811. margin-right: 24rpx;
  812. }
  813. .priduct-main-image {
  814. width: 100%;
  815. height: 330rpx;
  816. // background: red;
  817. border-radius: 3px;
  818. overflow: hidden;
  819. image {
  820. width: 100%;
  821. height: 100%;
  822. opacity: 1;
  823. border-radius: 12rpx 12rpx 0 0;
  824. }
  825. }
  826. .priduct-main-name {
  827. font-size: $font-base;
  828. color: $font-color-dark;
  829. font-weight: bold;
  830. line-height: 80rpx;
  831. }
  832. .priduct-main-price {
  833. display: flex;
  834. justify-content: space-between;
  835. padding: 0 16rpx 12rpx;
  836. .price {
  837. font-size: 36rpx;
  838. font-weight: bold;
  839. color: #fd3b39;
  840. }
  841. .cart-icon {
  842. image {
  843. width: 44rpx;
  844. height: 44rpx;
  845. }
  846. }
  847. }
  848. }
  849. }
  850. </style>