修改店铺详情的tab,已进入就显示商品

This commit is contained in:
cc_zbp 2023-05-15 17:18:15 +08:00
parent b58bf795f8
commit 3e1f97f269
7 changed files with 717 additions and 786 deletions

View File

@ -5,7 +5,7 @@
<img :src="bgColor" alt=""> <img :src="bgColor" alt="">
</view> </view>
<view class="site-box flex_a_c_j_sb"> <view class="site-box flex_a_c_j_sb">
<view class="place_wrapper flex_a_c"> <view class="place_wrapper flex_a_c" @click="selectLocation">
<view class="iconfont icon-weizhi"></view> <view class="iconfont icon-weizhi"></view>
<view class="town_name">{{street}}</view> <view class="town_name">{{street}}</view>
</view> </view>
@ -26,7 +26,7 @@
<swiper class="swiper l_center" @change="swiperChange" :indicator-dots="swiper.indicatorDots" <swiper class="swiper l_center" @change="swiperChange" :indicator-dots="swiper.indicatorDots"
:autoplay="swiper.autoplay" :interval="swiper.interval" :duration="swiper.duration" :autoplay="swiper.autoplay" :interval="swiper.interval" :duration="swiper.duration"
indicator-active-color="#fff"> indicator-active-color="#fff">
<block v-for="(item,i) in swiper['url']" :key="i"> <block v-for="(item,index) in swiper['url']" :key="index">
<swiper-item class="swi_item"> <swiper-item class="swi_item">
<u--image radius="15" :showLoading="true" :src="item.img" width="694.74rpx" height="242.11rpx" <u--image radius="15" :showLoading="true" :src="item.img" width="694.74rpx" height="242.11rpx"
mode="aspectFill"> mode="aspectFill">
@ -35,15 +35,26 @@
</block> </block>
</swiper> </swiper>
</view> </view>
<u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm"
@cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker>
</view> </view>
</template> </template>
<script> <script>
import { getArea, getStreet } from '@/api/article.js';
import { getIndexData, getDiy } from '@/api/api.js' import { getIndexData, getDiy } from '@/api/api.js'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
props: {
isSelectPlace: {
type: Boolean,
default: false
}
},
data() { data() {
return { return {
showPicker: false,
columnData: [],
keyword: '', keyword: '',
street: '', street: '',
bgColor: '', bgColor: '',
@ -65,8 +76,35 @@
const loca = JSON.parse(this.location) const loca = JSON.parse(this.location)
this.street = loca.address_component.street this.street = loca.address_component.street
this.getBanner() this.getBanner()
this.Area()
}, },
methods: { methods: {
selectLocation() {
this.isSelectPlace ? this.showPicker = true : ''
},
confirm(e) {
this.showPicker = false
this.$emit('selectPlce', e)
},
changeHandler(e) {
const { columnIndex, value, values, index, picker = this.$refs.uPicker } = e;
if (columnIndex === 0) {
getStreet({ area_code: value[0]['code'] }).then(res => {
picker.setColumnValues(1, res.data);
});
}
},
Area() {
getArea({ city_code: 510500 }).then(res => {
this.$refs.uPicker.setColumnValues(0, res.data);
this.Street(res.data[0]['code']);
});
},
Street(code) {
getStreet({ area_code: code }).then(res => {
this.$refs.uPicker.setColumnValues(1, res.data);
});
},
swiperChange(e) { swiperChange(e) {
let { current, source } = e.detail; let { current, source } = e.detail;
if (source === 'autoplay' || source === 'touch') { if (source === 'autoplay' || source === 'touch') {
@ -74,28 +112,16 @@
} }
}, },
async getBanner() { async getBanner() {
this.swiper.url = [{ const { data } = await getDiy({ id: 0 })
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/db8c4202304281456295061.png' /* 对象转数组*/
}, let obj = Object.keys(data.value).sort();
{ let styleConfig = obj.map(key => data.value[key]);
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/dbefb202304281456319848.png' /* 循环数组得到数据*/
}, styleConfig.forEach((item, index, arr) => {
{ if (item.name == 'headerSerch' || item.name == 'homeComb') {
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/2219c202304281456309025.png' item.name == 'homeComb' ? this.swiper.url = item.swiperConfig.list : '';
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/b4f86202304281456307136.png'
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/3b6ae202304281456327858.png'
} }
] })
// const { data } = await getDiy({ id: 0 })
// if (data.value['1683638943100000']) {
// this.swiper.url = data.value['1683638943100000'].swiperConfig.list
// } else {
// this.swiper.url = data.value['1683875164005000'].swiperConfig.list
// }
this.bgColor = this.swiper.url[0].img this.bgColor = this.swiper.url[0].img
}, },
} }

View File

@ -204,8 +204,9 @@
}, { }, {
"path": "supply_chain/supplier", "path": "supply_chain/supplier",
"style": { "style": {
"navigationBarTitleText": "供货采购", "navigationBarTitleText": "",
"enablePullDownRefresh": true "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#e93323"
// "navigationStyle": "custom" // "navigationStyle": "custom"
} }

View File

@ -10,7 +10,7 @@
</view> </view>
<view class="goods"> <view class="goods">
<block v-for="(item,index) in cateGoods" :key="item.uid"> <block v-for="(item,index) in cateGoods" :key="index">
<view class="goods_item" @click="gogogo(item)"> <view class="goods_item" @click="gogogo(item)">
<image class="goods_img" :src="item.image[0]" mode="aspectFill"></image> <image class="goods_img" :src="item.image[0]" mode="aspectFill"></image>
<view class="botm"> <view class="botm">

View File

@ -1,245 +1,266 @@
<template> <template>
<view> <view>
<view class='newsDetail'> <view class='newsDetail' style="padding-bottom: 50px;">
<view class='title'>{{articleInfo.title}}</view> <view class='title'>{{articleInfo.title}}</view>
<view class='list acea-row row-middle'> <view class='list acea-row row-middle'>
<view class='label'>{{articleInfo.author}}</view> <view class='label'>{{articleInfo.author}}</view>
<view class='item'></text>{{articleInfo.create_time}}</view> <view class='item'></text>{{articleInfo.create_time}}</view>
<!-- <view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit}}</view> --> <!-- <view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit}}</view> -->
</view> </view>
<view class='conters'> <view class='conters'>
<!-- <rich-text :nodes="content" class="conter"></rich-text> --> <!-- <rich-text :nodes="content" class="conter"></rich-text> -->
<jyf-parser :html="content.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser> <jyf-parser :html="content.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
</view> </view>
<view class="picTxt acea-row row-between-wrapper" v-if="store_info.id"> <view class="picTxt acea-row row-between-wrapper" v-if="store_info.id">
<view class="pictrue"> <view class="pictrue">
<image :src="store_info.image"></image> <image :src="store_info.image"></image>
</view> </view>
<view class="text"> <view class="text">
<view class="name line1">{{store_info.store_name}}</view> <view class="name line1">{{store_info.store_name}}</view>
<view class="money font-color"> <view class="money font-color">
<text class="num">{{store_info.price}}</text> <text class="num">{{store_info.price}}</text>
</view> </view>
<view class="y_money">{{store_info.ot_price}}</view> <view class="y_money">{{store_info.ot_price}}</view>
</view> </view>
<navigator :url="'/pages/goods_details/index?id='+store_info.id" hover-class="none" class="label"><text class="span">查看商品</text></navigator> <navigator :url="'/pages/goods_details/index?id='+store_info.id" hover-class="none" class="label"><text
</view> class="span">查看商品</text></navigator>
<!-- #ifdef H5 --> </view>
<button class="bnt bg-color" hover-class='none' @click="listenerActionSheet" v-if="this.$wechat.isWeixin()">和好友一起分享</button> <!-- #ifdef H5 -->
<!-- #endif --> <button class="bnt bg-color" hover-class='none' @click="listenerActionSheet"
<!-- #ifdef MP --> v-if="this.$wechat.isWeixin()">和好友一起分享</button>
<button class="bnt bg-color" open-type="share" hover-class='none'>和好友一起分享</button> <!-- #endif -->
<!-- #endif --> <!-- #ifdef MP -->
</view> <button class="bnt bg-color" open-type="share" hover-class='none'>和好友一起分享</button>
<shareInfo @setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></shareInfo> <!-- #endif -->
<home></home> </view>
</view> <shareInfo @setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></shareInfo>
<!-- <home></home> -->
</view>
</template> </template>
<script> <script>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | CRMEB [ CRMEB ] // | CRMEB [ CRMEB ]
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB // | Licensed CRMEBCRMEB
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import parser from "@/components/jyf-parser/jyf-parser"; import parser from "@/components/jyf-parser/jyf-parser";
import { import {
getArticleDetails getArticleDetails
} from '@/api/api.js'; } from '@/api/api.js';
import shareInfo from '@/components/shareInfo'; import shareInfo from '@/components/shareInfo';
import home from '@/components/home'; import home from '@/components/home';
export default { export default {
components: { components: {
shareInfo, shareInfo,
home, home,
"jyf-parser": parser, "jyf-parser": parser,
}, },
data() { data() {
return { return {
id: 0, id: 0,
articleInfo: [], articleInfo: [],
store_info: {}, store_info: {},
content: '', content: '',
shareInfoStatus: false, shareInfoStatus: false,
tagStyle: { tagStyle: {
img: 'width:100%;display:block;' img: 'width:100%;display:block;'
}, },
}; };
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function(options) { onLoad: function(options) {
if (options.hasOwnProperty('id')) { if (options.hasOwnProperty('id')) {
this.id = options.id; this.id = options.id;
} else { } else {
// #ifndef H5 // #ifndef H5
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}); });
// #endif // #endif
// #ifdef H5 // #ifdef H5
history.back(); history.back();
// #endif // #endif
} }
}, },
onShow: function() { onShow: function() {
this.getArticleOne(); this.getArticleOne();
}, },
methods: { methods: {
getArticleOne: function() { getArticleOne: function() {
let that = this; let that = this;
getArticleDetails(that.id).then(res => { getArticleDetails(that.id).then(res => {
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: res.data.title.substring(0, 7) + "..." title: res.data.title.substring(0, 7) + "..."
}); });
that.$set(that, 'articleInfo', res.data); that.$set(that, 'articleInfo', res.data);
that.$set(that, 'store_info', res.data.store_info ? res.data.store_info : {}); that.$set(that, 'store_info', res.data.store_info ? res.data.store_info : {});
that.content = res.data.content.content; that.content = res.data.content.content;
// #ifdef H5 // #ifdef H5
if (this.$wechat.isWeixin()) { if (this.$wechat.isWeixin()) {
this.setShareInfo(); this.setShareInfo();
} }
// #endif // #endif
}); });
}, },
listenerActionSheet() { listenerActionSheet() {
this.shareInfoStatus = true this.shareInfoStatus = true
}, },
setShareInfoStatus() { setShareInfoStatus() {
this.shareInfoStatus = false this.shareInfoStatus = false
}, },
setShareInfo: function() { setShareInfo: function() {
let href = location.href; let href = location.href;
let configAppMessage = { let configAppMessage = {
desc: this.articleInfo.synopsis, desc: this.articleInfo.synopsis,
title: this.articleInfo.title, title: this.articleInfo.title,
link: href, link: href,
imgUrl: this.articleInfo.image_input imgUrl: this.articleInfo.image_input
}; };
this.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage); this.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage);
} }
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss">
page { page {
background-color: #fff !important; background-color: #fff !important;
} }
.newsDetail .title {
padding: 0 30rpx;
font-size: 34rpx;
color: #282828;
font-weight: bold;
margin: 45rpx 0 23rpx 0;
line-height: 1.5;
}
.newsDetail .list { .newsDetail .title {
margin: 0 30rpx; padding: 0 30rpx;
padding-bottom: 25rpx; font-size: 34rpx;
} color: #282828;
.newsDetail .list .label { font-weight: bold;
font-size: 30rpx; margin: 45rpx 0 23rpx 0;
color: #B1B2B3; line-height: 1.5;
} }
.newsDetail .list .item {
margin-left: 27rpx; .newsDetail .list {
font-size: 30rpx; margin: 0 30rpx;
color: #B1B2B3; padding-bottom: 25rpx;
} }
.newsDetail .list .item .iconfont {
font-size: 28rpx; .newsDetail .list .label {
margin-right: 10rpx; font-size: 30rpx;
} color: #B1B2B3;
.newsDetail .list .item .iconfont.icon-shenhezhong { }
font-size: 26rpx;
} .newsDetail .list .item {
.newsDetail .conters { margin-left: 27rpx;
padding: 0 30rpx; font-size: 30rpx;
font-size: 32rpx; color: #B1B2B3;
line-height: 1.7; }
/deep/ img{
max-width: 100%; .newsDetail .list .item .iconfont {
} font-size: 28rpx;
} margin-right: 10rpx;
.newsDetail .picTxt { }
width: 690rpx;
height: 200rpx; .newsDetail .list .item .iconfont.icon-shenhezhong {
border-radius: 20rpx; font-size: 26rpx;
border: 1px solid #e1e1e1; }
position: relative;
margin: 30rpx auto 0 auto; .newsDetail .conters {
} padding: 0 30rpx;
.newsDetail .picTxt .pictrue { font-size: 32rpx;
width: 200rpx; line-height: 1.7;
height: 200rpx;
} /deep/ img {
.newsDetail .picTxt .pictrue image { max-width: 100%;
width: 100%; }
height: 100%; }
border-radius: 20rpx 0 0 20rpx;
display: block; .newsDetail .picTxt {
} width: 690rpx;
.newsDetail .picTxt .text { height: 200rpx;
width: 460rpx; border-radius: 20rpx;
} border: 1px solid #e1e1e1;
.newsDetail .picTxt .text .name { position: relative;
font-size: 30rpx; margin: 30rpx auto 0 auto;
color: #282828; }
}
.newsDetail .picTxt .text .money { .newsDetail .picTxt .pictrue {
font-size: 24rpx; width: 200rpx;
margin-top: 40rpx; height: 200rpx;
font-weight: bold; }
}
.newsDetail .picTxt .text .money .num { .newsDetail .picTxt .pictrue image {
font-size: 36rpx; width: 100%;
} height: 100%;
.newsDetail .picTxt .text .y_money { border-radius: 20rpx 0 0 20rpx;
font-size: 26rpx; display: block;
color: #999; }
text-decoration: line-through;
} .newsDetail .picTxt .text {
.newsDetail .picTxt .label { width: 460rpx;
position: absolute; }
background-color: #303131;
width: 160rpx; .newsDetail .picTxt .text .name {
height: 50rpx; font-size: 30rpx;
right: -7rpx; color: #282828;
border-radius: 25rpx 0 6rpx 25rpx; }
text-align: center;
line-height: 50rpx; .newsDetail .picTxt .text .money {
bottom: 24rpx; font-size: 24rpx;
} margin-top: 40rpx;
.newsDetail .picTxt .label .span { font-weight: bold;
background-image: linear-gradient(to right, #fff71e 0%, #f9b513 100%); }
-webkit-background-clip: text;
-webkit-text-fill-color: transparent; .newsDetail .picTxt .text .money .num {
} font-size: 36rpx;
.newsDetail .picTxt .label:after { }
content: " ";
position: absolute; .newsDetail .picTxt .text .y_money {
width: 0; font-size: 26rpx;
height: 0; color: #999;
border-bottom: 8rpx solid #303131; text-decoration: line-through;
border-right: 8rpx solid transparent; }
top: -7rpx;
right: 0; .newsDetail .picTxt .label {
} position: absolute;
.newsDetail .bnt { background-color: #303131;
color: #fff; width: 160rpx;
font-size: 30rpx; height: 50rpx;
width: 690rpx; right: -7rpx;
height: 90rpx; border-radius: 25rpx 0 6rpx 25rpx;
border-radius: 45rpx; text-align: center;
margin: 48rpx auto; line-height: 50rpx;
text-align: center; bottom: 24rpx;
line-height: 90rpx; }
}
</style> .newsDetail .picTxt .label .span {
background-image: linear-gradient(to right, #fff71e 0%, #f9b513 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.newsDetail .picTxt .label:after {
content: " ";
position: absolute;
width: 0;
height: 0;
border-bottom: 8rpx solid #303131;
border-right: 8rpx solid transparent;
top: -7rpx;
right: 0;
}
.newsDetail .bnt {
color: #fff;
font-size: 30rpx;
width: 690rpx;
height: 90rpx;
border-radius: 45rpx;
margin: 48rpx auto;
text-align: center;
line-height: 90rpx;
}
</style>

View File

@ -1,310 +1,339 @@
<template> <template>
<view> <view>
<view class='newsList'> <view class='newsList'>
<view class='swiper' v-if="imgUrls.length > 0"> <view class='swiper' v-if="imgUrls.length > 0">
<swiper indicator-dots="true" :autoplay="autoplay" :circular="circular" :interval="interval" :duration="duration" <swiper indicator-dots="true" :autoplay="autoplay" :circular="circular" :interval="interval"
indicator-color="rgba(102,102,102,0.3)" indicator-active-color="#666"> :duration="duration" indicator-color="rgba(102,102,102,0.3)" indicator-active-color="#666">
<block v-for="(item,index) in imgUrls" :key="index"> <block v-for="(item,index) in imgUrls" :key="index">
<swiper-item> <swiper-item>
<navigator :url="'/pages/news_details/index?id='+item.id"> <navigator :url="'/pages/news_details/index?id='+item.id">
<image :src="item.image_input[0]" class="slide-image" /> <image :src="item.image_input[0]" class="slide-image" />
</navigator> </navigator>
</swiper-item> </swiper-item>
</block> </block>
</swiper> </swiper>
</view> </view>
<view class='nav' v-if="navList.length > 0"> <view class='nav' v-if="navList.length > 0">
<scroll-view class="scroll-view_x" scroll-x scroll-with-animation :scroll-left="scrollLeft" style="width:auto;overflow:hidden;"> <scroll-view class="scroll-view_x" scroll-x scroll-with-animation :scroll-left="scrollLeft"
<block v-for="(item,index) in navList" :key="index"> style="width:auto;overflow:hidden;">
<view class='item' :class='active==item.article_category_id?"on":""' @click='tabSelect(item.article_category_id)'> <block v-for="(item,index) in navList" :key="index">
<view>{{item.title}}</view> <view class='item' style="text-align: center;" :class='active==item.article_category_id?"on":""'
<view class='line bg-color' v-if="active==item.article_category_id"></view> @click='tabSelect(item.article_category_id)'>
</view> <view>{{item.title}}</view>
</block> <view class='line bg-color' v-if="active==item.article_category_id"></view>
</scroll-view> </view>
</view> </block>
<view class='list'> </scroll-view>
<block v-for="(item,index) in articleList" :key="index"> </view>
<navigator :url='"/pages/news_details/index?id="+item.article_id' hover-class='none' class='item acea-row row-between-wrapper'> <view class='list'>
<view class='text acea-row row-column-between'> <block v-for="(item,index) in articleList" :key="index">
<view class='name line2'>{{item.title}}</view> <navigator :url='"/pages/news_details/index?id="+item.article_id' hover-class='none'
<view>{{item.create_time}}</view> class='item acea-row row-between-wrapper'>
</view> <view class='text acea-row row-column-between'>
<view class='pictrue'> <view class='name line2'>{{item.title}}</view>
<image :src='item.image_input'></image> <view>{{item.create_time}}</view>
</view> </view>
</navigator> <view class='pictrue'>
</block> <image :src='item.image_input'></image>
</view> </view>
</view> </navigator>
<view class='empty-box acea-row row-middle' v-if="articleList.length == 0 && (page != 1 || active== 0)"> </block>
<view class='pictrue'> </view>
<image src='../../static/images/empty-box.png'></image> </view>
<view class="txt">暂无新闻信息~</view> <view class='empty-box acea-row row-middle' v-if="articleList.length == 0 && (page != 1 || active== 0)">
</view> <view class='pictrue'>
</view> <image src='../../static/images/empty-box.png'></image>
<home></home> <view class="txt">暂无新闻信息~</view>
</view> </view>
</view>
<!-- <home></home> -->
</view>
</template> </template>
<script> <script>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | CRMEB [ CRMEB ] // | CRMEB [ CRMEB ]
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB // | Licensed CRMEBCRMEB
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { import {
getArticleCategoryList, getArticleCategoryList,
getArticleList, getArticleList,
getArticleHotList, getArticleHotList,
getArticleBannerList getArticleBannerList
} from '@/api/api.js'; } from '@/api/api.js';
import home from '@/components/home'; import home from '@/components/home';
export default { export default {
components: { components: {
home home
}, },
data() { data() {
return { return {
imgUrls: [], imgUrls: [],
articleList: [], articleList: [],
indicatorDots: false, indicatorDots: false,
circular: true, circular: true,
autoplay: true, autoplay: true,
interval: 3000, interval: 3000,
duration: 500, duration: 500,
navList: [], navList: [],
active: 0, active: 0,
page: 1, page: 1,
limit: 8, limit: 8,
status: false, status: false,
scrollLeft: 0 scrollLeft: 0
}; };
}, },
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow: function() {}, onShow: function() {},
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onLoad: function() { onLoad: function() {
this.getArticleCate(); this.getArticleCate();
this.status = false; this.status = false;
this.page = 1; this.page = 1;
this.articleList = []; this.articleList = [];
}, },
/** /**
* 页面上拉触底事件的处理函数 * 页面上拉触底事件的处理函数
*/ */
onReachBottom: function() { onReachBottom: function() {
this.getCidArticle(); this.getCidArticle();
}, },
methods: { methods: {
getArticleHot: function() { getArticleHot: function() {
let that = this; let that = this;
getArticleHotList().then(res => { getArticleHotList().then(res => {
that.$set(that, 'articleList', res.data); that.$set(that, 'articleList', res.data);
}); });
}, },
getArticleBanner: function() { getArticleBanner: function() {
let that = this; let that = this;
getArticleBannerList().then(res => { getArticleBannerList().then(res => {
that.imgUrls = res.data; that.imgUrls = res.data;
}); });
}, },
getCidArticle: function() { getCidArticle: function() {
let that = this; let that = this;
if (that.active == 0) return; if (that.active == 0) return;
let limit = that.limit; let limit = that.limit;
let page = that.page; let page = that.page;
let articleList = that.articleList; let articleList = that.articleList;
if (that.status) return; if (that.status) return;
getArticleList(that.active, { getArticleList(that.active, {
page: page, page: page,
limit: limit limit: limit
}).then(res => { }).then(res => {
let articleListNew = []; let articleListNew = [];
let len = res.length; let len = res.length;
articleListNew = articleList.concat(res.data.list); articleListNew = articleList.concat(res.data.list);
that.page++; that.page++;
that.$set(that, 'articleList', articleListNew); that.$set(that, 'articleList', articleListNew);
that.status = limit > len; that.status = limit > len;
that.page = that.page; that.page = that.page;
}); });
}, },
getArticleCate: function() { getArticleCate: function() {
let that = this; let that = this;
getArticleCategoryList().then(res => { getArticleCategoryList().then(res => {
this.active = res.data[0].article_category_id this.active = res.data[0].article_category_id
that.$set(that, 'navList', res.data); that.$set(that, 'navList', res.data);
this.getCidArticle(); this.getCidArticle();
}); });
}, },
tabSelect(active) { tabSelect(active) {
this.active = active; this.active = active;
if (this.active == 0) this.getArticleHot(); if (this.active == 0) this.getArticleHot();
else { else {
this.$set(this, 'articleList', []); this.$set(this, 'articleList', []);
this.page = 1; this.page = 1;
this.status = false; this.status = false;
this.getCidArticle(); this.getCidArticle();
} }
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
page { page {
background-color: #fff !important; background-color: #fff !important;
} }
.newsList .swiper {
width: 100%;
position: relative;
box-sizing: border-box;
padding: 0 30rpx;
}
.newsList .swiper swiper {
width: 100%;
height: 365rpx;
position: relative;
}
.newsList .swiper .slide-image {
width: 100%;
height: 335rpx;
border-radius: 6rpx;
}
// #ifdef MP-WEIXIN
.newsList .swiper .wx-swiper-dot {
width: 12rpx !important;
height: 12rpx !important;
border-radius: 0;
transform: rotate(-45deg);
transform-origin: 0 100%;
}
.newsList .swiper .wx-swiper-dot~.wx-swiper-dot {
margin-left: 5rpx;
}
.newsList .swiper .wx-swiper-dots.wx-swiper-dots-horizontal {
margin-bottom: -15rpx;
}
// #endif .newsList .swiper {
// #ifdef APP-PLUS || H5 width: 100%;
.newsList .swiper .uni-swiper-dot { position: relative;
width: 12rpx !important; box-sizing: border-box;
height: 12rpx !important; padding: 0 30rpx;
border-radius: 0; }
transform: rotate(-45deg);
transform-origin: 0 100%; .newsList .swiper swiper {
} width: 100%;
.newsList .swiper .uni-swiper-dot~.uni-swiper-dot { height: 365rpx;
margin-left: 5rpx; position: relative;
} }
.newsList .swiper .uni-swiper-dots.uni-swiper-dots-horizontal {
margin-bottom: -15rpx; .newsList .swiper .slide-image {
} width: 100%;
// #endif height: 335rpx;
.newsList .nav { border-radius: 6rpx;
padding: 0 30rpx; }
width: 100%;
white-space: nowrap; // #ifdef MP-WEIXIN
box-sizing: border-box; .newsList .swiper .wx-swiper-dot {
margin-top: 43rpx; width: 12rpx !important;
} height: 12rpx !important;
.newsList .nav .item { border-radius: 0;
display: inline-block; transform: rotate(-45deg);
font-size: 32rpx; transform-origin: 0 100%;
color: #999; }
min-width: 130rpx;
white-space: nowrap; .newsList .swiper .wx-swiper-dot~.wx-swiper-dot {
overflow: hidden; margin-left: 5rpx;
text-overflow: ellipsis; }
position: relative;
padding-bottom: 20rpx; .newsList .swiper .wx-swiper-dots.wx-swiper-dots-horizontal {
} margin-bottom: -15rpx;
.newsList .nav .item.on { }
color: #282828;
} // #endif
.newsList .nav .item~.item { // #ifdef APP-PLUS || H5
margin-left: 46rpx; .newsList .swiper .uni-swiper-dot {
} width: 12rpx !important;
.newsList .nav .item .line { height: 12rpx !important;
width: 24rpx; border-radius: 0;
height: 4rpx; transform: rotate(-45deg);
border-radius: 2rpx; transform-origin: 0 100%;
margin: 10rpx auto 0 auto; }
position: absolute;
bottom: 5rpx; .newsList .swiper .uni-swiper-dot~.uni-swiper-dot {
left: 50%; margin-left: 5rpx;
margin-left: -12rpx; }
}
.newsList .list .item { .newsList .swiper .uni-swiper-dots.uni-swiper-dots-horizontal {
margin: 0 30rpx; margin-bottom: -15rpx;
border-bottom: 1px solid #f0f0f0; }
padding: 35rpx 0;
} // #endif
.newsList .list .item .pictrue { .newsList .nav {
width: 250rpx; padding: 0 30rpx;
height: 156rpx; width: 100%;
} white-space: nowrap;
.newsList .list .item .pictrue image { box-sizing: border-box;
width: 100%; margin-top: 43rpx;
height: 100%; }
border-radius: 6rpx;
} .newsList .nav .item {
.newsList .list .item .text { display: inline-block;
width: 420rpx; font-size: 32rpx;
height: 156rpx; color: #999;
font-size: 24rpx; min-width: 130rpx;
color: #999; white-space: nowrap;
} overflow: hidden;
.newsList .list .item .text .name { text-overflow: ellipsis;
font-size: 30rpx; position: relative;
color: #282828; padding-bottom: 20rpx;
} }
.newsList .list .item .picList .pictrue {
width: 335rpx; .newsList .nav .item.on {
height: 210rpx; color: #282828;
margin-top: 30rpx; }
}
.newsList .list .item .picList.on .pictrue { .newsList .nav .item~.item {
width: 217rpx; margin-left: 46rpx;
height: 136rpx; }
}
.newsList .list .item .picList .pictrue image { .newsList .nav .item .line {
width: 100%; width: 24rpx;
height: 100%; height: 4rpx;
border-radius: 6rpx; border-radius: 2rpx;
} margin: 10rpx auto 0 auto;
.newsList .list .item .time { position: absolute;
text-align: right; bottom: 5rpx;
font-size: 24rpx; left: 50%;
color: #999; margin-left: -12rpx;
margin-top: 22rpx; }
}
.noCommodity{ .newsList .list .item {
border: none; margin: 0 30rpx;
} border-bottom: 1px solid #f0f0f0;
.empty-box{ padding: 35rpx 0;
display: flex; }
flex-direction: column;
justify-content: center; .newsList .list .item .pictrue {
align-items: center; width: 250rpx;
margin-top: 200rpx; height: 156rpx;
image{ }
width: 414rpx;
height: 240rpx; .newsList .list .item .pictrue image {
} width: 100%;
.txt{ height: 100%;
font-size: 26rpx; border-radius: 6rpx;
color: #999; }
text-align: center;
} .newsList .list .item .text {
} width: 420rpx;
</style> height: 156rpx;
font-size: 24rpx;
color: #999;
}
.newsList .list .item .text .name {
font-size: 30rpx;
color: #282828;
}
.newsList .list .item .picList .pictrue {
width: 335rpx;
height: 210rpx;
margin-top: 30rpx;
}
.newsList .list .item .picList.on .pictrue {
width: 217rpx;
height: 136rpx;
}
.newsList .list .item .picList .pictrue image {
width: 100%;
height: 100%;
border-radius: 6rpx;
}
.newsList .list .item .time {
text-align: right;
font-size: 24rpx;
color: #999;
margin-top: 22rpx;
}
.noCommodity {
border: none;
}
.empty-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 200rpx;
image {
width: 414rpx;
height: 240rpx;
}
.txt {
font-size: 26rpx;
color: #999;
text-align: center;
}
}
</style>

View File

@ -179,7 +179,8 @@
</view> </view>
<view class="tab-cont" :style="viewColor"> <view class="tab-cont" :style="viewColor">
<!-- diy组件 --> <!-- diy组件 -->
<view v-show="diyActive == 0 && tabActive == 1"> <!-- <view v-show="diyActive == 0 && tabActive == 1"> -->
<view v-show="false">
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<view v-for="(item, index) in styleConfig" :key="index"> <view v-for="(item, index) in styleConfig" :key="index">
<block v-if="item.name != 'headerSerch' && item.name != 'tabNav'"> <block v-if="item.name != 'headerSerch' && item.name != 'tabNav'">
@ -429,8 +430,14 @@
import request from "@/utils/request.js"; import request from "@/utils/request.js";
import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue' import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue'
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue' import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'
import { getStoreDetail, getStoreGoods, getStoreCategory, followStore, unfollowStore, import {
storeServiceList } from '@/api/store.js'; getStoreDetail,
getStoreGoods,
getStoreCategory,
followStore,
unfollowStore,
storeServiceList
} from '@/api/store.js';
import { initiateAssistApi, getTopicList } from '@/api/activity.js'; import { initiateAssistApi, getTopicList } from '@/api/activity.js';
import { getShopCoupons, setCouponReceive, getDiy } from '@/api/api.js'; import { getShopCoupons, setCouponReceive, getDiy } from '@/api/api.js';
import { getUserInfo } from '@/api/user.js'; import { getUserInfo } from '@/api/user.js';
@ -512,7 +519,7 @@
isColumn: true, // isColumn: true, //
navShow: false, navShow: false,
navActive: 0, navActive: 0,
diyActive: 0, diyActive: 1,
tabActive: 0, // tabActive: 0, //
isCoupon: 0, isCoupon: 0,
keyword: '', keyword: '',
@ -592,6 +599,21 @@
value: 4, value: 4,
} }
], ],
tabs3: [{
icon: 'icon-gouwu_o',
name: '商品',
value: 3,
},
{
icon: 'icon-yingyongAPP_o',
name: '分类',
value: 2,
}, {
icon: 'icon-yizhan_o',
name: '里海云仓',
value: 6,
}
],
tabs: [], tabs: [],
storeScroll: true, storeScroll: true,
storeTop: 0, storeTop: 0,
@ -599,7 +621,7 @@
currSpid: "", currSpid: "",
topicList: [], topicList: [],
service_open: false, service_open: false,
type: 0, type: 3,
statusBarHeight: 0 statusBarHeight: 0
} }
}, },
@ -658,7 +680,7 @@
}, },
}, },
onLoad: function(options) { onLoad: function(options) {
this.type = parseInt(options.type) || 1 this.type = parseInt(options.type) || 3
this.id = options.mer_id || options.id || 0; this.id = options.mer_id || options.id || 0;
this.isCoupon = options.coupon || 0; this.isCoupon = options.coupon || 0;
this.diyActive = options.order || 0; this.diyActive = options.order || 0;
@ -877,6 +899,7 @@
this.tabs = this.tabs2 this.tabs = this.tabs2
this.service_open = false this.service_open = false
} }
this.tabs = this.tabs3
this.tab(this.type) this.tab(this.type)
// #ifdef H5 // #ifdef H5
this.ShareInfo(); this.ShareInfo();
@ -894,12 +917,14 @@
}, },
// //
getGoods: function() { getGoods: function() {
console.log('获取店铺商品');
let that = this; let that = this;
if (that.loadend) return; if (that.loadend) return;
if (that.loading) return; if (that.loading) return;
if (that.goodsLoading) return; if (that.goodsLoading) return;
that.goodsLoading = true; that.goodsLoading = true;
that.loadTitle = ''; that.loadTitle = '';
console.log('111');
getStoreGoods(that.id, that.where).then(res => { getStoreGoods(that.id, that.where).then(res => {
that.goodsLoading = false; that.goodsLoading = false;
let list = res.data.list; let list = res.data.list;

View File

@ -1,19 +1,12 @@
<template> <template>
<view class="Circle_friends"> <view class="Circle_friends">
<view class="circle_friends_wrapper"> <view class="circle_friends_wrapper">
<zbpSwiper></zbpSwiper> <zbpSwiper :isSelectPlace="true" @selectPlce="selectPlce"></zbpSwiper>
<view class="shop_wrapper"> <view class="shop_wrapper">
<navigator class="l_yun" hover-class="none" <navigator class="l_yun" hover-class="none"
:url="`/pages/nongKe/supply_chain/supplier?type_id=10&street_id=${sotreParam.street_id}`"> :url="`/pages/nongKe/supply_chain/supplier?type_id=10&street_id=${street_id}`">
<!-- <view class="yun_title flex_a_c">
<view class="">泸州市{{district}}{{town}}</view>
<view class="iconlihai lihai-gengduo" @click.stop="showPicker=true"></view>
</view>
<view class="text_cont">
<text class="name_town">{{town}}</text>供销综合云市场
</view> -->
<view class="text-name"> <view class="text-name">
<text>通滩镇</text> <text>{{town||JSON.parse(location).address_component.street}}</text>
<view class="name_town">-供销综合云市场-</view> <view class="name_town">-供销综合云市场-</view>
</view> </view>
</navigator> </navigator>
@ -29,14 +22,7 @@
</navigator> </navigator>
</view> </view>
<view class="article_box"> <view class="article_box">
<!-- <view class="title-box flex_a_c_j_sb"> <block v-for="(item, index) in recoList.slice(0,2)" :key="index">
<text>热点资讯</text>
<navigator class="flex_a_c" hover-class="none" url="/pages/news_list/index">
更多
<view class="iconfont icon-gengduo3"></view>
</navigator>
</view> -->
<block v-for="(item,index) in articleList" :key="index">
<navigator :url='"/pages/news_details/index?id="+item.article_id' hover-class='none' class='article-item'> <navigator :url='"/pages/news_details/index?id="+item.article_id' hover-class='none' class='article-item'>
<view class='text'> <view class='text'>
<view class='name'>{{item.title}}</view> <view class='name'>{{item.title}}</view>
@ -50,20 +36,20 @@
</view> </view>
<view class="tabs_wrapper"> <view class="tabs_wrapper">
<view class="title flex_a_c">最新动态</view> <u-tabs :list="tabsData.list" @click="tabsChange" keyName="title"></u-tabs>
</view> </view>
<view class="goods"> <view class="goods">
<block v-for="(item,index) in cateGoods" :key="item.uid"> <block v-for="(item,index) in articleList" :key="index">
<view class="goods_item" @click="gogogo(item)"> <view class="goods_item" @click="gogogo(item)">
<image class="goods_img" :src="item.image[0]" mode="aspectFill"></image> <image class="goods_img" :src="item.image_input" mode="aspectFill"></image>
<view class="botm"> <view class="botm">
<view class="title">{{item.title}}</view> <view class="title">{{item.title}}</view>
<view class="goods_info flex_a_c"> <view class="goods_info flex_a_c">
<view class="l_info flex_a_c"> <view class="l_info flex_a_c">
<image :src="(item.author && item.author.avatar) || '/static/images/f.png'" mode="aspectFill" <image :src="(item.author && item.author.avatar) || '/static/images/f.png'" mode="aspectFill"
class="g_img"></image> class="g_img"></image>
<view class="g_name">{{item.author && item.author.nickname}}</view> <view class="g_name">{{item.author}}</view>
</view> </view>
<view class="nice_box" @click.stop="giveStart(item)"> <view class="nice_box" @click.stop="giveStart(item)">
<text class="iconfont" :class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text> <text class="iconfont" :class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text>
@ -78,8 +64,6 @@
<u-empty :show="emptyShow" mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png"></u-empty> <u-empty :show="emptyShow" mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png"></u-empty>
</view> </view>
</view> </view>
<u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm"
@cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker>
<!-- <view class="bg_color"></view> --> <!-- <view class="bg_color"></view> -->
@ -97,171 +81,82 @@
import zbpSwiper from '@/components/zbpSwiper' import zbpSwiper from '@/components/zbpSwiper'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import mTabbar from '@/components/m-tabbar/m-tabbar.vue' import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
import WaterfallsFlow from '@/components/plantWaterfallsFlow/WaterfallsFlow.vue' import { graphicStartApi } from '@/api/community.js'
import { getSlideAPI, getArea, getStreet, getArticleListAPI } from '@/api/article.js' import { getArticleList, getArticleCategoryList } from '@/api/api.js'
import { graphicLstApi, getTopicList, graphicStartApi } from '@/api/community.js'
import { getDiy, getArticleCategoryList, getArticleList } from '@/api/api.js'
import { Toast } from '@/libs/uniApi' import { Toast } from '@/libs/uniApi'
export default { export default {
components: { components: {
WaterfallsFlow,
mTabbar, mTabbar,
zbpSwiper zbpSwiper
}, },
data() { data() {
return { return {
showPicker: false,
columnData: [],
show: false,
sotreParam: {
street_id: '',
page: 1
},
swiper: {
url: [{
img: ''
}],
indicatorDots: true, //
vertical: false, //
autoplay: true, //
interval: 2000, //
duration: 500 //
},
tabsData: { tabsData: {
list: [], list: [],
tabsActive: 0, tabsActive: 0
activeStyle: {
color: '#F84221',
fontWeight: 'bold',
borderRadius: '100px',
backgroundColor: '#fff',
padding: '15.79rpx 21.05rpx'
},
inactiveStyle: {
color: '#fff',
padding: '15.79rpx 21.05rpx',
}
}, },
cateGoods: [],
where: {
category_id: 0,
page: 1,
limit: 30
},
currentItemId: 69, // 0 || 69
keyword: '',
district: '',
town: '', town: '',
emptyShow: false, emptyShow: false,
articleList: [] articleList: [],
recoList: [],
street_id: ''
} }
}, },
onLoad() { onLoad() {
this.getBanner()
this.getCateList()
this.getGoods()
this.articleHotList()
this.Area()
uni.$on('resetLocation', function() { uni.$on('resetLocation', function() {
console.log('resetLocation'); console.log('resetLocation');
}) })
this.getArticle()
getArticleList(19).then(res => {
this.recoList = res.data.list
})
}, },
onShow() {}, onShow() {},
computed: mapGetters(['location']), computed: mapGetters(['location']),
methods: { methods: {
selectPlce(e) {
this.town = e.value[1].name
},
navigat() { navigat() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/store/settledApply/settledApply' url: '/pages/store/settledApply/settledApply'
}) })
}, },
async articleHotList() {
const res = await getArticleList(19)
// console.log('res', res);
this.articleList = res.data.list
},
gogogo(item) { gogogo(item) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/plantGrass/plant_detail/index?id=' + item.community_id url: '/pages/news_details/index?id=' + item.article_id
}) })
}, },
async getArticle() {
let list = []
const { data } = await getArticleCategoryList()
data.map((item, index) => {
if (item.title !== '推荐') {
list.push(item)
}
})
this.tabsData.list = list
this.getArticleList(list[0].article_category_id)
},
async getArticleList(id) {
const { data } = await getArticleList(id)
this.articleList = data.list
},
//
giveStart(item) { giveStart(item) {
let status = item.relevance_id ? 0 : 1 // let status = item.status ? 0 : 1
graphicStartApi(item.community_id, { status: status }).then(res => { // graphicStartApi(item.community_id, { status: status }).then(res => {
Toast(res.message) // Toast(res.message)
this.getGoods() // this.getArticleList()
}) // })
},
dianji() {
this.show = !this.show
},
likeToggle(item) {
console.log('item', item);
},
//
getGoods: function() {
// category_id=69&page=1&limit=30
console.log('id', this.currentItemId);
graphicLstApi({
...this.where,
category_id: this.currentItemId
}).then(res => {
this.cateGoods = res.data.list
res.data.list.length <= 0 ? this.emptyShow = true : this.emptyShow = false
})
},
/*获取分类列表*/
async getCateList() {
const {
data
} = await getTopicList()
this.tabsData.list = data
}, },
tabsChange(item) { tabsChange(item) {
this.getArticleList(item.article_category_id)
this.street_id = item.id this.street_id = item.id
this.tabsData.tabsActive = item.index this.tabsData.tabsActive = item.index
}, },
async getBanner() {
const { data } = await getDiy({ id: 0 })
if (data.value['1683638943100000']) {
this.swiper.url = data.value['1683638943100000'].swiperConfig.list
} else {
this.swiper.url = data.value['1683875164005000'].swiperConfig.list
}
},
//
changeHandler(e) {
const { columnIndex, value, values, index, picker = this.$refs.uPicker } = e;
if (columnIndex === 0) {
getStreet({ area_code: value[0]['code'] }).then(res => {
this.$refs.uPicker.setColumnValues(1, res.data);
});
}
},
confirm(e) {
this.district = e.value[0].name
this.town = e.value[1].name
this.sotreParam.page = 1
this.sotreParam.street_id = e.value[1].code
this.showPicker = false
},
Area() {
getArea({ city_code: 510500 }).then(res => {
this.$refs.uPicker.setColumnValues(0, res.data);
this.Street(res.data[0]['code']);
});
},
Street(code) {
getStreet({ area_code: code }).then(res => {
this.$refs.uPicker.setColumnValues(1, res.data);
});
},
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.getBanner()
this.getCateList()
this.getGoods()
this.articleHotList()
this.Area()
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
} }
} }
@ -283,68 +178,6 @@
z-index: 2; z-index: 2;
} }
.supply_chains-head {
margin-bottom: 31.58rpx;
.swiper {
width: 100%;
height: 500rpx;
margin: 0 auto;
.swi_item {
width: 100%;
height: 500rpx;
}
}
}
.bg_color {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
height: 940.35rpx;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/home_bg.png") no-repeat;
background-size: cover;
}
.search_wrapper {
width: 694.74rpx;
margin: 0 auto;
.iconlihai {
color: #fff;
font-size: 31.58rpx;
}
.search_content {
// flex: 1;
// margin: 0 auto;
width: 575.44rpx;
height: 66.67rpx;
padding: 2px 2px 2px 21.05rpx;
border-radius: 100px;
background-color: #fff;
.icon-sousuo {
font-weight: bold;
color: #f84221;
margin-right: 17.54rpx;
}
.search_btn {
color: #fff;
width: 135.09rpx;
height: 59.65rpx;
line-height: 59.65rpx;
background: #f84221;
border-radius: 100px;
}
}
}
.shop_wrapper { .shop_wrapper {
height: 192.98rpx; height: 192.98rpx;
width: 694.74rpx; width: 694.74rpx;
@ -491,10 +324,6 @@
margin: 38.6rpx auto; margin: 38.6rpx auto;
margin-bottom: 21.05rpx; margin-bottom: 21.05rpx;
::v-deep .u-tabs__wrapper__nav__item {
padding: 0 !important;
}
.title { .title {
font-size: 31.58rpx; font-size: 31.58rpx;
font-weight: bold; font-weight: bold;