index.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. <template>
  2. <view>
  3. <view class="top_head pr" :style="'background-color: '+bgcolor+';'">
  4. <!-- #ifndef MP-WEIXIN -->
  5. <view class="state_top"></view>
  6. <!-- #endif -->
  7. <view class="head_top" :style="'height:'+topBarTop()+'px;'"></view>
  8. <view class="d-b-c" :style="topBarHeight() == 0 ? '': 'height:'+topBarHeight()+'px;'">
  9. <view class="index_log">
  10. <text :style="'color:'+titleTextColor+';'" v-if="title_type=='text'">{{title_name}}</text>
  11. <image v-else :src="toplogo || '/static/logo.png'" mode="heightFix"></image>
  12. </view>
  13. <view class="d-s-c flex-1">
  14. <view class="top_search special" :style="'height:'+topBarHeight()+' px;'"
  15. @click="showSearch=true"><text
  16. class="icon iconfont icon-sousuo"></text>搜索商品</view>
  17. <view class="top_search_right d-c-c" @click="scanQrcode"><text
  18. class="icon iconfont icon-saoyisao1"></text></view>
  19. </view>
  20. <!-- #ifndef MP-WEIXIN -->
  21. <view class="d-e-c p-0-20"></view>
  22. <!-- #endif -->
  23. <!-- #ifdef MP-WEIXIN -->
  24. <view class="wx-top-right"></view>
  25. <!-- #endif -->
  26. </view>
  27. <view class="nuter">
  28. <navBar style="width: 100%;" @currentIndex="setIndex" :currentI="thisindex" :navList="category_list">
  29. </navBar>
  30. </view>
  31. </view>
  32. <view class="top_bg" :style="'background-color: '+bgcolor+';'"></view>
  33. <view>
  34. <view v-if='thisindex==0'>
  35. <diy style="position: relative;" :diyItems="items"></diy>
  36. </view>
  37. <view v-if='thisindex!=0'>
  38. <view class="product-list">
  39. <view v-for="(pitem,pindex) in product_list" :key='pindex' class="product_item o-h"
  40. :class="pindex%2==1?'product_item_right':''"
  41. @click="gotoPage('/pages/product/detail/detail?product_id='+pitem.product_id)">
  42. <view>
  43. <image :src="pitem.product_image" mode="" style="width: 345rpx;height: 345rpx;"></image>
  44. </view>
  45. <view class="text-ellipsis-2 f26 pro_name p-0-20 mt20">{{pitem.product_name}}</view>
  46. <view class="mt36 mb20 p-0-20">
  47. <text class="f20 fb redF6">¥</text>
  48. <text class="f32 fb redF6">{{pitem.product_sku.product_price}}</text>
  49. <text class="text-d-line f20 gray9 ml10">¥</text>
  50. <text class="text-d-line f24 gray9">{{pitem.product_sku.line_price}}</text>
  51. </view>
  52. </view>
  53. </view>
  54. <!-- 没有记录 -->
  55. <view class="d-c-c p30 ww100" v-if="product_list.length == 0 && !loading">
  56. <text class="iconfont icon-wushuju"></text>
  57. <text class="cont">亲,暂无相关记录哦</text>
  58. </view>
  59. <uni-load-more v-else :loadingType="loadingType"></uni-load-more>
  60. </view>
  61. </view>
  62. <!--点击收藏-->
  63. <view class="collection-box" v-if="is_collection" :style="'top:'+(topBarTop() + topBarHeight() + 10)+'px;'">
  64. <view class="inner">
  65. <text>
  66. 点击“</text>
  67. <text class="point">.</text>
  68. <text class="point point-big">.</text>
  69. <text class="point">.</text>
  70. <text>”添加到我的小程序,\n微信首页下拉即可快速访问店铺
  71. </text>
  72. </view>
  73. <button type="primary" class="close-btn" @click="is_collection=false">x</button>
  74. </view>
  75. <!--关注公众号-->
  76. <!-- #ifdef MP-WEIXIN -->
  77. <view class="follow-gzh" v-if="is_follow=='1'">
  78. <text class="icon iconfont icon-guanbi" @click="is_follow=0"></text>
  79. <official-account></official-account>
  80. </view>
  81. <!-- #endif -->
  82. <!--首页推送-->
  83. <Homepush v-if="is_homepush" :homepush_data="homepush_data"></Homepush>
  84. <searchProduct :isShow='showSearch' @close="closeSearch"></searchProduct>
  85. </view>
  86. </template>
  87. <script>
  88. import diy from '@/components/diy/diy.vue';
  89. import Homepush from './home-push/home-push.vue';
  90. import navBar from '@/components/navBar/navBar.vue';
  91. import uniLoadMore from '@/components/uni-load-more.vue';
  92. import searchProduct from '@/components/searchProduct.vue';
  93. export default {
  94. components: {
  95. diy,
  96. Homepush,
  97. navBar,
  98. uniLoadMore,
  99. searchProduct
  100. },
  101. data() {
  102. return {
  103. loading: true,
  104. /*是否正在加载*/
  105. loadding: true,
  106. /*手机高度*/
  107. phoneHeight: 0,
  108. /*可滚动视图区域高度*/
  109. scrollviewHigh: 0,
  110. background: '',
  111. listData: [],
  112. indicatorDots: true,
  113. autoplay: true,
  114. interval: 2000,
  115. duration: 500,
  116. items: [],
  117. /*收藏引导*/
  118. is_collection: false,
  119. /*关注*/
  120. is_follow: '0',
  121. /*是否首页推送*/
  122. is_homepush: false,
  123. /*首页推送数据*/
  124. homepush_data: {},
  125. target: 0,
  126. thisindex: 0,
  127. category_list: [],
  128. product_list: [],
  129. page: 1,
  130. last_page: 0,
  131. no_more: false,
  132. title_name: '',
  133. title_type: 'text',
  134. bgcolor: '',
  135. url: '',
  136. jweixin: null,
  137. toplogo: '',
  138. titleTextColor: '',
  139. diytop: 0,
  140. showSearch: false
  141. };
  142. },
  143. watch: {
  144. 'thisindex': function(n, o) {
  145. if (n != o) {
  146. console.log(n)
  147. this.category_id = this.category_list[n].category_id;
  148. this.toggleInit();
  149. if (n != 0) {
  150. this.getProduct()
  151. }
  152. }
  153. }
  154. },
  155. computed: {
  156. /*加载中状态*/
  157. loadingType() {
  158. if (this.loading) {
  159. return 1;
  160. } else {
  161. if (this.product_list.length != 0 && this.no_more) {
  162. return 2;
  163. } else {
  164. return 0;
  165. }
  166. }
  167. },
  168. scrolltop() {
  169. let height = 80 - (this.diytop * 2)
  170. if (height <= 0) {
  171. return 0
  172. } else {
  173. return height
  174. }
  175. }
  176. },
  177. onTabItemTap() {
  178. //#ifdef H5
  179. if (process.env.NODE_ENV === 'production') {
  180. window.location.href = config.app_url + config.h5_addr + '/pages/index/index';
  181. }
  182. //#endif
  183. },
  184. onLoad() {
  185. //#ifdef H5
  186. if (this.isWeixin()) {
  187. this.url = window.location.href;
  188. }
  189. //#endif
  190. this.getData();
  191. this.getList();
  192. },
  193. onPullDownRefresh() {
  194. if (this.thisindex == 0) {
  195. this.getData();
  196. } else {
  197. this.toggleInit();
  198. this.getProduct();
  199. }
  200. },
  201. onReachBottom() {
  202. this.scrolltolowerFunc();
  203. console.log('到底了')
  204. },
  205. mounted() {
  206. this.init();
  207. },
  208. methods: {
  209. /*初始化*/
  210. init() {
  211. let _this = this;
  212. uni.getSystemInfo({
  213. success(res) {
  214. _this.phoneHeight = res.windowHeight;
  215. let view = uni.createSelectorQuery().select('.top_head');
  216. view.boundingClientRect(data => {
  217. let h = _this.phoneHeight - data.height;
  218. _this.scrollviewHigh = h;
  219. }).exec();
  220. }
  221. });
  222. },
  223. onRefresh() {
  224. },
  225. /*获取首页分类*/
  226. getData() {
  227. let self = this;
  228. uni.showLoading({
  229. title: '加载中'
  230. });
  231. self._get('index/index', {
  232. url: self.url
  233. }, function(res) {
  234. self.listData = res.data.list;
  235. self.background = res.data.background;
  236. self.items = res.data.items;
  237. self.title_name = res.data.page.params.title;
  238. self.bgcolor = res.data.page.style.titleBackgroundColor;
  239. self.setPage(res.data.page);
  240. self.toplogo = res.data.page.params.toplogo;
  241. self.title_type = res.data.page.params.title_type;
  242. self.titleTextColor = res.data.page.style.titleTextColor;
  243. //弹出收藏
  244. // #ifdef MP-WEIXIN
  245. let isFirst = uni.getStorageSync('isFirst');
  246. if (isFirst == '' && res.data.setting.collection.status == '1') {
  247. self.is_collection = true;
  248. uni.setStorageSync('isFirst', 1);
  249. }
  250. self.is_follow = res.data.setting.officia.status;
  251. // #endif
  252. // 首页推送
  253. let homepush_name = uni.getStorageSync('homepush_name');
  254. if (res.data.setting.homepush.is_open && homepush_name != res.data.setting.homepush.name) {
  255. self.homepush_data = res.data.setting.homepush;
  256. self.is_homepush = true;
  257. self.is_homepush = true;
  258. }
  259. // 配置微信扫一扫参数
  260. //#ifdef H5
  261. if (self.url != '') {
  262. self.jweixin = self.configWxScan(res.data.signPackage);
  263. let params = {};
  264. self.configWx(res.data.share.signPackage, res.data.share.shareParams, params);
  265. }
  266. //#endif
  267. uni.hideLoading();
  268. self.loadding = false;
  269. uni.stopPullDownRefresh();
  270. });
  271. },
  272. /*获取数据*/
  273. getList() {
  274. let self = this;
  275. self._get('product.category/index', {}, function(res) {
  276. self.category_list = res.data.list;
  277. let fistIndex = {
  278. name: '推荐',
  279. category_id: '0'
  280. }
  281. self.category_list.unshift(fistIndex)
  282. });
  283. },
  284. /*获取数据*/
  285. getProduct() {
  286. let self = this;
  287. let page = self.page;
  288. self.loading = true;
  289. self._get('product.product/lists', {
  290. page: page || 1,
  291. category_id: self.category_id,
  292. search: '',
  293. sortType: 'all',
  294. sortPrice: 0,
  295. list_rows: 20,
  296. }, function(res) {
  297. self.loading = false;
  298. uni.stopPullDownRefresh();
  299. self.product_list = self.product_list.concat(res.data.list.data);
  300. self.last_page = res.data.list.last_page;
  301. if (res.data.list.last_page <= 1) {
  302. self.no_more = true;
  303. }
  304. });
  305. },
  306. /*可滚动视图区域到底触发*/
  307. scrolltolowerFunc() {
  308. let self = this;
  309. if (self.page < self.last_page) {
  310. self.page++;
  311. self.getProduct();
  312. }
  313. self.no_more = true;
  314. },
  315. /*设置页面*/
  316. setPage(page) {
  317. uni.setNavigationBarTitle({
  318. title: page.params.name
  319. });
  320. let colors = '#000000';
  321. if (page.style.titleTextColor == 'white') {
  322. //字母要小写
  323. colors = '#ffffff'
  324. }
  325. uni.setNavigationBarColor({
  326. frontColor: colors,
  327. backgroundColor: page.style.titleBackgroundColor
  328. })
  329. },
  330. // 滑動切换触发的事件
  331. toggle(e) {
  332. let index = e.detail.current
  333. this.target = index;
  334. this.category_id = this.category_list[index].category_id;
  335. this.toggleInit();
  336. if (index != 0) {
  337. this.getProduct()
  338. }
  339. },
  340. toggleInit() {
  341. this.page = 1;
  342. this.last_page = 0;
  343. this.no_more = false;
  344. this.product_list = [];
  345. },
  346. scroll(e) {
  347. this.diytop = e.detail.scrollTop;
  348. },
  349. //点击nav控制下面的展示
  350. setIndex(e) {
  351. this.thisindex = e;
  352. },
  353. /*分享当前页面*/
  354. onShareAppMessage() {
  355. let self = this;
  356. return {
  357. title: self.title_name,
  358. path: '/pages/index/index?' + self.getShareUrlParams()
  359. };
  360. },
  361. /* 禁止手动滑动 */
  362. stopTouchMove() {
  363. return true
  364. },
  365. /*扫一扫核销*/
  366. scanQrcode: function() {
  367. let self = this;
  368. //#ifdef H5
  369. // 只允许通过相机扫码
  370. self.jweixin.scanQRCode({
  371. needResult: 1,
  372. scanType: ["qrCode", "barCode"],
  373. success: function(res) {
  374. self.gotoPage('/pages/store/clerkorder?order_no=' + res.resultStr);
  375. },
  376. error: function(res) {
  377. uni.showToast({
  378. title: '扫码失败,请重试'
  379. })
  380. }
  381. });
  382. //#endif
  383. //#ifndef H5
  384. // 只允许通过相机扫码
  385. uni.scanCode({
  386. onlyFromCamera: true,
  387. success: function(res) {
  388. if (res.errMsg == 'scanCode:ok') {
  389. self.gotoPage('/pages/store/clerkorder?order_no=' + res.result);
  390. } else {
  391. uni.showToast({
  392. title: '扫码失败,请重试'
  393. })
  394. }
  395. }
  396. });
  397. //#endif
  398. },
  399. /* 关闭搜索 */
  400. closeSearch() {
  401. this.showSearch = false;
  402. }
  403. }
  404. };
  405. </script>
  406. <style lang="scss">
  407. page{
  408. overflow-x:hidden !important;
  409. }
  410. .bg-f2 {
  411. background-color: #F2F2F2;
  412. }
  413. .top_head {
  414. line-height: 30px;
  415. z-index: 1;
  416. padding-left: 26rpx;
  417. position: sticky;
  418. top: 0;
  419. left: 0;
  420. z-index: 100;
  421. }
  422. .head_top {
  423. width: 100%;
  424. height: var(--status-bar-height);
  425. }
  426. .index_log {
  427. /* width: 154rpx; */
  428. min-height: 46rpx;
  429. line-height: 46rpx;
  430. font-size: 26rpx;
  431. font-weight: 800;
  432. color: #FFFFFF;
  433. }
  434. .index_log image {
  435. width: 60rpx;
  436. height: 60rpx;
  437. }
  438. .top_search {
  439. /* width: 380rpx; */
  440. height: 60rpx;
  441. line-height: 60rpx;
  442. background: #FFFFFF;
  443. border-radius: 30rpx 0 0 30rpx;
  444. font-size: 30rpx;
  445. margin-left: 10rpx;
  446. color: #EE1413;
  447. font-weight: 800;
  448. flex: 1;
  449. }
  450. .top_search.special {
  451. width: 100%;
  452. }
  453. .top_search_right {
  454. background: #FFFFFF;
  455. border-radius: 0 30rpx 30rpx 0;
  456. height: 60rpx;
  457. position: relative;
  458. }
  459. .top_search_right::before {
  460. content: ' ';
  461. width: 1rpx;
  462. height: 20rpx;
  463. background-color: #D9D9D9;
  464. left: 0;
  465. top: 0;
  466. bottom: 0;
  467. margin: auto;
  468. position: absolute;
  469. }
  470. .top_search_right .icon-saoyisao1 {
  471. padding: 0 20rpx;
  472. /* border-left: 1rpx solid #D9D9D9; */
  473. }
  474. .top_search .icon-sousuo {
  475. font-size: 30rpx;
  476. color: #EE1413;
  477. margin-left: 20rpx;
  478. margin-right: 10rpx;
  479. }
  480. .top_bg {
  481. position: absolute;
  482. top: 0;
  483. z-index: 0;
  484. width: 750rpx;
  485. height: 350rpx;
  486. }
  487. .top_bg image {
  488. width: 750rpx;
  489. height: 350rpx;
  490. }
  491. .nuter {
  492. width: 100%;
  493. height: 80rpx;
  494. line-height: 80rpx;
  495. display: flex;
  496. justify-content: space-around;
  497. font-size: 35rpx;
  498. padding-bottom: 10rpx;
  499. overflow: hidden;
  500. transition: all 0.3s ease;
  501. }
  502. .nuter view {
  503. flex: 1;
  504. font-size: 30rpx;
  505. text-align: center;
  506. transition: all 0.5s ease .1s;
  507. }
  508. swiper {
  509. height: 80vh;
  510. width: 100%;
  511. overflow: hidden;
  512. }
  513. .swiper-item {
  514. overflow-y: scroll;
  515. width: 100%;
  516. height: 99%;
  517. box-sizing: border-box;
  518. }
  519. .foot_ {
  520. height: 98rpx;
  521. width: 100%;
  522. }
  523. .banner {
  524. height: 240upx;
  525. width: 710upx;
  526. }
  527. .banner image {
  528. width: 710rpx;
  529. height: 240rpx;
  530. }
  531. .new-people .group-bd {
  532. display: flex;
  533. justify-content: space-between;
  534. }
  535. .new-people .list {
  536. padding-right: 30rpx;
  537. }
  538. .new-people .list .item {
  539. width: 180rpx;
  540. text-align: center;
  541. }
  542. .new-people .list .price {
  543. font-size: 24rpx;
  544. }
  545. .new-people .list .price .num {
  546. font-size: 34rpx;
  547. font-weight: bold;
  548. }
  549. .new-people .list button {
  550. font-size: 24rpx;
  551. background: #6170ff;
  552. }
  553. .new-people .list image {
  554. width: 180rpx;
  555. height: 180rpx;
  556. border: 1px dashed #cccccc;
  557. }
  558. .new-people .other {
  559. width: 230rpx;
  560. }
  561. .new-people .other image {
  562. width: 100%;
  563. }
  564. .group-seckill .left .iconfont {
  565. margin-right: 8rpx;
  566. color: $dominant-color;
  567. font-size: 40rpx;
  568. }
  569. .group-seckill .list .item {
  570. display: flex;
  571. flex-direction: column;
  572. justify-content: flex-start;
  573. align-items: center;
  574. width: 150rpx;
  575. height: 230rpx;
  576. border: 1px dashed #cccccc;
  577. }
  578. .group-seckill .list text {
  579. line-height: 60rpx;
  580. color: $dominant-color;
  581. }
  582. .group-seckill .list image {
  583. width: 150rpx;
  584. height: 150rpx;
  585. }
  586. .group-hd .datetime .time {
  587. padding: 4rpx;
  588. background: $dominant-color;
  589. color: #ffffff;
  590. border-radius: 4rpx;
  591. }
  592. .group-hd .datetime .point {
  593. padding: 0 10rpx;
  594. color: $dominant-color;
  595. }
  596. .every-day-hard .list .item {
  597. width: 200rpx;
  598. }
  599. .every-day-hard .list image {
  600. width: 200rpx;
  601. height: 200rpx;
  602. }
  603. .every-day-hard .list .pic {
  604. position: relative;
  605. width: 200rpx;
  606. height: 200rpx;
  607. border: 1px dashed #cccccc;
  608. }
  609. .every-day-hard .list .tips {
  610. position: absolute;
  611. left: -1px;
  612. bottom: -1px;
  613. padding: 0 10rpx;
  614. display: flex;
  615. justify-content: flex-start;
  616. align-items: center;
  617. border-radius: 0 4rpx 0 0;
  618. color: #ffffff;
  619. background: #ff8a00;
  620. font-size: 22rpx;
  621. }
  622. .every-day-hard .list .tips .iconfont {
  623. margin-right: 6rpx;
  624. font-size: 24rpx;
  625. color: #ffffff;
  626. }
  627. .every-day-hard .list .tips .svg-icon {
  628. width: 20rpx;
  629. height: 20rpx;
  630. margin-right: 6rpx;
  631. color: #ffffff;
  632. }
  633. .every-day-hard .list .bottom-box {
  634. display: flex;
  635. height: 80rpx;
  636. justify-content: space-between;
  637. align-items: center;
  638. }
  639. .every-day-hard .list .bottom-box .people {
  640. font-size: 24rpx;
  641. color: #fb8138;
  642. }
  643. .every-day-hard .list .bottom-box .unit {
  644. font-size: 22rpx;
  645. color: $dominant-color;
  646. }
  647. .every-day-hard .list .bottom-box .price {
  648. font-size: 30rpx;
  649. color: $dominant-color;
  650. }
  651. .collection-box {
  652. position: fixed;
  653. width: 380rpx;
  654. padding: 20rpx;
  655. top: 20rpx;
  656. right: 20rpx;
  657. line-height: 40rpx;
  658. font-size: 24rpx;
  659. border-radius: 16rpx;
  660. background: #ffffff;
  661. border: 1px solid #eeeeee;
  662. box-shadow: 0 0 6rpx 0 rgba(0, 0, 0, .08);
  663. z-index: 100;
  664. }
  665. .collection-box::after {
  666. position: absolute;
  667. content: '';
  668. display: block;
  669. right: 140rpx;
  670. top: -15rpx;
  671. transform: rotate(45deg);
  672. width: 30rpx;
  673. height: 30rpx;
  674. transform: rotate;
  675. background: #FFFFFF;
  676. border-left: 1px solid #eeeeee;
  677. border-top: 1px solid #eeeeee;
  678. }
  679. .collection-box .point {
  680. width: 20rpx;
  681. height: 20rpx;
  682. font-size: 60rpx;
  683. line-height: 0;
  684. color: #666666;
  685. }
  686. .collection-box .point-big {
  687. font-size: 80rpx;
  688. }
  689. .collection-box .close-btn {
  690. position: absolute;
  691. padding: 0;
  692. right: 10rpx;
  693. top: 10rpx;
  694. width: 40rpx;
  695. height: 40rpx;
  696. line-height: 30rpx;
  697. background: #FFFFFF;
  698. color: #999999;
  699. border-radius: 50%;
  700. }
  701. .follow-gzh {
  702. position: fixed;
  703. left: 0;
  704. right: 0;
  705. bottom: calc(var(--window-bottom));
  706. border-radius: 16rpx;
  707. box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, .1);
  708. background: #FFFFFF;
  709. z-index: 10;
  710. }
  711. .follow-gzh .iconfont {
  712. display: block;
  713. position: absolute;
  714. right: 10rpx;
  715. top: 10rpx;
  716. z-index: 99;
  717. }
  718. .product-list {
  719. display: flex;
  720. justify-content: space-between;
  721. flex-wrap: wrap;
  722. align-items: center;
  723. position: relative;
  724. z-index: 1;
  725. }
  726. .product_item {
  727. width: 345rpx;
  728. margin: 20rpx;
  729. border-radius: 12rpx;
  730. background-color: #ffffff;
  731. }
  732. .product_item.product_item_right {
  733. margin-left: 0;
  734. }
  735. .product_item .pro_name {
  736. height: 68rpx;
  737. line-height: 34rpx;
  738. }
  739. .diy-seckillProduct .sharpproduct-head .datetime::v-deep .box {
  740. padding: 4rpx 10rpx;
  741. font-size: 22rpx;
  742. background: #FFEBEB;
  743. color: #F6220C;
  744. }
  745. .bargainProduct-head .datetime::v-deep .box {
  746. padding: 4rpx 10rpx;
  747. font-size: 22rpx;
  748. background: #FFFFFF;
  749. color: #4B30FF;
  750. }
  751. .chat {
  752. width: 40rpx;
  753. height: 40rpx;
  754. }
  755. .newsnum {
  756. position: absolute;
  757. top: -8rpx;
  758. right: -16rpx;
  759. z-index: 100;
  760. border-radius: 50%;
  761. width: 25rpx;
  762. height: 25rpx;
  763. text-align: center;
  764. line-height: 25rpx;
  765. color: #FFFFFF;
  766. background-color: #ff6633;
  767. padding: 5rpx;
  768. font-size: 20rpx;
  769. }
  770. .wx-top-right {
  771. width: 200rpx;
  772. height: 2rpx;
  773. }
  774. </style>