store_cate_index.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822
  1. <template>
  2. <view class="one">
  3. <!-- 顶部搜索框 -->
  4. <view class="header">
  5. <image :src="imgHost+'/statics/images/store-header.png'" mode="" class="header-img"></image>
  6. <navigator url="/pages/goods/goods_search/index" class="input acea-row row-center-wrapper"
  7. hover-class="none">
  8. <!-- #ifndef MP -->
  9. <view class="search">
  10. <!-- #endif -->
  11. <!-- #ifdef MP -->
  12. <view class="search on acea-row row-middle" style="height: 43px;"
  13. :style="'top:'+statusBarHeight+'px;'">
  14. <view class="search_Back">
  15. <view class="iconfont icon-fanhui2" @tap.stop="returns"></view>
  16. </view>
  17. <view class="searchCon">
  18. <!-- #endif -->
  19. <text class="iconfont icon-xiazai5"></text>
  20. 搜索店内商品
  21. </view>
  22. <!-- #ifdef MP -->
  23. </view>
  24. <!-- #endif -->
  25. </navigator>
  26. <!-- 门店地址 -->
  27. <view class="address">
  28. <view class="left">
  29. <view class="left-title" @click="goMap">
  30. <text class="iconfont icon-mendian"></text>
  31. <text class="text line1">{{info.name || '暂无门店'}}</text>
  32. <text class="iconfont icon-xiangyou"></text>
  33. </view>
  34. <!-- 营业时间 -->
  35. <view class="time">
  36. 营业时间:{{info.day_time || '-'}}
  37. </view>
  38. <view class="distance">
  39. <text class="iconfont icon-chakanditu"></text>
  40. 距您<text>{{info.range||0}}km</text>
  41. <text class="distance-name">{{info.detailed_address}}</text>
  42. </view>
  43. </view>
  44. <!-- 客服 -->
  45. <view class="right">
  46. <view class="kefu" @click="goKefu()">
  47. <text class="iconfont icon-kefu-mendian" />
  48. <text>客服</text>
  49. </view>
  50. <view class="goods" @click="shoppCart">
  51. <view class="cartNum" v-if="cartNum>0">
  52. {{cartNum}}
  53. </view>
  54. <text class="iconfont icon-gouwuche-mendian" />
  55. <text>购物车</text>
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. <!-- 商品排序条件 -->
  61. <view class="content">
  62. <view class="nav">
  63. <view @click="set_where(1)" :class="{'activeColor':active == 1}">
  64. 综合排序
  65. </view>
  66. <view @click='set_where(2)' :class="{'activeColor':active == 2}">
  67. 价格
  68. <image v-if="price==1" src="../../static/images/up.png" alt="" class="nav-img"></image>
  69. <image v-else-if="price==2" src='../../static/images/down.png' class="nav-img"></image>
  70. <image v-else src='../../static/images/horn.png' class="nav-img"></image>
  71. </view>
  72. <view @click='set_where(3)' :class="{'activeColor':active == 3}">
  73. 销量
  74. <image v-if="stock==1" src="../../static/images/up.png" alt="" class="nav-img"></image>
  75. <image v-else-if="stock==2" src='../../static/images/down.png' class="nav-img"></image>
  76. <image v-else src='../../static/images/horn.png' class="nav-img"></image>
  77. </view>
  78. <view @click="set_where(4)">
  79. <text class="iconfont icon-shaixuan"></text>
  80. 筛选
  81. </view>
  82. </view>
  83. </view>
  84. <!-- 商品列表 -->
  85. <view class="list waterList">
  86. <waterfallsFlow ref="waterfallsFlow" :list="productList" @wapper-lick="godDetail">
  87. <!-- #ifdef MP-WEIXIN -->
  88. <view v-for="(item, index) of productList" :key="index" slot="slot{{index}}">
  89. <view class="waterfalls">
  90. <view class='name line2'>{{item.store_name}}</view>
  91. <span class="label"
  92. v-if="item.activity && item.activity.type === '1' && !promotions_type">秒杀</span>
  93. <span class="label"
  94. v-if="item.activity && item.activity.type === '2' && !promotions_type">砍价</span>
  95. <span class="label"
  96. v-if="item.activity && item.activity.type === '3' && !promotions_type">拼团</span>
  97. <text class="label" v-if="item.promotions.title">{{item.promotions.title}}</text>
  98. <view class="vip acea-row row-middle">
  99. <view class='money font-color'>
  100. ¥<text class='num'>{{item.price.toString().split(".")[0]}}</text>
  101. <text class='nums'
  102. v-if="item.price.toString().split('.').length>1">.{{item.price.toString().split(".")[1]}}</text>
  103. </view>
  104. <view class='vip-money acea-row row-middle' v-if="item.vip_price && item.vip_price > 0">
  105. <view>¥{{item.vip_price}}</view>
  106. <!-- <image src='../../static/images/vip.png' v-if="item.price_type == 'member'"></image> -->
  107. <view class="icon on" v-if="item.price_type && item.price_type == 'member'"><text
  108. class="iconfont icon-huangguan4"></text>SVIP</view>
  109. <view class="icon" v-if="item.price_type && item.price_type == 'level'"><text
  110. class="iconfont icon-dengjitubiao"></text>{{item.level_name}}</view>
  111. </view>
  112. </view>
  113. <view class='vip acea-row row-between-wrapper'>
  114. <view>已售{{item.sales}}{{item.unit_name || '件'}}</view>
  115. <view>评分 {{item.star}}</view>
  116. </view>
  117. </view>
  118. </view>
  119. <!-- #endif -->
  120. <!-- #ifndef MP-WEIXIN -->
  121. <template v-slot:default="item">
  122. <view class="waterfalls">
  123. <view class='name line2'>{{item.store_name}}</view>
  124. <span class="label"
  125. v-if="item.activity && item.activity.type === '1' && !promotions_type">秒杀</span>
  126. <span class="label"
  127. v-if="item.activity && item.activity.type === '2' && !promotions_type">砍价</span>
  128. <span class="label"
  129. v-if="item.activity && item.activity.type === '3' && !promotions_type">拼团</span>
  130. <text class="label" v-if="item.promotions.title">{{item.promotions.title}}</text>
  131. <view class="vip acea-row row-middle">
  132. <view class='money font-color'>
  133. ¥<text class='num'>{{item.price.toString().split(".")[0]}}</text>
  134. <text class='nums'
  135. v-if="item.price.toString().split('.').length>1">.{{item.price.toString().split(".")[1]}}</text>
  136. </view>
  137. <view class='vip-money acea-row row-middle' v-if="item.vip_price && item.vip_price > 0">
  138. <view>¥{{item.vip_price}}</view>
  139. <view class="icon on" v-if="item.price_type && item.price_type == 'member'"><text
  140. class="iconfont icon-huangguan4"></text>SVIP</view>
  141. <view class="icon" v-if="item.price_type && item.price_type == 'level'"><text
  142. class="iconfont icon-v"></text>{{item.level_name}}</view>
  143. </view>
  144. </view>
  145. <view class='vip acea-row row-between-wrapper'>
  146. <view>已售{{item.sales}}{{item.unit_name || '件'}}</view>
  147. <view>评分 {{item.star}}</view>
  148. </view>
  149. </view>
  150. </template>
  151. <!-- #endif -->
  152. </waterfallsFlow>
  153. <view class='loadingicon acea-row row-center-wrapper' v-if='productList.length > 0'>
  154. <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
  155. </view>
  156. </view>
  157. <!-- 商品列表 -->
  158. <view class="default" v-if="productList.length==0 && where.page > 1">
  159. <image :src="imgHost+'/statics/images/no-thing.png'" mode="" class="img"></image>
  160. <view class="text">
  161. 暂无商品,去添加点什么吧
  162. </view>
  163. </view>
  164. <!-- 筛选弹窗 -->
  165. <filterPopup ref="popup" :storeCategory="storeCategory" :storeBrand="storeBrand" @brandChange="brandChange"
  166. @categoryChange="categoryChange" @submitFn="submitFn"></filterPopup>
  167. <!-- 客服弹窗 -->
  168. <Kefu ref="kefu" @closeKefu="closeKefu" :customerList="customerList" :customerType="customerType"></Kefu>
  169. </view>
  170. </template>
  171. <script>
  172. let statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
  173. import waterfallsFlow from "@/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue";
  174. import filterPopup from "@/components/filterPopup/index.vue";
  175. import Kefu from "@/components/kefu/index.vue"
  176. import {
  177. getnearbyStore
  178. } from '@/api/new_store.js'
  179. import {
  180. mapState,
  181. mapGetters
  182. } from 'vuex';
  183. import {
  184. getProducts,
  185. getCustomerList,
  186. getStoreCategory,
  187. getStoreBrand
  188. } from '@/api/new_store.js';
  189. import {
  190. goShopDetail
  191. } from '@/libs/order.js';
  192. import {
  193. HTTP_REQUEST_URL
  194. } from '@/config/app';
  195. export default {
  196. components: {
  197. filterPopup,
  198. waterfallsFlow,
  199. Kefu
  200. },
  201. computed: {
  202. ...mapState({
  203. cartNum: state => state.indexData.cartNum
  204. }),
  205. ...mapGetters(['isLogin', 'uid', 'cartNum']),
  206. },
  207. data() {
  208. return {
  209. storeShow: 2,
  210. customerType: 1,
  211. info: {},
  212. statusBarHeight: statusBarHeight,
  213. imgHost: HTTP_REQUEST_URL,
  214. price: 0,
  215. stock: 0,
  216. productList: [], // 商品数据
  217. customerList: [], // 客服数据
  218. storeCategory: [], // 分类数据
  219. storeBrand: [], // 品牌数据
  220. show: false,
  221. active: 1,
  222. where: {
  223. cid: 0,
  224. sid: 0,
  225. keyword: '',
  226. priceOrder: '',
  227. salesOrder: '',
  228. news: 0,
  229. page: 1,
  230. limit: 5,
  231. store_id: 0,
  232. brand_id: '',
  233. },
  234. loading: false,
  235. loadend: false,
  236. loadTitle: '加载更多',
  237. }
  238. },
  239. onLoad() {
  240. try {
  241. this.where.latitude = uni.getStorageSync('user_latitude');
  242. this.where.longitude = uni.getStorageSync('user_longitude');
  243. } catch (e) {
  244. console.log(e);
  245. }
  246. if (this.where.latitude && this.where.longitude) {
  247. this.getStore();
  248. } else {
  249. this.selfLocation();
  250. }
  251. },
  252. mounted() {},
  253. methods: {
  254. returns: function() {
  255. uni.navigateBack();
  256. },
  257. getStore() {
  258. this.where.latitude = uni.getStorageSync('user_latitude');
  259. this.where.longitude = uni.getStorageSync('user_longitude');
  260. getnearbyStore(this.where).then(res => {
  261. this.info = res.data.info
  262. this.id = this.info.id
  263. this.customerType = parseInt(res.data.info.customer_type)
  264. uni.setStorageSync('user_store_id', this.info.id);
  265. setTimeout(() => {
  266. this.where.store_id = this.id
  267. this.getProducts(true)
  268. })
  269. })
  270. },
  271. // 获取附近位置
  272. selfLocation() {
  273. let self = this
  274. // #ifdef H5
  275. if (self.$wechat.isWeixin()) {
  276. self.$wechat.location().then(res => {
  277. this.where.latitude = res.latitude;
  278. this.where.longitude = res.longitude;
  279. uni.setStorageSync('user_latitude', res.latitude);
  280. uni.setStorageSync('user_longitude', res.longitude);
  281. self.getStore();
  282. })
  283. } else {
  284. // #endif
  285. uni.getLocation({
  286. type: 'wgs84',
  287. success: (res) => {
  288. try {
  289. this.where.latitude = res.latitude;
  290. this.where.longitude = res.longitude;
  291. uni.setStorageSync('user_latitude', res.latitude);
  292. uni.setStorageSync('user_longitude', res.longitude);
  293. } catch {}
  294. self.getStore();
  295. },
  296. complete: function() {
  297. self.getStore();
  298. }
  299. });
  300. // #ifdef H5
  301. }
  302. // #endif
  303. },
  304. // 选择品牌
  305. brandChange(val) {
  306. this.where.brand_id = val
  307. },
  308. // 选择分类
  309. categoryChange(val) {
  310. this.where.cid = val.cid
  311. this.where.sid = val.sid
  312. },
  313. // 确认提交
  314. submitFn(val) {
  315. if (val == 1) {
  316. this.getProducts(true)
  317. this.$refs.popup.visible = false
  318. } else if (val == 2) {
  319. this.where.brand_id = ""
  320. this.where.cid = ""
  321. this.where.sid = ""
  322. this.getProducts(true)
  323. this.$refs.popup.visible = false
  324. }
  325. },
  326. // 打开附近门店
  327. goMap() {
  328. uni.navigateTo({
  329. url: "/pages/store/map/index?type=1&storeId=" + this.info.id
  330. })
  331. },
  332. // 打开客服
  333. goKefu() {
  334. this.getCustomerList()
  335. this.$refs.kefu.show = true
  336. },
  337. // 购物车
  338. shoppCart() {
  339. uni.switchTab({
  340. url: "/pages/order_addcart/order_addcart"
  341. })
  342. },
  343. // 关闭客服
  344. closeKefu() {
  345. this.$refs.kefu.show = false
  346. },
  347. // 获取客服列表数据
  348. getCustomerList() {
  349. getCustomerList(this.where.store_id).then(res => {
  350. this.customerList = res.data
  351. })
  352. },
  353. // 去详情页
  354. godDetail(item) {
  355. this.currentPage = false
  356. if (this.promotions_type) {
  357. uni.navigateTo({
  358. url: `/pages/goods_details/index?id=${item.id}`
  359. })
  360. } else {
  361. goShopDetail(item, this.uid).then(res => {
  362. uni.navigateTo({
  363. url: `/pages/goods_details/index?id=${item.id}`
  364. })
  365. })
  366. }
  367. },
  368. // 操作
  369. set_where: function(e) {
  370. switch (e) {
  371. case 1:
  372. this.active = 1
  373. this.where.priceOrder = ""
  374. this.where.salesOrder = ""
  375. this.where.brand_id = ""
  376. this.price = 0
  377. break;
  378. case 2:
  379. if (this.price == 0) this.price = 1;
  380. else if (this.price == 1) this.price = 2;
  381. else if (this.price == 2) this.price = 0;
  382. if (this.price == 1) {
  383. this.where.priceOrder = "asc"
  384. } else if (this.price == 2) {
  385. this.where.priceOrder = "desc"
  386. } else {
  387. this.where.priceOrder = ""
  388. }
  389. this.active = 2
  390. this.stock = 0;
  391. break;
  392. case 3:
  393. if (this.stock == 0) this.stock = 1;
  394. else if (this.stock == 1) this.stock = 2;
  395. else if (this.stock == 2) this.stock = 0;
  396. if (this.stock == 1) {
  397. this.where.priceOrder = ""
  398. this.where.salesOrder = "asc"
  399. } else if (this.stock == 2) {
  400. this.where.priceOrder = ""
  401. this.where.salesOrder = "desc"
  402. } else {
  403. this.where.salesOrder = ""
  404. }
  405. this.active = 3
  406. this.price = 0
  407. break;
  408. case 4:
  409. console.log('1111111111');
  410. this.getStoreCategory()
  411. this.getStoreBrand()
  412. this.$refs.popup.visible = true
  413. this.loadend = false;
  414. this.loading = false;
  415. break;
  416. }
  417. if (e < 4) {
  418. this.loadend = false;
  419. this.$set(this.where, 'page', 1);
  420. this.getProducts(true)
  421. }
  422. },
  423. // 商品列表
  424. getProducts(isPage) {
  425. let that = this;
  426. if (that.loadend) return;
  427. if (that.loading) return;
  428. if (isPage === true) {
  429. that.$refs.waterfallsFlow.refresh();
  430. that.where.page = 1;
  431. that.$set(that, 'productList', []);
  432. }
  433. that.loading = true;
  434. that.loadTitle = '';
  435. getProducts(this.where).then(res => {
  436. let list = res.data;
  437. let productList = that.$util.SplitArray(list, that.productList);
  438. let loadend = list.length < that.where.limit;
  439. that.loadend = loadend;
  440. that.loading = false;
  441. that.loadTitle = loadend ? '没有更多内容啦~' : '加载更多';
  442. that.$set(that, 'productList', productList);
  443. that.$set(that.where, 'page', that.where.page + 1);
  444. }).catch(err => {
  445. that.loading = false;
  446. that.loadTitle = '加载更多'
  447. });
  448. },
  449. // 筛选-分类数据
  450. getStoreCategory() {
  451. let data = {
  452. pid: 0
  453. }
  454. getStoreCategory(data).then(res => {
  455. res.data.map(item => {
  456. this.$set(item, 'disabled', false)
  457. this.$set(item, 'current', -1)
  458. item.children.unshift({
  459. 'id': 0,
  460. 'cate_name': '全部'
  461. })
  462. })
  463. this.storeCategory = res.data
  464. })
  465. },
  466. // 筛选-品牌数据
  467. getStoreBrand() {
  468. getStoreBrand(this.where).then(res => {
  469. this.storeBrand = res.data
  470. })
  471. },
  472. // 触底刷新
  473. onReachBottom() {
  474. this.getProducts()
  475. }
  476. }
  477. }
  478. </script>
  479. <style lang="scss">
  480. page {
  481. background-color: #F5F5F5;
  482. }
  483. .activeColor {
  484. color: var(--view-theme) !important;
  485. }
  486. .header {
  487. margin-bottom: 40rpx;
  488. .header-img {
  489. width: 100%;
  490. height: 300rpx;
  491. display: block;
  492. }
  493. .search {
  494. display: flex;
  495. flex-wrap: nowrap;
  496. position: absolute;
  497. // #ifndef MP
  498. top: 56rpx;
  499. // #endif
  500. left: 20rpx;
  501. // #ifdef MP
  502. width: 520rpx;
  503. // #endif
  504. // #ifndef MP
  505. width: 710rpx;
  506. // #endif
  507. height: 64rpx;
  508. background: rgba(255, 255, 255, 0.2800);
  509. border-radius: 43rpx;
  510. font-weight: 400;
  511. color: #FFFFFF;
  512. font-size: 26rpx;
  513. line-height: 64rpx;
  514. .search_Back {
  515. width: 50rpx;
  516. height: 100%;
  517. flex-shrink: 0;
  518. display: flex;
  519. align-items: center;
  520. }
  521. &.on {
  522. background: unset;
  523. }
  524. .searchCon {
  525. width: 100%;
  526. height: 64rpx;
  527. background: rgba(255, 255, 255, 0.2800);
  528. border-radius: 43rpx;
  529. flex-shrink: 1;
  530. }
  531. .icon-xiazai5 {
  532. margin-left: 32rpx;
  533. margin-right: 12rpx;
  534. }
  535. }
  536. .address {
  537. position: absolute;
  538. top: 160rpx;
  539. margin: 0 20rpx;
  540. width: 710rpx;
  541. height: 192rpx;
  542. background: #fff;
  543. border-radius: 14rpx;
  544. padding: 30rpx 20rpx;
  545. display: flex;
  546. justify-content: space-between;
  547. .left {
  548. .left-title {
  549. height: 30rpx;
  550. line-height: 30rpx;
  551. display: flex;
  552. image {
  553. width: 30rpx;
  554. height: 28rpx;
  555. }
  556. .text {
  557. font-weight: 600;
  558. color: #333333;
  559. font-size: 30rpx;
  560. margin: 0 10rpx;
  561. max-width: 390rpx;
  562. }
  563. .icon-xiangyou {
  564. color: #333;
  565. font-size: 24rpx;
  566. }
  567. }
  568. .time {
  569. margin: 20rpx 0;
  570. font-size: 22rpx;
  571. font-weight: 400;
  572. color: #666666;
  573. }
  574. .distance {
  575. width: 500rpx;
  576. font-size: 22rpx;
  577. color: #666666;
  578. font-weight: 400;
  579. .icon-chakanditu {
  580. margin-right: 8rpx;
  581. font-size: 28rpx;
  582. color: #ccc;
  583. }
  584. .distance-name {
  585. display: inline-block;
  586. width: 286rpx;
  587. height: 22rpx;
  588. border-left: 1px solid #000;
  589. margin-left: 16rpx;
  590. line-height: 22rpx;
  591. text-align: left;
  592. padding-left: 16rpx;
  593. white-space: nowrap;
  594. overflow: hidden;
  595. text-overflow: ellipsis;
  596. }
  597. }
  598. }
  599. .right {
  600. margin-top: 36rpx;
  601. display: flex;
  602. font-size: 20rpx;
  603. color: #333333;
  604. .kefu {
  605. margin-right: 30rpx;
  606. display: flex;
  607. flex-direction: column;
  608. align-items: center;
  609. .icon-kefu-mendian {
  610. font-size: 36rpx;
  611. }
  612. }
  613. }
  614. .goods {
  615. position: relative;
  616. display: flex;
  617. flex-direction: column;
  618. align-items: center;
  619. .icon-gouwuche-mendian {
  620. font-size: 36rpx;
  621. }
  622. .cartNum {
  623. position: absolute;
  624. top: -8rpx;
  625. right: 2rpx;
  626. width: 30rpx;
  627. height: 30rpx;
  628. line-height: 30rpx;
  629. text-align: center;
  630. font-weight: 500;
  631. color: #FFFFFF;
  632. border-radius: 50%;
  633. background: var(--view-theme);
  634. border: 1px solid #FFFFFF;
  635. }
  636. }
  637. }
  638. }
  639. .goods-list {
  640. padding: 0 30rpx;
  641. margin-bottom: 50rpx !important;
  642. }
  643. .content {
  644. height: 100%;
  645. // margin-bottom: 200rpx;
  646. .nav {
  647. padding: 40rpx 50rpx 40rpx 50rpx;
  648. display: flex;
  649. justify-content: space-between;
  650. font-size: 28rpx;
  651. font-weight: 500;
  652. color: #666666;
  653. .nav-img {
  654. width: 15rpx;
  655. height: 18rpx;
  656. margin-left: 10rpx;
  657. }
  658. .icon-shaixuan {
  659. font-size: 24rpx;
  660. margin-right: 10rpx;
  661. }
  662. }
  663. }
  664. .vip {
  665. margin: 20rpx 0 10rpx 0;
  666. .price {
  667. font-size: 34rpx;
  668. font-weight: 600;
  669. color: var(--view-theme);
  670. }
  671. .sold {
  672. font-size: 24rpx;
  673. font-weight: 400;
  674. color: #999999;
  675. }
  676. }
  677. .list {
  678. padding: 0 20rpx 90rpx 20rpx;
  679. }
  680. .list .waterList {
  681. margin-bottom: 60rpx;
  682. // margin-top: 192rpx;
  683. }
  684. .default {
  685. margin-top: 100rpx;
  686. display: flex;
  687. flex-direction: column;
  688. align-items: center;
  689. .img {
  690. width: 414rpx;
  691. height: 256rpx;
  692. }
  693. .text {
  694. font-size: 26rpx;
  695. font-weight: 400;
  696. color: #999999;
  697. }
  698. }
  699. .waterfalls {
  700. padding: 10rpx 16rpx 16rpx 16rpx;
  701. color: #222;
  702. .name {
  703. font-size: 28rpx;
  704. }
  705. .label {
  706. font-size: 20rpx;
  707. color: var(--view-theme);
  708. border-radius: 4rpx;
  709. border: 1px solid var(--view-theme);
  710. padding: 0 6rpx;
  711. display: inline-block;
  712. margin-top: 10rpx;
  713. margin-right: 10rpx;
  714. }
  715. .money {
  716. font-size: 26rpx;
  717. font-weight: 700;
  718. .num {
  719. font-size: 34rpx;
  720. }
  721. .nums {
  722. font-size: 28rpx;
  723. }
  724. }
  725. .vip {
  726. font-size: 22rpx;
  727. color: #aaa;
  728. margin-top: 6rpx;
  729. .vip-money {
  730. font-size: 24rpx;
  731. color: #282828;
  732. font-weight: bold;
  733. .icon {
  734. font-size: 15rpx;
  735. background: #FF9500;
  736. color: #fff;
  737. border-radius: 18rpx;
  738. padding: 1rpx 6rpx;
  739. margin-left: 10rpx;
  740. min-width: 60rpx;
  741. .iconfont {
  742. font-size: 15rpx;
  743. margin-right: 5rpx;
  744. }
  745. &.on {
  746. background: #333;
  747. color: #FDDAA4;
  748. min-width: unset;
  749. }
  750. }
  751. image {
  752. width: 46rpx;
  753. height: 21rpx;
  754. margin-left: 4rpx;
  755. }
  756. }
  757. }
  758. }
  759. </style>