多租户商城-商户小程序端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

842 lines
23 KiB

2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <div class="hom-pro-list">
  3. <div class="title" v-if="false">
  4. <!-- #ifdef MP-WEIXIN -->
  5. <img class="title-img" src="../../../static/images/product/img-title.png" alt="商品推荐" mode="widthFix" />
  6. <!-- #endif -->
  7. <!-- #ifdef H5 || APP-PLUS -->
  8. <image class="title-img" src="../../../static/images/product/img-title.png" alt="商品推荐" mode="widthFix" />
  9. <!-- #endif -->
  10. </div>
  11. <div v-if="componentContent.arrangeType == '横向滑动' && productData.length > 2" class="product-list">
  12. <scroll-view ref="mySwiper" class="swiper product-list-box" scroll-x="true">
  13. <div class="swiper-wrap">
  14. <div class="product-list-item-warp" v-for="(item,index) in productData" :key="index">
  15. <div class="product-list-item"
  16. v-if="JSON.stringify(item)!=='{}' && componentContent.productStyleValue == '1'"
  17. @click="jumpProductDetail(item)">
  18. <div class="product-list-img">
  19. <img class="img pic-img default-img" :src="item.image"
  20. onerror="this.src='url(http://36.138.125.206:8081/ceres-local-file/image/default.png) no-repeat center';this.οnerrοr=null">
  21. </div>
  22. <div class="product-list-info">
  23. <label class="product-name">{{ item.productName }}</label>
  24. <div class="flex">
  25. <div class="shop-box" v-if="typeId == 1" @click.stop="jumpStore(item)">
  26. <label class="shop-name">{{ item.shopName }}</label>
  27. </div>
  28. <label class="buy-count">已售{{ item.number ? item.number : 0 }}</label>
  29. </div>
  30. <div class="price-warp">
  31. <!-- #ifdef MP-WEIXIN -->
  32. <img class="iconImg" v-if="item.activityType == 1"
  33. src="../../../static/images/groupBuyIcon.png">
  34. <img class="iconImg" v-if="item.activityType == 2"
  35. src="../../../static/images/spikeIcon.png">
  36. <img class="iconImg" v-if="item.activityType == 4"
  37. src="../../../static/images/spikeIcon.png">
  38. <img class="iconImg" v-if="item.activityType == 3"
  39. src="../../../static/images/discountListIcon.png">
  40. <img class="iconImg" v-if="item.activityType == 5"
  41. src="../../../static/images/discountListIcon.png">
  42. <img class="iconImg" v-if="item.activityType == 9"
  43. src="../../../static/images/memberCenterIcon.png">
  44. <img class="iconImg" v-if="item.activityType == 8"
  45. src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
  46. <!-- #endif -->
  47. <!-- #ifdef H5 || APP-PLUS -->
  48. <image class="iconImg" v-if="item.activityType == 1"
  49. src="../../../static/images/groupBuyIcon.png">
  50. <image class="iconImg" v-if="item.activityType == 2"
  51. src="../../../static/images/spikeIcon.png">
  52. <image class="iconImg" v-if="item.activityType == 4"
  53. src="../../../static/images/spikeIcon.png">
  54. <image class="iconImg" v-if="item.activityType == 3"
  55. src="../../../static/images/discountListIcon.png">
  56. <image class="iconImg" v-if="item.activityType == 5"
  57. src="../../../static/images/discountListIcon.png">
  58. <image class="iconImg" v-if="item.activityType == 9"
  59. src="../../../static/images/memberCenterIcon.png">
  60. <image class="iconImg" v-if="item.activityType == 8"
  61. src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
  62. <!-- #endif -->
  63. <div class="price">
  64. ¥ {{ item.price }}
  65. </div>
  66. <div class="original-price">
  67. ¥ {{ item.originalPrice }}
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="product-swiper-item" v-if="componentContent.productStyleValue == '2'">
  73. <div class="product-swiper-img">
  74. <img class="img pic-img default-img" :src="item.image"
  75. onerror="this.src='url(http://36.138.125.206:8081/ceres-local-file/image/default.png) no-repeat center';this.οnerrοr=null">
  76. </div>
  77. <div class="product-swiper-info">
  78. <div class="product-info-content">
  79. <div class="product-name-row">
  80. <label class="product-name">{{ item.productName }}</label>
  81. <img class="product-star" src="../../../static/images/product/icon_star.png">
  82. <label class="product-star-text">{{ item.qaNum || 3.5 }}</label>
  83. </div>
  84. <div class="product-price-row">
  85. <div class="price-warp">
  86. ¥ {{ item.price }}
  87. </div>
  88. <img class="product-add" src="../../../static/images/product/icon_add.png">
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="item3" v-if="componentContent.productStyleValue == '3'" @click="jumpProductDetail(item)">
  94. <!-- <div class="item3_name">{{ item.productName }}</div>-->
  95. <div class="item3_image">
  96. <img :src="item.image" fit="contain"></img>
  97. </div>
  98. <div class="item3_name">{{ item.productName }}</div>
  99. <!-- <div class="item3_btn_row">
  100. </div>-->
  101. </div>
  102. <div class="item4" v-if="componentContent.productStyleValue == '4'">
  103. <div class="item4_content">
  104. <div class="item4_image">
  105. <img :src="item.image" fit="contain"></img>
  106. </div>
  107. <div class="item4_info">
  108. <div class="item4_name">{{ item.productName }}</div>
  109. <div class="item4_price">¥{{ item.price }}</div>
  110. </div>
  111. <div class="item4_arrow">
  112. <img src="http://36.138.125.206:8081/ceres-local-file/image/home_item_forward.png">
  113. </div>
  114. </div>
  115. <div class="item4_index_image" v-if="index < 3">
  116. <img src="../../../static/images/product/icon_index_1.png" v-if="index == 0">
  117. <img src="../../../static/images/product/icon_index_2.png" v-if="index == 1">
  118. <img src="../../../static/images/product/icon_index_3.png" v-if="index == 2">
  119. </div>
  120. </div>
  121. <!-- 自定义骨架屏 -->
  122. <div class="product-list-item ske-loading" v-if="JSON.stringify(item)==='{}'">
  123. <div class="product-list-img child-loading">
  124. </div>
  125. <div class="product-list-info">
  126. <label class="product-name child-loading"></label>
  127. <div class="price-warp child-loading" style="padding: 5px 0">
  128. </div>
  129. <div class="price-warp child-loading" style="padding: 5px 0">
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </scroll-view>
  136. <!-- <view class="swiper-dots" v-if="productData && productData.length > 2" >
  137. <text class="dot" :class="index - swiperCurrent <= 1 && index - swiperCurrent >=0 && 'dot-active'"
  138. v-for="(dot, index) in productData.length" :key="index"></text>
  139. </view> -->
  140. </div>
  141. <div v-else class="product-list">
  142. <ProductSkeleton style="" v-if="isFirst" :loading="loading" :isFirst="isFirst" />
  143. <div class="product-list-box" v-else>
  144. <div class="product-list-item-warp" v-for="(item,index) in productData" :key="index">
  145. <div @click="jumpProductDetail(item)" v-if="componentContent.productStyleValue == '1'"
  146. class="product-list-item">
  147. <div class="product-list-img">
  148. <img class="img pic-img default-img" :src="item.image"
  149. onerror="this.src='url(http://36.138.125.206:8081/ceres-local-file/image/default.png) no-repeat center';this.οnerrοr=null">
  150. </div>
  151. <div class="product-list-info">
  152. <label class="product-name">{{ item.productName }}</label>
  153. <div class="flex">
  154. <div class="shop-box" v-if="typeId == 1" @click.stop="jumpStore(item)">
  155. <label class="shop-name">{{ item.shopName }}</label>
  156. <div class="shop-logo">
  157. <img :src="item.shopLogo">
  158. </div>
  159. </div>
  160. <label class="buy-count">已售{{ item.number ? item.number : 0 }}</label>
  161. </div>
  162. <div class="price-warp">
  163. <!-- #ifdef MP-WEIXIN -->
  164. <img class="iconImg" v-if="item.activityType == 1"
  165. src="../../../static/images/groupBuyIcon.png" />
  166. <img class="iconImg" v-if="item.activityType == 2"
  167. src="../../../static/images/spikeIcon.png" />
  168. <img class="iconImg" v-if="item.activityType == 4"
  169. src="../../../static/images/spikeIcon.png" />
  170. <img class="iconImg" v-if="item.activityType == 3"
  171. src="../../../static/images/discountListIcon.png" />
  172. <img class="iconImg" v-if="item.activityType == 5"
  173. src="../../../static/images/discountListIcon.png" />
  174. <img class="iconImg" v-if="item.activityType == 9"
  175. src="../../../static/images/memberCenterIcon.png" />
  176. <img class="iconImg" v-if="item.activityType == 8"
  177. src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png" />
  178. <!-- #endif -->
  179. <!-- #ifdef H5 || APP-PLUS -->
  180. <image class="iconImg" v-if="item.activityType == 1"
  181. src="../../../static/images/groupBuyIcon.png" />
  182. <image class="iconImg" v-if="item.activityType == 2"
  183. src="../../../static/images/spikeIcon.png" />
  184. <image class="iconImg" v-if="item.activityType == 4"
  185. src="../../../static/images/spikeIcon.png" />
  186. <image class="iconImg" v-if="item.activityType == 3"
  187. src="../../../static/images/discountListIcon.png" />
  188. <image class="iconImg" v-if="item.activityType == 5"
  189. src="../../../static/images/discountListIcon.png" />
  190. <image class="iconImg" v-if="item.activityType == 9"
  191. src="../../../static/images/memberCenterIcon.png" />
  192. <image class="iconImg" v-if="item.activityType == 8"
  193. src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png" />
  194. <!-- #endif -->
  195. <div class="price">
  196. ¥ {{ item.price }}
  197. </div>
  198. <div class="original-price">
  199. ¥ {{ item.originalPrice }}
  200. </div>
  201. </div>
  202. </div>
  203. </div>
  204. <div class="product-swiper-item" @click="jumpProductDetail(item)"
  205. v-if="componentContent.productStyleValue == '2'">
  206. <div class="product-swiper-img">
  207. <img class="img pic-img default-img" :src="item.image"
  208. onerror="this.src='url(http://36.138.125.206:8081/ceres-local-file/image/default.png) no-repeat center';this.οnerrοr=null">
  209. </div>
  210. <div class="product-swiper-info">
  211. <div class="product-info-content">
  212. <div class="product-name-row">
  213. <label class="product-name">{{ item.productName }}</label>
  214. <img class="product-star" src="../../../static/images/product/icon_star.png">
  215. <label class="product-star-text">{{ item.qaNum || 3.5 }}</label>
  216. </div>
  217. <div class="product-price-row">
  218. <div class="price-warp">
  219. ¥ {{ item.price }}
  220. </div>
  221. <img class="product-add" src="../../../static/images/product/icon_add.png">
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. <div class="item3" @click="jumpProductDetail(item)"
  227. v-if="componentContent.productStyleValue == '3'">
  228. <!-- <div class="item3_name">{{ item.productName }}</div>-->
  229. <div class="item3_image">
  230. <img :src="item.image" fit="contain"></img>
  231. </div>
  232. <!-- <div class="item3_btn_row">
  233. <div class="item3_btn">点击</div>
  234. </div>-->
  235. <div class="item3_name">{{ item.productName }}</div>
  236. </div>
  237. <div class="item4" @click="jumpProductDetail(item)"
  238. v-if="componentContent.productStyleValue == '4'">
  239. <div class="item4_content">
  240. <div class="item4_image">
  241. <img :src="item.image" fit="contain"></img>
  242. </div>
  243. <div class="item4_info">
  244. <div class="item4_name">{{ item.productName }}</div>
  245. <!-- <div class="item4_price">¥{{ item.price }}</div>-->
  246. <div class="item4_price">
  247. ¥<span style="margin-left: 5rpx">{{item.price | radixPointBefore}}</span>
  248. <span style="font-size: 20rpx">{{item.price | radixPointAfter}}</span>
  249. </div>
  250. </div>
  251. <div class="item4_arrow">
  252. <img src="http://36.138.125.206:8081/ceres-local-file/image/home_item_forward.png">
  253. </div>
  254. </div>
  255. <div class="item4_index_image" v-if="index < 3">
  256. <img src="../../../static/images/product/icon_index_1.png" v-if="index == 0">
  257. <img src="../../../static/images/product/icon_index_2.png" v-if="index == 1">
  258. <img src="../../../static/images/product/icon_index_3.png" v-if="index == 2">
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. </div>
  264. <button v-show="componentContent.showMore" class="btn-more"
  265. @click="jumpProList(componentContent.productData)">查看全部 <span
  266. class="icon iconfont icon-arrow-right"></span></button>
  267. </div>
  268. </template>
  269. <script>
  270. import {
  271. commonMixin
  272. } from '../mixin'
  273. import ProductSkeleton from "@/components/basics/components/ProductSkeleton";
  274. export default {
  275. mixins: [commonMixin],
  276. components: {
  277. ProductSkeleton
  278. },
  279. data() {
  280. return {
  281. swiperCurrent: 0,
  282. }
  283. },
  284. methods: {
  285. swiperChange(e) {
  286. this.swiperCurrent = e.detail.current;
  287. },
  288. handlePrice(price) {
  289. //分割
  290. let splitPrice = price.splice('.')
  291. //使用
  292. return `${splitPrice[0]}.<span style="font-size:12px;">${splitPrice[1]}</span>`
  293. }
  294. }
  295. }
  296. </script>
  297. <style lang="scss" scoped>
  298. .hom-pro-list {
  299. padding: 20rpx 13rpx;
  300. .title {
  301. text-align: center;
  302. margin-bottom: 20rpx;
  303. .title-img {
  304. width: 211rpx;
  305. }
  306. }
  307. /**多行多列**/
  308. .product-list {
  309. position: relative;
  310. .product-list-box {
  311. display: flex;
  312. flex-wrap: wrap;
  313. flex-direction: row;
  314. &.swiper {
  315. height: 415rpx;
  316. }
  317. }
  318. .swiper-wrap{
  319. display: flex;
  320. flex-wrap: nowrap;
  321. justify-content: space-between;
  322. padding-left: 20upx;
  323. padding-right: 20upx;
  324. }
  325. &.product-swiper .product-list-box {
  326. padding-left: 0;
  327. }
  328. .product-list-item-warp {
  329. margin: 0 0 0upx 0;
  330. .product-list-item {
  331. width: 348rpx;
  332. padding: 0 7rpx;
  333. box-sizing: content-box;
  334. .product-list-img {
  335. width: 348rpx;
  336. height: 348rpx;
  337. background-color: white;
  338. border-radius: 10rpx 10rpx 0 0;
  339. .img {
  340. width: 100%;
  341. height: 100%;
  342. object-fit: contain;
  343. }
  344. }
  345. .product-list-info {
  346. background-color: #FFFFFF;
  347. //box-shadow: 0px 0px 15px 0px rgba(52, 52, 52, 0.15);
  348. border-radius: 0 0 10rpx 10rpx;
  349. padding: 20rpx;
  350. label {
  351. font-weight: normal;
  352. }
  353. .product-name {
  354. font-size: 28rpx;
  355. color: #333;
  356. display: block;
  357. overflow: hidden;
  358. text-overflow: ellipsis;
  359. white-space: nowrap;
  360. margin-bottom: 18rpx;
  361. line-height: 40rpx;
  362. }
  363. .flex {
  364. display: flex;
  365. align-items: center;
  366. }
  367. .shop-box {
  368. background-color: #333333;
  369. border-radius: 0rpx 20rpx 20rpx 0rpx;
  370. line-height: 40rpx;
  371. display: flex;
  372. align-items: center;
  373. height: 40rpx;
  374. margin-right: 10rpx;
  375. .shop-name {
  376. font-size: 20rpx;
  377. color: #FFEBC4;
  378. padding: 0 8rpx 0 12rpx;
  379. }
  380. .shop-logo {
  381. border: 2rpx solid #707070;
  382. border-radius: 50%;
  383. overflow: hidden;
  384. float: right;
  385. img {
  386. width: 34rpx;
  387. height: 34rpx;
  388. display: block;
  389. }
  390. }
  391. }
  392. .buy-count {
  393. color: #C5AA7B;
  394. font-size: 20rpx;
  395. border: 2rpx solid #E4E5E6;
  396. line-height: 40rpx;
  397. padding: 0 5rpx;
  398. }
  399. .price-warp {
  400. display: flex;
  401. align-items: baseline;
  402. line-height: 56rpx;
  403. .iconImg {
  404. width: 58rpx;
  405. height: 36rpx;
  406. margin-right: 10rpx;
  407. }
  408. .price {
  409. color: #C83732;
  410. font-size: 40rpx;
  411. margin-right: 20rpx;
  412. }
  413. .original-price {
  414. font-size: 24rpx;
  415. color: #ccc;
  416. text-decoration: line-through;
  417. }
  418. }
  419. }
  420. }
  421. .product-swiper-item {
  422. height: 320px;
  423. width: 242px !important;
  424. position: relative;
  425. margin-left: 10px;
  426. margin-right: 10px;
  427. .product-swiper-img {
  428. width: 210px;
  429. height: 220px;
  430. margin-left: auto;
  431. margin-right: auto;
  432. background: #F6F6F8;
  433. border: 2px solid #FFFFFF;
  434. border-radius: 16px;
  435. position: relative;
  436. padding: 20px;
  437. z-index: 2;
  438. box-sizing: border-box;
  439. .img {
  440. width: 100%;
  441. height: 100%;
  442. object-fit: contain;
  443. }
  444. }
  445. .product-swiper-info {
  446. width: 242px;
  447. height: 210px;
  448. position: absolute;
  449. top: 110px;
  450. background: #FDFDFD;
  451. box-shadow: 0px 16px 24px 0px #F6F6F6;
  452. border-radius: 16px;
  453. text-align: center;
  454. .product-info-content {
  455. margin-top: 125px;
  456. .product-name-row {
  457. width: 100%;
  458. height: 22px;
  459. line-height: 22px;
  460. display: flex;
  461. flex-direction: row;
  462. flex-wrap: nowrap;
  463. align-content: center;
  464. justify-content: flex-start;
  465. align-items: center;
  466. .product-name {
  467. width: 100%;
  468. height: auto;
  469. font-size: 16px;
  470. font-family: Source Han Sans CN;
  471. font-weight: bold;
  472. color: #252744;
  473. display: block;
  474. overflow: hidden;
  475. text-overflow: ellipsis;
  476. white-space: nowrap;
  477. line-height: 28upx;
  478. margin-left: 24upx;
  479. text-align: left;
  480. }
  481. .product-star {
  482. width: 22px;
  483. height: 22px;
  484. }
  485. .product-star-text {
  486. width: auto;
  487. height: 28upx;
  488. line-height: 28upx;
  489. font-size: 14px;
  490. font-family: Source Han Sans CN;
  491. font-weight: bold;
  492. color: #A5A5AD;
  493. margin-right: 20upx;
  494. margin-left: 5upx;
  495. }
  496. }
  497. .product-sku-row {
  498. width: 100%;
  499. height: 28upx;
  500. line-height: 28upx;
  501. margin-top: 15upx;
  502. display: flex;
  503. flex-direction: row;
  504. flex-wrap: nowrap;
  505. align-content: center;
  506. justify-content: flex-start;
  507. align-items: center;
  508. .product-sku-name {
  509. font-size: 24px;
  510. font-family: Source Han Sans CN;
  511. font-weight: 400;
  512. color: #90919C;
  513. margin-left: 30upx;
  514. }
  515. }
  516. .product-price-row {
  517. width: 100%;
  518. height: 50upx;
  519. line-height: 50upx;
  520. display: flex;
  521. flex-direction: row;
  522. flex-wrap: nowrap;
  523. align-content: center;
  524. justify-content: space-between;
  525. align-items: center;
  526. margin-top: 10upx;
  527. .price-warp {
  528. display: flex;
  529. align-items: center;
  530. line-height: 28upx;
  531. margin-left: 24upx;
  532. justify-content: flex-start;
  533. width: auto;
  534. flex-direction: row;
  535. flex-wrap: nowrap;
  536. font-size: 14px;
  537. font-family: Source Han Sans CN;
  538. font-weight: bold;
  539. color: #252744;
  540. }
  541. .product-add {
  542. width: 50px;
  543. height: 50px;
  544. margin-right: 24px;
  545. }
  546. }
  547. }
  548. }
  549. }
  550. .item3 {
  551. display: flex;
  552. flex-direction: column;
  553. flex-wrap: nowrap;
  554. align-content: center;
  555. justify-content: center;
  556. align-items: center;
  557. background: #ffffff;
  558. box-shadow: 0rpx 12rpx 24rpx 0rpx #EDEDED;
  559. border-radius: 24rpx;
  560. border: 1rpx solid #FFFFFF;
  561. width: 280rpx;
  562. height: 380rpx;
  563. margin: 10rpx 20rpx;
  564. .item3_name {
  565. height: 90rpx;
  566. font-family: Source Han Sans CN;
  567. font-weight: 400;
  568. font-size: 24rpx;
  569. color: #252744;
  570. //text-align: center;
  571. margin-top:20rpx;
  572. padding-left: 10rpx;
  573. padding-right: 10rpx;
  574. }
  575. .item3_image {
  576. //margin: 15rpx;
  577. width: 100%;
  578. //padding: 10rpx;
  579. box-sizing:border-box;
  580. img {
  581. width: 99.5%;
  582. border-top-left-radius: 24rpx;
  583. border-top-right-radius: 24rpx;
  584. }
  585. }
  586. .item3_btn_row {
  587. margin-bottom: 15upx;
  588. .item3_btn {
  589. background: #252744;
  590. border-radius: 24rpx;
  591. font-family: Microsoft YaHei;
  592. font-weight: 400;
  593. font-size: 20rpx;
  594. color: #FFFFFF;
  595. padding-left: 30upx;
  596. padding-right: 30upx;
  597. padding-top: 8upx;
  598. padding-bottom: 10upx;
  599. }
  600. }
  601. }
  602. .item4 {
  603. width: 680upx;
  604. height: 210upx;
  605. margin: 10upx 20upx;
  606. background: #FDFDFD;
  607. box-shadow: 0upx 24upx 60upx 0upx #E5E5E5;
  608. border-radius: 16upx;
  609. position: relative;
  610. .item4_index_image {
  611. width: 50upx;
  612. height: 50upx;
  613. position: absolute;
  614. left: 26upx;
  615. z-index: 100;
  616. img {
  617. width: 100%;
  618. }
  619. }
  620. .item4_content {
  621. width: 100%;
  622. height: 100%;
  623. position: absolute;
  624. display: flex;
  625. flex-direction: row;
  626. flex-wrap: nowrap;
  627. align-content: center;
  628. justify-content: space-between;
  629. align-items: center;
  630. .item4_image {
  631. width: 164upx;
  632. height: 164upx;
  633. background: #F6F6F7;
  634. border-radius: 8upx;
  635. margin: 24upx;
  636. img {
  637. width: 100%;
  638. }
  639. }
  640. .item4_info {
  641. height: 100%;
  642. padding-top: 30rpx;
  643. padding-bottom: 30rpx;
  644. flex: 1;
  645. display: flex;
  646. flex-direction: column;
  647. flex-wrap: nowrap;
  648. align-content: center;
  649. justify-content: space-between;
  650. align-items: flex-start;
  651. box-sizing:border-box;
  652. .item4_name {
  653. font-family: Microsoft YaHei;
  654. font-weight: bold;
  655. font-size: 32rpx;
  656. color: #252744;
  657. }
  658. .item4_price {
  659. font-family: Source Han Sans CN;
  660. font-weight: bold;
  661. font-size: 32rpx;
  662. color: #252744;
  663. }
  664. }
  665. .item4_arrow {
  666. width: 21rpx;
  667. height: 36rpx;
  668. margin: 24upx;
  669. img {
  670. width: 100%;
  671. height: 100%;
  672. }
  673. }
  674. }
  675. }
  676. }
  677. //::v-deep .swiper-pagination-bullet{
  678. // display: none;
  679. //}
  680. }
  681. }
  682. //::v-deep .uni-swiper-dots{
  683. // display: flex;
  684. // justify-content: center;
  685. // padding: 10rpx 0;
  686. // .uni-swiper-dot{
  687. // width: 10rpx;
  688. // height: 10rpx;
  689. // background: #333333;
  690. // opacity: 0.3;
  691. // border-radius: 5rpx;
  692. // margin: 0 5rpx;
  693. // &-active{
  694. // width: 20rpx;
  695. // height: 10rpx;
  696. // opacity: 1;
  697. // }
  698. // }
  699. //}
  700. .swiper-dots {
  701. display: flex;
  702. position: absolute;
  703. left: 50%;
  704. transform: translateX(-50%);
  705. bottom: 15rpx;
  706. z-index: 66;
  707. .dot {
  708. width: 10rpx;
  709. height: 10rpx;
  710. background: #333333;
  711. opacity: 0.3;
  712. border-radius: 5rpx;
  713. margin: 0 10rpx;
  714. }
  715. .dot-active {
  716. width: 20rpx;
  717. opacity: 1;
  718. }
  719. }
  720. //.pagination{
  721. // display: flex;
  722. // justify-content: center;
  723. // padding: 20rpx 0;
  724. // ::v-deep .swiper-pagination-bullet{
  725. // width: 10rpx;
  726. // height: 10rpx;
  727. // background: #333333;
  728. // opacity: 0.3;
  729. // border-radius: 5rpx;
  730. // margin: 0 5rpx;
  731. // }
  732. // ::v-deep .swiper-pagination-bullet-active{
  733. // width: 20rpx;
  734. // height: 10rpx;
  735. // opacity: 1;
  736. // }
  737. //}
  738. .btn-more {
  739. width: 170rpx;
  740. height: 54rpx;
  741. line-height: 54rpx;
  742. border: 2rpx solid #C5AA7B;
  743. color: #C5AA7B;
  744. font-size: 24rpx;
  745. background-color: transparent;
  746. margin: 20rpx auto 0;
  747. display: flex;
  748. align-items: center;
  749. }
  750. </style>