master
271556543@qq.com 3 years ago
parent 6f05b2aac8
commit 476f2888f6

@ -7,33 +7,18 @@
<view class="strL flex_start">
<image src="../../static/icon_gonglve.png"></image><text>月子攻略</text>
</view>
<view class="more"></view>
<view class="more" @click="toStrategyCenter"></view>
</view>
<view class="strCol flex_start">
<view class="strCol flex_start" v-for="(item,index) in strategies" :key="item.id"
@click="toStrategyDetail(item.id)">
<view class="strPic">
<image mode="aspectFill" src="../../static/banner.png"></image>
<image mode="aspectFill" :src="item.cover_picture || '../../static/banner.png'"></image>
</view>
<view class="strInfo">
<view class="h3">月子会所价格为何相差巨大月子会所价格为何相差巨大月子会所价格为何相差巨大</view>
<view class="p">市场纷繁复杂的套餐究竟如何选</view>
</view>
</view>
<view class="strCol flex_start">
<view class="strPic">
<image mode="aspectFill" src="../../static/banner.png"></image>
</view>
<view class="strInfo">
<view class="h3">月子会所价格为何相差巨大月子会所价格为何相差巨大月子会所价格为何相差巨大</view>
<view class="p">市场纷繁复杂的套餐究竟如何选</view>
</view>
</view>
<view class="strCol flex_start">
<view class="strPic">
<image mode="aspectFill" src="../../static/banner.png"></image>
</view>
<view class="strInfo">
<view class="h3">月子会所价格为何相差巨大月子会所价格为何相差巨大月子会所价格为何相差巨大</view>
<view class="p">市场纷繁复杂的套餐究竟如何选</view>
<view class="h3">{{item.title}}</view>
<view class="p" v-if="item.subheading">
{{item.subheading}}
</view>
</view>
</view>
</view>
@ -55,7 +40,7 @@
</view>
</view>
<view class="proBox" v-if="tabIndex === 1">
<view class="termBox">
<!-- <view class="termBox">
<view class="termOuter">
<view class="termCol cur">综合排序<text class="iconfont icon-arrowbottom"></text></view>
<view class="termCol">全部地区<text class="iconfont icon-arrowbottom"></text></view>
@ -65,7 +50,7 @@
<view class="tagGroup flex_start">
<text>月子餐试吃</text>
<text>已探店</text>
</view>
</view> -->
<view class="introBox">
<view v-for="(item,index) in serviceList" :key="item.id" class="intro_column"
@tap="gotoDetail(item.id)">
@ -95,7 +80,7 @@
</view>
</view>
<view v-else class="proBox">
<view class="termBox">
<!-- <view class="termBox">
<view class="termOuter">
<view class="termCol cur">综合排序<text class="iconfont icon-arrowbottom"></text></view>
<view class="termCol">全部地区<text class="iconfont icon-arrowbottom"></text></view>
@ -105,7 +90,7 @@
<view class="tagGroup flex_start">
<text>月子餐试吃</text>
<text>已探店</text>
</view>
</view> -->
<view class="introBox">
<view v-for="(item,index) in productList" :key="item.id" class="intro_column"
@tap="gotoDetail(item.id)">
@ -118,12 +103,9 @@
<view class="tags">
<text v-for="(tag,index1) in featureLabelSplit(item.featured_label)"
:key="index1">{{tag}}</text>
<!-- <text>孕妈</text><text>宝宝成长</text><text class="grayBg">讲座知识</text> -->
</view>
<view class="subInfo flex_between"><text>{{addressComputed(item.service.name)}}</text></view>
<view class="price"><text class="smallIcon"></text><text>{{item.price}}</text>
<!-- &nbsp;&nbsp;-&nbsp;&nbsp;
<text class="smallIcon"></text><text>{{item.price}}</text> -->
</view>
</view>
</view>
@ -159,9 +141,25 @@
loading: '努力加载中',
nomore: '实在没有了'
},
strategies: [], //
}
},
methods: {
toStrategyDetail(id) {
this.$u.throttle(() => {
uni.navigateTo({
url: `/packages/packageCarecenter/pages/careCenter/strategyDetail?id=${id}`
})
})
},
toStrategyCenter() {
this.$u.throttle(() => {
uni.navigateTo({
url: '/packages/packageCarecenter/pages/careCenter/strategyCenter'
})
})
},
init() {
this.tabSelect()
this.tabIndex = 2
@ -241,7 +239,22 @@
})
}
})
}
},
getStrategy() {
weixin.request({
newUrl: true,
api: '/api/member/get-strategy',
data: {
page: 1,
page_size: 5
},
utilSuccess: res => {
this.strategies = res.rows
console.log(this.strategies);
}
})
},
},
computed: {
nameComputed() {
@ -250,7 +263,7 @@
return '未知'
}
if (name.length > 12) {
return name.slice(0, 11) + '..'
return name.slice(0, 11) + '...'
}
return name
}
@ -261,7 +274,7 @@
return '无'
}
if (address && (address.length > 12)) {
return address.slice(0, 11) + '..'
return address.slice(0, 11) + '...'
}
return address
}
@ -290,6 +303,8 @@
this.init()
})
this.getStrategy()
},
onReachBottom() {

@ -69,8 +69,8 @@
</view>
<view class="combo-content">
<view class="combo-content-item" v-for="(item,index) in detail.set" :key="index">
<view class="combo-content-item-name">{{item.name}}</view>
<view class="combo-content-item-content">{{item.content}}</view>
<view class="combo-content-item-name">{{item.content}}</view>
<view class="combo-content-item-content">{{item.name}}</view>
</view>
</view>
</view>
@ -87,7 +87,7 @@
</view>
</view>
<view style="width: 100%;">
<view style="width: 100%;background: #fff;padding: 20rpx 28rpx;">
<u-parse :html="detail.content"></u-parse>
</view>
</view>
@ -323,14 +323,18 @@
text-align: center;
border: 1px solid #191B1A;
border-radius: 24rpx;
flex-basis: 163rpx;
flex: 0;
height: 135rpx;
margin-right: 14rpx;
margin-bottom: 12rpx;
&-name {
font-size: 30rpx;
font-weight: 400;
color: #333333;
white-space: nowrap;
word-wrap: keep-all;
padding: 27rpx 24rpx 18rpx 24rpx;
}
@ -339,8 +343,10 @@
background-color: #191B1A;
color: #fff;
border-radius: 0 0 24rpx 24rpx;
white-space: nowrap;
word-wrap: keep-all;
padding: 8rpx 0;
padding: 8rpx 24rpx;
}
}
}

@ -158,7 +158,7 @@
</view>
</view>
<view class="service-activity">
<!-- <view class="service-activity">
<view class="service-activity-title">
<text>本店活动</text>
<view class="service-activity-title-more">
@ -170,7 +170,7 @@
<u-image src="/packages/packageCarecenter/static/banner.png" width="660" height="300"
border-radius="30"></u-image>
</view>
</view>
</view> -->
<view class="service-info">
<view class="service-info-title">
@ -215,22 +215,25 @@
barTop: 667,
barFixed: false,
bar: [{
label: '本店商品',
height: 0,
class: '.service-product'
}, {
label: '本店活动',
height: 0,
class: '.service-activity'
}, {
label: '商户简介',
height: 0,
class: '.service-info'
}, {
label: '图文详情',
height: 0,
class: '.service-imageinfo'
}],
label: '本店商品',
height: 0,
class: '.service-product'
},
// {
// label: '',
// height: 0,
// class: '.service-activity'
// },
{
label: '商户简介',
height: 0,
class: '.service-info'
}, {
label: '图文详情',
height: 0,
class: '.service-imageinfo'
}
],
barHeight: 0,
detail: {},
btnStyle: {
@ -314,7 +317,6 @@
this.getServiceDetail(option.id)
},
onPageScroll(e) {
console.log(e);
this.$u.throttle(() => {
if (e.scrollTop > this.barTop) {
this.barFixed = true
@ -760,8 +762,9 @@
.service-imageinfo {
width: 100%;
background: #fff;
padding-bottom: 100rpx;
padding: 0 28rpx 10rpx 28rpx;
}
.bottom-btn {

@ -0,0 +1,202 @@
<template>
<view>
<view class="strategy">
<view class="strategy-title">
<view class="strategy-title-icon">
<u-image src="/packages/packageCarecenter/static/icon_gonglve.png" width="30" height="34"></u-image>
</view>
<view class="strategy-title-text">
月子攻略
</view>
</view>
<view class="strategy-content">
<scroll-view scroll-y="true" style="height: 1000rpx;" @scrolltolower="loadmore">
<view class="strategy-content-item" v-for="(item,index) in strategies" :key="item.id"
@click="toDetail(item.id)">
<view class="strategy-content-item-left">
<u-image :src="item.cover_picture" width="160" height="150" border-radius="18"></u-image>
</view>
<view class="strategy-content-item-right">
<view class="strategy-content-item-right-title">{{item.title}}</view>
<view class="strategy-content-item-right-hubheading" v-if="item.subheading">
{{item.subheading}}
</view>
</view>
</view>
<u-loadmore :status="status" :load-text='loadText' @loadmore='loadmore' />
</scroll-view>
</view>
</view>
<view class="bottom-btn">
<view class="bottom-btn-boder">
<u-image src="/packages/packageCarecenter/static/msg.png" width="39" height="39"></u-image>
<u-button :custom-style="btnStyle" :hair-line="false" hover-class="none" open-type="contact">询问客服
</u-button>
</view>
</view>
</view>
</template>
<script>
import {
weixin
} from '@/utils/weixin.js'
export default {
data() {
return {
strategies: [],
select: {
page: 1,
page_size: 10
},
status: 'loadmore',
loadText: {
loadmore: '轻轻上拉或点击',
loading: '努力加载中',
nomore: '实在没有了'
},
btnStyle: {
border: 'none',
background: 'transparent',
color: '#fff',
width: '136rpx',
height: '48rpx',
fontSize: '34rpx',
fontWeight: 400,
marginLeft: '20rpx'
}
}
},
methods: {
toDetail(id) {
this.$u.throttle(() => {
uni.navigateTo({
url: `/packages/packageCarecenter/pages/careCenter/strategyDetail?id=${id}`
})
})
},
getStrategy() {
weixin.request({
newUrl: true,
api: '/api/member/get-strategy',
data: this.select,
utilSuccess: res => {
if (res.rows.length === 0) {
if (this.select.page > 1) {
this.select.page--
this.status = 'nomore'
}
return
}
this.strategies.push(...res.rows)
this.status = 'loadmore'
console.log(this.strategies);
}
})
},
loadmore(e) {
if (this.status === 'loadmore') {
this.select.page++
this.status = 'loading'
this.getStrategy()
}
}
},
computed: {
},
mounted() {
this.getStrategy()
}
}
</script>
<style scoped lang="scss">
.strategy {
background: linear-gradient(180deg, #FFEFF4 0%, #FFFFFF 100%);
border-radius: 40rpx;
margin: 37rpx 20rpx;
&-title {
display: flex;
align-items: center;
padding-top: 29rpx;
padding-left: 50rpx;
&-text {
font-weight: 400;
color: #333333;
font-size: 34rpx;
padding-left: 21rpx;
}
}
&-content {
margin-top: 44rpx;
padding: 0 50rpx;
&-item {
display: flex;
align-items: center;
margin-bottom: 30rpx;
&-right {
padding-left: 37rpx;
&-title {
font-weight: 400;
color: #333333;
font-size: 30rpx;
text-overflow: ellipsis;
padding: 11rpx 0;
}
&-subheading {
font-weight: 400;
color: #999999;
font-size: 24rpx;
}
}
}
}
}
.bottom-btn {
height: 136rpx;
background: #fff;
border-top: 1rpx solid rgba(180, 180, 180, 0.6);
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 0;
left: 0;
right: 0;
&-boder {
width: 480rpx;
height: 89rpx;
border-radius: 45rpx;
background: #FF578A;
display: flex;
align-items: center;
justify-content: center;
}
}
::v-deep .u-load-more-wrap {
padding: 10rpx 0;
}
</style>

@ -0,0 +1,61 @@
<template>
<view style="padding: 0rpx 20rpx;" class="u-skeleton">
<view class="title u-skeleton-rect">
{{detail.title}}
</view>
<u-parse class="u-skeleton-rect" style="width: 100%;min-height: 400rpx;margin-top: 20rpx;"
:html="detail.content"></u-parse>
<u-skeleton :loading="loading" :animation="true" bgColor="#FFF"></u-skeleton>
</view>
</template>
<script>
import {
weixin
} from '@/utils/weixin.js'
export default {
data() {
return {
loading: true,
detail: {}
}
},
methods: {
getDetail(id) {
weixin.request({
newUrl: true,
api: '/api/member/get-strategy-item',
data: {
id
},
utilSuccess: res => {
console.log(res);
this.loading = false
this.detail = res
}
})
}
},
computed: {
},
onLoad(option) {
this.getDetail(option.id)
}
}
</script>
<style>
page {
background: #fff;
}
</style>
<style scoped lang="scss">
.title {
padding: 20rpx 20rpx 0 20rpx;
text-align: center;
font-size: 34rpx;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

@ -327,8 +327,21 @@
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path": "pages/careCenter/strategyCenter",
"style": {
"navigationBarTitleText": "月子攻略",
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path": "pages/careCenter/strategyDetail",
"style": {
"navigationBarTitleText": "攻略详情",
"navigationBarBackgroundColor": "#FFFFFF"
}
}
]
}
],

Loading…
Cancel
Save