|
|
|
|
@ -8,9 +8,12 @@
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
<view class="top" :style="{ 'padding-right': menuButtonRight + 'px' }">
|
|
|
|
|
<view class="position" @click="$u.route({ url: '/pages/CitySelect/CitySelect' })">
|
|
|
|
|
<view
|
|
|
|
|
class="position"
|
|
|
|
|
@click="$u.route({ url: '/pages/CitySelect/CitySelect' })"
|
|
|
|
|
>
|
|
|
|
|
<u-icon name="map-fill"></u-icon>
|
|
|
|
|
<view>{{ vuex_location.city.replace(/(市|区|县)/,'') }}</view>
|
|
|
|
|
<view>{{ vuex_location.city.replace(/(市|区|县)/, "") }}</view>
|
|
|
|
|
<u-icon name="arrow-down" size="22"></u-icon>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="icon">
|
|
|
|
|
@ -34,28 +37,35 @@
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view v-if="isShowSticky" class="search-sticky" :style="{ 'padding-top': statusBarHeight + 'px','padding-right': menuButtonRight + 'px' }">
|
|
|
|
|
<view class="search-sticky__position" @click="isShowCity = true">
|
|
|
|
|
<view
|
|
|
|
|
v-if="isShowSticky"
|
|
|
|
|
class="search-sticky"
|
|
|
|
|
:style="{
|
|
|
|
|
'padding-top': statusBarHeight + 'px',
|
|
|
|
|
'padding-right': menuButtonRight + 'px',
|
|
|
|
|
}"
|
|
|
|
|
>
|
|
|
|
|
<view class="search-sticky__position" @click="$u.route({ url: '/pages/CitySelect/CitySelect' })">
|
|
|
|
|
<u-icon name="map-fill"></u-icon>
|
|
|
|
|
<view>{{ vuex_location.city.replace(/(市|区|县)/,'') }}</view>
|
|
|
|
|
<view>{{ vuex_location.city.replace(/(市|区|县)/, "") }}</view>
|
|
|
|
|
<u-icon name="arrow-down" size="22"></u-icon>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="search-sticky__search">
|
|
|
|
|
<view class="search-sticky__search--content">
|
|
|
|
|
<u-input
|
|
|
|
|
:clearable="false"
|
|
|
|
|
:value="select.keyword"
|
|
|
|
|
placeholder="请输入要搜索的内容"
|
|
|
|
|
height="46"
|
|
|
|
|
@input="searchInput"
|
|
|
|
|
:clearable="false"
|
|
|
|
|
:value="select.keyword"
|
|
|
|
|
placeholder="请输入要搜索的内容"
|
|
|
|
|
height="46"
|
|
|
|
|
@input="searchInput"
|
|
|
|
|
></u-input>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="swiper">
|
|
|
|
|
<u-swiper :list="list" name="url"></u-swiper>
|
|
|
|
|
<u-swiper :list="banners" name="url"></u-swiper>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="links">
|
|
|
|
|
@ -64,9 +74,13 @@
|
|
|
|
|
v-for="item in links"
|
|
|
|
|
:key="item.text"
|
|
|
|
|
bg-color="transparent"
|
|
|
|
|
@click="$u.throttle($u.route({
|
|
|
|
|
url: item.to
|
|
|
|
|
}))"
|
|
|
|
|
@click="
|
|
|
|
|
$u.throttle(
|
|
|
|
|
$u.route({
|
|
|
|
|
url: item.to,
|
|
|
|
|
})
|
|
|
|
|
)
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<image class="icon" :src="item.icon" mode="aspectFit"></image>
|
|
|
|
|
<view class="text">{{ item.text }}</view>
|
|
|
|
|
@ -75,17 +89,25 @@
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="img1">
|
|
|
|
|
<image src="~@/static/index/ask-png.png" alt="" mode="aspectFit"></image>
|
|
|
|
|
<image
|
|
|
|
|
src="~@/static/index/ask-png.png"
|
|
|
|
|
alt=""
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="hospitals">
|
|
|
|
|
<view class="hospitals__title">热门医院</view>
|
|
|
|
|
|
|
|
|
|
<view class="hospitals__content">
|
|
|
|
|
<view class="hospitals__content__item" v-for="(item,index) in list_hospital" :key="index">
|
|
|
|
|
<view
|
|
|
|
|
class="hospitals__content__item"
|
|
|
|
|
v-for="(item, index) in hospitals"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
>
|
|
|
|
|
<view class="left">
|
|
|
|
|
<image
|
|
|
|
|
:src="item.cover?item.cover.url:''"
|
|
|
|
|
:src="item.cover ? item.cover.url : ''"
|
|
|
|
|
alt=""
|
|
|
|
|
mode="scaleToFill"
|
|
|
|
|
></image>
|
|
|
|
|
@ -96,55 +118,89 @@
|
|
|
|
|
<view class="tag__item">{{ item.good_at }}</view>
|
|
|
|
|
<view class="tag__item">综合医院</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="description"> {{item.good_at}} </view>
|
|
|
|
|
<view class="description"> {{ item.good_at }} </view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="statistics">
|
|
|
|
|
<view class="block1" @click="toPage('/package_sub/pages/ServiceList/ServiceList?type=1')">
|
|
|
|
|
<view
|
|
|
|
|
class="block1"
|
|
|
|
|
@click="toPage('/package_sub/pages/ServiceList/ServiceList?type=1')"
|
|
|
|
|
>
|
|
|
|
|
<view class="text1">陪诊团队介绍</view>
|
|
|
|
|
<view class="text2">让就医体验更美好</view>
|
|
|
|
|
<view class="order">预约陪诊</view>
|
|
|
|
|
|
|
|
|
|
<image class="img" src="~@/static/index/block1.png" mode="aspectFit" alt=""></image>
|
|
|
|
|
<image
|
|
|
|
|
class="img"
|
|
|
|
|
src="~@/static/index/block1.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="block2">
|
|
|
|
|
<view class="text1">
|
|
|
|
|
<text>142812</text><text>人次</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="text1"> <text>142812</text><text>人次</text> </view>
|
|
|
|
|
<view class="text2">医院陪护累计</view>
|
|
|
|
|
|
|
|
|
|
<image class="img" src="~@/static/index/block2.png" mode="aspectFit" alt=""></image>
|
|
|
|
|
<image
|
|
|
|
|
class="img"
|
|
|
|
|
src="~@/static/index/block2.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="block3">
|
|
|
|
|
<view class="text1">
|
|
|
|
|
<text>12456</text><text>人次</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="text1"> <text>12456</text><text>人次</text> </view>
|
|
|
|
|
<view class="text2">居家照护累计</view>
|
|
|
|
|
|
|
|
|
|
<image class="img" src="~@/static/index/block3.png" mode="aspectFit" alt=""></image>
|
|
|
|
|
<image
|
|
|
|
|
class="img"
|
|
|
|
|
src="~@/static/index/block3.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="block4">
|
|
|
|
|
<view class="text1">关于我们</view>
|
|
|
|
|
|
|
|
|
|
<image class="img" src="~@/static/index/block4.png" mode="aspectFit" alt=""></image>
|
|
|
|
|
<image
|
|
|
|
|
class="img"
|
|
|
|
|
src="~@/static/index/block4.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="honor">
|
|
|
|
|
<view class="honor__title">
|
|
|
|
|
<image src="~@/static/index/honor-title.png" alt="" mode="aspectFit"></image>
|
|
|
|
|
<image
|
|
|
|
|
src="~@/static/index/honor-title.png"
|
|
|
|
|
alt=""
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
></image>
|
|
|
|
|
<text>资质荣誉</text>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<scroll-view class="scroll-content" scroll-x="true">
|
|
|
|
|
<image class="images" v-for="i in 5" :key="i" src="https://sstt.115.langye.net/storage/files/172760356266f9236a22e58.png" mode="aspectFit"></image>
|
|
|
|
|
<image
|
|
|
|
|
class="images"
|
|
|
|
|
v-for="i in 5"
|
|
|
|
|
:key="i"
|
|
|
|
|
src="https://sstt.115.langye.net/storage/files/172760356266f9236a22e58.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
></image>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<image class="bottom" src="~@/static/index/bottom.png" mode="aspectFit" alt=""></image>
|
|
|
|
|
<image
|
|
|
|
|
class="bottom"
|
|
|
|
|
src="~@/static/index/bottom.png"
|
|
|
|
|
mode="aspectFit"
|
|
|
|
|
alt=""
|
|
|
|
|
></image>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<u-top-tips :navbar-height="navbarHeight" ref="uTips"></u-top-tips>
|
|
|
|
|
@ -161,7 +217,7 @@ import PrivacyPopup from "@/component/privacy-popup/privacy-popup.vue";
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
Tabbar,
|
|
|
|
|
PrivacyPopup
|
|
|
|
|
PrivacyPopup,
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
@ -178,13 +234,11 @@ export default {
|
|
|
|
|
select: {
|
|
|
|
|
keyword: "",
|
|
|
|
|
},
|
|
|
|
|
list: [],
|
|
|
|
|
list_hospital:[],
|
|
|
|
|
links: [
|
|
|
|
|
{
|
|
|
|
|
text: "陪诊服务",
|
|
|
|
|
icon: "/static/index/peizhenfuwu.png",
|
|
|
|
|
to: "/package_sub/pages/ServiceList/ServiceList?type=1"
|
|
|
|
|
to: "/package_sub/pages/ServiceList/ServiceList?type=1",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text: "就医服务",
|
|
|
|
|
@ -193,7 +247,7 @@ export default {
|
|
|
|
|
{
|
|
|
|
|
text: "居家照护",
|
|
|
|
|
icon: "/static/index/jujiazhaohu.png",
|
|
|
|
|
to: "/package_sub/pages/ServiceList/ServiceList?type=2"
|
|
|
|
|
to: "/package_sub/pages/ServiceList/ServiceList?type=2",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text: "医院陪护",
|
|
|
|
|
@ -210,9 +264,9 @@ export default {
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.getElScrollTop()
|
|
|
|
|
this.getElScrollTop();
|
|
|
|
|
if (this.$store.state.vuex_location.status !== 2) {
|
|
|
|
|
this.$store.dispatch('getLocation')
|
|
|
|
|
this.$store.dispatch("getLocation");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
@ -222,74 +276,52 @@ export default {
|
|
|
|
|
10;
|
|
|
|
|
this.statusBarHeight = uni.getMenuButtonBoundingClientRect().top;
|
|
|
|
|
|
|
|
|
|
this.getHospital()
|
|
|
|
|
this.getBanner()
|
|
|
|
|
this.getHospital();
|
|
|
|
|
this.getBanner();
|
|
|
|
|
},
|
|
|
|
|
onPageScroll(e) {
|
|
|
|
|
this.isShowSticky = e.scrollTop > this.scrollTop
|
|
|
|
|
},
|
|
|
|
|
onLoad() {
|
|
|
|
|
this.getBanners()
|
|
|
|
|
this.getHospital()
|
|
|
|
|
this.isShowSticky = e.scrollTop > this.scrollTop;
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
navbarHeight() {
|
|
|
|
|
return getApp().globalData.navbarHeight
|
|
|
|
|
}
|
|
|
|
|
return getApp().globalData.navbarHeight;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getElScrollTop () {
|
|
|
|
|
const query = uni.createSelectorQuery().in(this)
|
|
|
|
|
query.select('.links').boundingClientRect(data => {
|
|
|
|
|
if (data) {
|
|
|
|
|
this.scrollTop = data.top
|
|
|
|
|
}
|
|
|
|
|
}).exec()
|
|
|
|
|
getElScrollTop() {
|
|
|
|
|
const query = uni.createSelectorQuery().in(this);
|
|
|
|
|
query
|
|
|
|
|
.select(".links")
|
|
|
|
|
.boundingClientRect((data) => {
|
|
|
|
|
if (data) {
|
|
|
|
|
this.scrollTop = data.top;
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.exec();
|
|
|
|
|
},
|
|
|
|
|
async getBanners(){
|
|
|
|
|
const res = await this.$u.api.otherBanner({
|
|
|
|
|
position:1
|
|
|
|
|
})
|
|
|
|
|
res.map(item=>{
|
|
|
|
|
item.url = item.image.url
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
this.list = res
|
|
|
|
|
},
|
|
|
|
|
async getHospital(){
|
|
|
|
|
const res = await this.$u.api.listHospital({
|
|
|
|
|
page:1,
|
|
|
|
|
page_size:3
|
|
|
|
|
})
|
|
|
|
|
this.list_hospital = res.data
|
|
|
|
|
},
|
|
|
|
|
searchInput(e) {},
|
|
|
|
|
|
|
|
|
|
async getHospital() {
|
|
|
|
|
try {
|
|
|
|
|
const res = await this.$u.api.hospitalList({
|
|
|
|
|
page: 1,
|
|
|
|
|
page_size: 10,
|
|
|
|
|
'show_relation[0]': 'site'
|
|
|
|
|
})
|
|
|
|
|
this.hospitals = res.data
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
page_size: 5,
|
|
|
|
|
"show_relation[0]": "site",
|
|
|
|
|
});
|
|
|
|
|
this.hospitals = res.data;
|
|
|
|
|
} catch (err) {}
|
|
|
|
|
},
|
|
|
|
|
async getBanner() {
|
|
|
|
|
try {
|
|
|
|
|
const res = await this.$u.api.banner({
|
|
|
|
|
position: 1
|
|
|
|
|
})
|
|
|
|
|
this.banners = res.map(i => ({
|
|
|
|
|
position: 1,
|
|
|
|
|
});
|
|
|
|
|
this.banners = res.map((i) => ({
|
|
|
|
|
...i,
|
|
|
|
|
url: i.image?.url
|
|
|
|
|
}))
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
url: i.image?.url,
|
|
|
|
|
}));
|
|
|
|
|
} catch (err) {}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
@ -377,7 +409,7 @@ export default {
|
|
|
|
|
top: 0;
|
|
|
|
|
width: 100vw;
|
|
|
|
|
padding-bottom: 20rpx;
|
|
|
|
|
animation: fade .4s;
|
|
|
|
|
animation: fade 0.4s;
|
|
|
|
|
filter: drop-shadow(0 2rpx 6rpx #c20d1266);
|
|
|
|
|
@keyframes fade {
|
|
|
|
|
from {
|
|
|
|
|
@ -542,7 +574,12 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.block1 {
|
|
|
|
|
background: linear-gradient(-90deg, #e26165 0%, #c10d12 94%, #c10d12 100%);
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
-90deg,
|
|
|
|
|
#e26165 0%,
|
|
|
|
|
#c10d12 94%,
|
|
|
|
|
#c10d12 100%
|
|
|
|
|
);
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.text1 {
|
|
|
|
|
|