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.

939 lines
25 KiB

3 months ago
<template>
<view class="page">
3 months ago
3 months ago
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
3 months ago
<selShop :showName="false" :showQR="true" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
3 months ago
</view>
3 months ago
3 months ago
<scroll-view class="scrolllist" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="tabicl" v-for="(item, index) in list" :key="index" :class="index==tabCurrentIndex?'cur':''" @tap="tabSelect" :data-id="index">
<view class="ptext">{{item.name}}</view>
<view class="pline"></view>
</view>
</scroll-view>
3 months ago
<swiper class="swiper-box" :duration="300" :current="tabCurrentIndex" @animationfinish="animationfinish" @change="handleChange">
3 months ago
<swiper-item class="swiper-item" v-for="(tabItem,index) in list" :key="tabItem.id">
3 months ago
<!-- 了解场馆 -->
<scroll-view v-if="list[index].id==3" scroll-y style="height: 100%;width: 100%;">
3 months ago
<scroll-view class="scrolltab" scroll-x="true" scroll-with-animation>
<view class="tab" :class="0==tabIndex?'cur':''" @tap="tabSelectC" :data-id="0">
企业介绍
</view>
<view class="tab" :class="1==tabIndex?'cur':''" @tap="tabSelectC" :data-id="1">
创始人
</view>
<view class="tab" :class="2==tabIndex?'cur':''" @tap="tabSelectC" :data-id="2">
店面位置
</view>
</scroll-view>
<view v-if="0==tabIndex" class="bcontent">
<!-- <image style="width: 100%;height: 200rpx; margin: 20rpx auto;" src="/static/image/three.jpg" mode="aspectFit"></image> -->
<mp-html :content="html1" :markdown="true" :lazy-load="true"/>
</view>
<view v-if="1==tabIndex" class="bcontent">
<mp-html :content="html2" :markdown="true" :lazy-load="true"/>
</view>
<view v-if="2==tabIndex" class="adrcontent">
<view class="adrcon" v-for="(item, i) in shoplist" :key="i">
<view class="adrow">
3 months ago
<uni-icons type="shop-filled" color="#00a89b" size="25"></uni-icons>
3 months ago
<view class="txt">{{item.storeName}}</view>
<image class="qrimg" src="/static/image/qr.png" mode="aspectFit"></image>
3 months ago
<uni-icons type="phone" color="#00a89b" size="25" @click="gotoPhone(item.phone)" ></uni-icons>
3 months ago
</view>
<view class="adrow">
3 months ago
<uni-icons type="map-pin-ellipse" color="#00a89b" size="24"></uni-icons>
3 months ago
<view class="atxt">{{item.address}}</view>
<uni-icons type="paperplane" color="#868c99" size="25" @click="gotoAddress(item.address)"></uni-icons>
</view>
</view>
<!-- <view class="adrcon">
<view class="adrow">
3 months ago
<uni-icons type="shop-filled" color="#00a89b" size="25"></uni-icons>
3 months ago
<view class="txt">淮海中路店</view>
<image class="qrimg" src="/static/image/qr.png" mode="aspectFit"></image>
3 months ago
<uni-icons type="phone" color="#00a89b" size="25"></uni-icons>
3 months ago
</view>
<view class="adrow">
3 months ago
<uni-icons type="map-pin-ellipse" color="#00a89b" size="24"></uni-icons>
3 months ago
<view class="atxt">上海市黄浦区淮海中路918号</view>
<uni-icons type="paperplane" color="#868c99" size="25"></uni-icons>
</view>
</view> -->
</view>
</scroll-view>
3 months ago
<!-- 教练风采 -->
<scroll-view v-else-if="list[index].id==5" scroll-y style="height: 100%;width: 100%;">
3 months ago
<view class="tcard" v-for="(item, i) in tabItem.slist" :key="i" @tap="gotoTeacher(item)">
<view class="limg imgload">
<image v-if="item.avatar" :src="getimgRemoteFile(item.avatar)" mode="aspectFill"></image>
</view>
<view class="tlcon">
<view class="tlname">
{{item.userName}}
</view>
<view class="tlinfo">
{{item.intro}}
</view>
</view>
</view>
<uni-load-more iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
3 months ago
<!-- 健康指数体质测评 -->
<scroll-view v-else-if="list[index].id==2||list[index].id==10" scroll-y style="height: 100%;width: 100%;">
3 months ago
<view class="scontent">
<uni-forms ref="valiForm" :modelValue="valiFormData">
<uni-forms-item label="性别" labelWidth="180rpx" required name="contact">
3 months ago
<uni-data-checkbox v-model="valiFormData.gender" :localdata="sexs" />
3 months ago
</uni-forms-item>
<uni-forms-item label="年龄" labelWidth="180rpx" required name="phone">
<uni-easyinput type="number" v-model="valiFormData.age" maxlength="12" placeholder="请输入年龄" />
</uni-forms-item>
<uni-forms-item label="身高cm" labelWidth="180rpx" required name="phone">
<uni-easyinput type="number" v-model="valiFormData.height" maxlength="12" placeholder="请输入身高" />
</uni-forms-item>
<uni-forms-item label="体重kg" labelWidth="180rpx" required name="phone">
<uni-easyinput type="number" v-model="valiFormData.weight" maxlength="12" placeholder="请输入体重" />
</uni-forms-item>
</uni-forms>
<button type="primary" class="btn" @click="submit('valiForm')"></button>
</view>
</scroll-view>
3 months ago
3 months ago
<scroll-view v-else scroll-y style="height: 100%;width: 100%;">
<view class="card" v-for="(item, i) in tabItem.slist" :key="i" @tap="gotoDetail(item,tabItem.name,index)">
<view class="limg imgload">
<image v-if="item.image" :src="getimgRemoteFile(item.image)" mode="aspectFill"></image>
</view>
<view class="tlcon">
<view class="tlname">
{{item.title}}
</view>
<view class="tlinfo">
{{item.content}}
</view>
<view class="tother">
<uni-icons type="eye" color="#868c99" size="18"></uni-icons>
<view class="txt1">{{item.readNum?item.readNum:0}}</view>
<uni-icons type="calendar" color="#868c99" size="17"></uni-icons>
<view class="txt">{{item.modifyTime?item.modifyTime:(item.startTime?item.startTime:'')}}</view>
</view>
</view>
</view>
<uni-load-more iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
3 months ago
3 months ago
</swiper-item>
</swiper>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
<script>
import { myCache,getcartNum,getRemoteFile } from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
import selShop from "../components/selShop.vue";
export default {
components: {
openlogin,
selShop
},
data() {
return {
openId:"",
phone:"",
userid:"",
tabCurrentIndex: 0,
scrollLeft: 0,
shopid:myCache('myshopid')?myCache('myshopid'):'',
shop:myCache('myshop')?myCache('myshop'):'',
tabIndex: 0,
3 months ago
id:1,
3 months ago
sexs: [{
3 months ago
text: '男性',
value: "male"
},
{
text: '女性',
value: "female"
}],
3 months ago
valiFormData: {// 校验表单数据
id: null,
3 months ago
gender: '',
3 months ago
age: '',
height: '',
weight: '',
},
//tabs
3 months ago
list: myCache('sortCache'),
// [
// {
// name:"瑜伽传承",
// id:1,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"了解场馆",
// id:2,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"教练风采",
// id:3,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"练习瞬间",
// id:4,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"瑜伽欣赏",
// id:5,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"瑜伽常识",
// id:6,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
// {
// name:"健康饮食",
// id:7,
// loadStatus:'more',//'more', // 'noMore',
// slist:[
// ]
// },
// {
// name:"健康指数",
// id:8,
// loadStatus:'noMore',//'more', // 'noMore',
// slist:[]
// }
// ],
3 months ago
html1:`三朵蘭瑜伽机构由从事瑜伽行业18年的全国知名瑜伽导师冉洪涛老师创办并带领一批行业内瑜伽教学经验8年以上的优秀瑜伽老师成立核心课程研发团队立足于将在世界传承几千年的瑜伽修炼体系精髓进行实践化和实用化结合中医的经络学和中医理疗方法针对现代人体质和容易出现的健康问题研发出多套经典的瑜伽实用课程经过几年在全国的推广和瑜伽会员的习练测试已经让越来越多的人恢复了健康和活力
<br>三朵蘭以预防未病助人健康为己任一直为瑜伽而传播为更多人保持和恢复健康助力让更多人通过练习瑜伽拥有健康的体魄平和宁静的内心幸福和快乐的生活<br>
`,
html2:`三朵蘭瑜伽机构由从事瑜伽行业18年的全国知名瑜伽导师冉洪涛老师创办并带领一批行业内瑜伽教学经验8年以上的优秀瑜伽老师成立核心课程研发团队立足于将在世界传承几千年的瑜伽修炼体系精髓进行实践化和实用化结合中医的经络学和中医理疗方法针对现代人体质和容易出现的健康问题研发出多套经典的瑜伽实用课程经过几年在全国的推广和瑜伽会员的习练测试已经让越来越多的人恢复了健康和活力
<br>三朵蘭以预防未病助人健康为己任一直为瑜伽而传播为更多人保持和恢复健康助力让更多人通过练习瑜伽拥有健康的体魄平和宁静的内心幸福和快乐的生活<br>
`,
shoplist:[],
// 校验规则
rules: {
3 months ago
gender: {
3 months ago
rules: [{
required: true,
errorMessage: '请选择性别'
}]
},
age: {
rules: [{
required: true,
errorMessage: '请输入年龄'
}]
},
height: {
rules: [{
required: true,
errorMessage: '请输入身高'
}]
},
weight: {
rules: [{
required: true,
errorMessage: '请输入体重'
}]
},
},
};
},
onLoad(option) {
if(option.id||option.id==0){
3 months ago
this.id=option.id;
3 months ago
}
3 months ago
// 获取分类信息
this.getSort();
3 months ago
},
onShow(){
3 months ago
3 months ago
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
var cartnum=getcartNum();
if(cartnum>0){
// 底部菜单消息角标
uni.setTabBarBadge({
//显示未读消息条数
index: 4,
text: cartnum+''
});
}
else{
uni.removeTabBarBadge({
index: 4
})
}
},
mounted() {
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
},
onPullDownRefresh() {
setTimeout(()=>{
uni.stopPullDownRefresh()
},100);
},
methods: {
3 months ago
async getSort() {
// 分类
const {data: res} = await uni.$http.get('/api/index/getIndex');
if (res&&res.data) {
myCache('sortCache',res.data);
this.list=[];
res.data.forEach((cell,ii)=>{
if(cell.id==this.id){
this.tabCurrentIndex=ii;
this.$forceUpdate();
}
this.list.push({
name:cell.name,
id:cell.id,
loadStatus:'more',//'more', // 'noMore',
slist:[]
});
this.$forceUpdate();
});
// 加载数据
this.loadData();
}
},
3 months ago
gotoPhone(phone){
//#ifdef MP-WEIXIN
uni.makePhoneCall({
phoneNumber: phone
});
//#endif
//#ifdef APP-PLUS
plus.device.dial(phone, true);
//#endif
},
gotoAddress(address){
console.log(address);
},
getimgRemoteFile(img){
if(img){
// console.log(getRemoteFile(img))
// return getRemoteFile(img)
return img;
}
else{
return require("@/static/image/nopic.png");
}
},
// 切换门店
changeArea(item){
console.log(item)
this.shop=item.storeName;
this.shopid=item.id;
// 内容切换
3 months ago
this.list=[];
3 months ago
this.html1=``;
this.html2=``;
this.$forceUpdate();
3 months ago
this.getSort();
3 months ago
},
iflogin(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
if(this.userid==""||this.userid=="0"||this.phone==""){
uni.navigateTo({
url: `/pages/login/login`
});
return false;
}
else{
return true;
}
},
getPhoneNumber(e){
if(e.phone){
this.phone = e.phone
}
if(e.userid){
this.userid = e.userid
}
},
async getList() {
if(this.list[this.tabCurrentIndex].loadStatus!=="noMore")
{
3 months ago
3 months ago
var para={
visitStore:this.shopid
}
var url="/api/inherit/getList";
3 months ago
if(this.list[this.tabCurrentIndex].id==1){
// 瑜伽是一种生活(瑜伽传承)
3 months ago
url="/api/inherit/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==3){
3 months ago
// 了解场馆
url="/api/store/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==5){
3 months ago
// 教练风采
url="/api/context/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==6){
// 精彩瞬间(练习瞬间)
3 months ago
url="/api/moments/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==11){
3 months ago
// 瑜伽欣赏
url="/api/appreciate/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==12){
3 months ago
// 瑜伽常识
url="/api/sense/getList";
}
3 months ago
else if(this.list[this.tabCurrentIndex].id==9){
// 吃瘦练美(健康饮食)
3 months ago
url="/api/healthy/getList";
}
3 months ago
else{
return false;
}
uni.showLoading({
title: '数据加载中...'
});
// 获取数据
3 months ago
const {data: res} = await uni.$http.post(url, para);
if(res.data){
this.list[this.tabCurrentIndex].loadStatus="noMore";
3 months ago
if(this.list[this.tabCurrentIndex].id==3){
3 months ago
console.log(res.data)
// 了解场馆
var companyIntroduction=res.data&&res.data.companyIntroduction?res.data.companyIntroduction:'';
if(companyIntroduction){
this.html1=companyIntroduction.profile; //企业简介
this.html2=companyIntroduction.founder; //创始人
}
this.shoplist=res.data&&res.data.storeList?res.data.storeList:[];
this.$forceUpdate();
}
else{
this.list[this.tabCurrentIndex].slist=res.data;
3 months ago
this.$forceUpdate();
3 months ago
}
this.$forceUpdate();
}
else{
this.list[this.tabCurrentIndex].loadStatus="noMore";
this.$forceUpdate();
}
}
},
loadData(){
// 加载
if(this.list[this.tabCurrentIndex].loadStatus=="more") {
this.list[this.tabCurrentIndex].loadStatus="loading";
setTimeout(() => {
this.getList();
}, 300);
}
},
tabSelect(e) {
3 months ago
console.log("tabSelect");
if(this.list[e.currentTarget.dataset.id].id==4){
// 课程预约
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
else{
// 课程预约
uni.navigateTo({
url: `/pages/user/courselist`
});
}
}
else if(this.list[e.currentTarget.dataset.id].id==7){
// 大咖分享(线上大咖课)
uni.reLaunch({
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.currentTarget.dataset.id].id==8){
// 教练培训
uni.reLaunch({
url: `/pages/product/list`
});
}
else{
this.tabCurrentIndex = e.currentTarget.dataset.id;
this.$forceUpdate();
}
},
animationfinish({ detail: { current } }) {
console.log("animationfinish")
// this.tabCurrentIndex = current;
},
handleChange(e) {
//原在animationfinish中的操作转移到这里
console.log("handleChange");
if(this.list[e.detail.current].id==4){
// 课程预约
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
else{
// 课程预约
uni.navigateTo({
url: `/pages/user/courselist`
});
}
}
else if(this.list[e.detail.current].id==7){
// 大咖分享(线上大咖课)
uni.reLaunch({
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.detail.current].id==8){
// 教练培训
uni.reLaunch({
url: `/pages/product/list`
});
}
else{
this.tabCurrentIndex = e.detail.current;
this.$forceUpdate();
this.tabChangeDo();
}
},
tabChangeDo(){
this.scrollLeft = (this.tabCurrentIndex - 1) * 90;
if(this.list[this.tabCurrentIndex].id==2||this.list[this.tabCurrentIndex].id==10){
var that=this;
// 健康指数 体质测评
3 months ago
setTimeout(() => {
console.log(that.$refs.valiForm)
if(that.$refs.valiForm){
that.$refs.valiForm[0].setRules(that.rules);
}
}, 1000);
}
3 months ago
else{
// 重新加载 暂不需要加载
// this.list[this.tabCurrentIndex].loadStatus="more";
// this.list[this.tabCurrentIndex].slist=[];
this.loadData();
}
3 months ago
},
tabSelectC(e) {
3 months ago
console.log("tabSelectC")
3 months ago
this.tabIndex = e.currentTarget.dataset.id;
},
3 months ago
gotoDetail(item,name,index){
3 months ago
// 详情
item["name"]=name;
var data=encodeURIComponent(JSON.stringify(item));
3 months ago
var type=this.list[index].id;
3 months ago
uni.navigateTo({
url: `/pages/category/detail?data=${data}&type=${type}`
});
},
gotoTeacher(item){
// 详情
uni.navigateTo({
url: `/pages/teacher/detail?id=${item.userId}&name=${item.userName}`
});
},
async submit(ref) {
var that = this;
this.$refs[ref][0].validate().then(res => {
console.log('success', res);
that.savedo();
}).catch(err => {
console.log('err', err);
})
},
async savedo(){
try{
3 months ago
const {data: res} = await uni.$http.post('/api/healthy/calculateBim', this.valiFormData);
if(res&&res.success){
var bim=res.data?parseFloat(res.data):0;
if(bim){
var msg="";
if(bim<=18.5){
msg="您的体重过轻请联系馆主或教练领取A方案!";
}
else if(bim>18.5&&bim<=24){
msg="太棒了您的体重非常健康请联系馆主或教练领取B方案保持!";
}
else if(bim>24&&bim<28){
msg="您的体重超重请联系馆主或教练领取C方案保持!";
}
else if(bim>=28){
msg="您的体重肥胖请联系馆主或教练领取D方案保持!";
}
uni.showModal({
title: '提示',
content: msg,
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
else{
uni.showModal({
title: '提示',
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
}
3 months ago
}
3 months ago
else{
uni.showModal({
title: '提示',
content: res.message? res.message:'计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
3 months ago
}
}
catch{
3 months ago
uni.showModal({
title: '提示',
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
3 months ago
}
},
// 获取状态栏高度
geStatusBarHeight(){
return uni.getSystemInfoSync()['statusBarHeight'];
},
// 获取导航栏高度
getNavBarHeight(){
return 45+uni.getSystemInfoSync()['statusBarHeight'];
},
}
}
</script>
<style lang="scss" scoped>
.page{
padding: 0;
position: relative;
background-image: url('@/static/image/bg.jpg');
background-attachment: fixed;
background-size: cover;
background-position: center center;
}
.fixhead{
width: 100%;
padding-top: 20rpx;
padding-bottom: 20rpx;
}
.search{
display: flex;
flex-direction: row;
align-items: center;
width: 300rpx;
height: 60rpx;
border-radius: 60rpx;
border:1rpx solid #ddd;
padding-left: 30rpx;
margin-left: 20rpx;
.txt{
margin-left: 20rpx;
font-size: 28rpx;
line-height: 50rpx;
color: #666;
}
}
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top) - var(--window-bottom) - 280rpx) !important;
}
.swiper-item {
height: 100%;
}
.scrolltab{
height: 60rpx;
white-space: nowrap;
width: 80%;
margin: 20rpx 10%;
text-align: center;
.tab{
width: 180rpx;
height: 60rpx;
line-height: 55rpx;
position: relative;
display: inline-block;
overflow: hidden;
margin-left: 20rpx;
border-radius: 30rpx;
border: 2rpx solid #ddd;
color: #333333;
font-size: 30rpx;
text-align: center;
}
.tab.cur{
color: #000;
3 months ago
background-color: #e4f9f7;
border: 2rpx solid #00a89b;
3 months ago
}
}
.btn{
margin: 20rpx auto;
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #FCFCFD;
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
3 months ago
background: #00a89b;
3 months ago
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
&::after{
border:none;
}
}
.scontent{
background-color: rgba(255, 255,255, 0.5);
border-radius: 20rpx;
margin: 30rpx;
padding:50rpx 40rpx;
font-size: 28rpx;
text-align: center;
}
.bcontent{
background-color: rgba(255, 255,255, 0.5);
border-radius: 20rpx;
margin: 30rpx;
padding: 30rpx 30rpx;
font-size: 28rpx;
}
.adrcontent{
margin: 30rpx;
}
.adrcon{
display: flex;
flex-direction: column;
background-color: rgba(255, 255,255, 0.5);
border-radius: 20rpx;
border: 1rpx solid #eeefe8;
padding: 30rpx;
margin-bottom: 30rpx;
.adrow{
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin: 5rpx 0;
.qrimg{
width: 36rpx;
height: 36rpx;
margin-right: 10rpx;
}
.txt{
font-size: 28rpx;
color: #333;
display: flex;
flex: 1;
margin-left: 10rpx;
margin-right: 10rpx;
}
.atxt{
font-size: 28rpx;
color: #959694;
display: flex;
flex: 1;
margin-left: 10rpx;
margin-right: 10rpx;
}
}
}
.scrolllist{
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
}
.tabicl{
3 months ago
min-width: 160rpx;
3 months ago
height: 100rpx;
line-height: 100rpx;
position: relative;
display: inline-block;
overflow: hidden;
3 months ago
margin-left: 12rpx;
3 months ago
}
.ptext{
3 months ago
font-size: 30rpx;
3 months ago
text-align: center;
3 months ago
color: #000;
3 months ago
height: 90rpx;
}
.cur .ptext{
color: #000;
3 months ago
font-size: 34rpx;
3 months ago
}
.cur .pline{
width: 40%;
height: 9rpx;
3 months ago
background: #00a89b;
3 months ago
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
}
.nodata{
width: 100%;
height: calc(100vh - 400rpx) !important;
line-height: calc(100vh) !important;
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
font-size: 28rpx;
text-align: center;
3 months ago
color: #00a89b;
3 months ago
overflow: hidden;
}
.tcard {
display: flex;
flex-direction: row;
background: #fff;
border-radius: 20rpx;
margin: 30rpx 30rpx 0;
padding: 24rpx 20rpx 20rpx 22rpx;
.limg{
width: 120rpx;
height: 120rpx;
margin-right: 20rpx;
>image {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
}
}
.tlcon {
display: flex;
flex-direction: column;
.tlname {
font-size: 30rpx;
font-weight: 600;
margin-bottom: 16rpx;
color: #323334;
}
.tlinfo {
font-size: 28rpx;
color: #868c99;
display: flex;
align-items: center;
height: 80rpx;
line-height: 40rpx;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis; //属性规定当文本溢出包含元素时发生的事情 text-overflow: clip|ellipsis|string; (修剪/省略号/指定字符串)
-webkit-line-clamp: 2;
/*要显示的行数*/
/* autoprefixer: off */
-webkit-box-orient: vertical; //属性规定框的子元素应该被水平或垂直排列
/* autoprefixer: on */
}
}
}
.card {
display: flex;
flex-direction: row;
background: #fff;
border-radius: 20rpx;
margin: 20rpx;
padding: 24rpx;
.limg{
width: 196rpx;
height: 166rpx;
margin-right: 20rpx;
>image {
width: 196rpx;
height: 166rpx;
border-radius: 10rpx;
}
}
.tlcon {
display: flex;
flex-direction: column;
.tlname {
font-size: 30rpx;
font-weight: 600;
margin-bottom: 10rpx;
color: #323334;
}
.tother{
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
color: #868c99;
.txt1{
font-size: 26rpx;
margin-right: 20rpx;
3 months ago
margin-left: 4rpx;
3 months ago
width: 50rpx;
}
.txt{
font-size: 26rpx;
margin-right: 20rpx;
3 months ago
margin-left: 4rpx;
3 months ago
}
}
.tlinfo {
font-size: 28rpx;
color: #868c99;
display: flex;
align-items: center;
height: 80rpx;
line-height: 40rpx;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis; //属性规定当文本溢出包含元素时发生的事情 text-overflow: clip|ellipsis|string; (修剪/省略号/指定字符串)
-webkit-line-clamp: 2;
/*要显示的行数*/
/* autoprefixer: off */
-webkit-box-orient: vertical; //属性规定框的子元素应该被水平或垂直排列
/* autoprefixer: on */
}
}
}
</style>