master
xy 1 year ago
parent 87fd336485
commit 4aee80f8cc

@ -2,8 +2,8 @@
let apiApp = { let apiApp = {
login: '/api/mobile/user/applet-login', login: '/api/mobile/user/applet-login',
userInfo: '/api/mobile/user/get-user-info', userInfo: '/api/mobile/user/get-user-info',
hospital: '/api/mobile/hospital/hospital',
banner: '/api/mobile/other/banner'
} }
// 此处第二个参数vm就是我们在页面使用的this你可以通过vm获取vuex等操作 // 此处第二个参数vm就是我们在页面使用的this你可以通过vm获取vuex等操作
@ -13,11 +13,15 @@ const install = (Vue, vm) => {
// //
const login = (params = {}) => vm.$u.get(apiApp.login, params) const login = (params = {}) => vm.$u.get(apiApp.login, params)
const getUserInfo = () => vm.$u.get(apiApp.userInfo) const getUserInfo = () => vm.$u.get(apiApp.userInfo)
const hospitalList = (params = {}) => vm.$u.get(apiApp.hospital, params)
const banner = (params = {}) => vm.$u.get(apiApp.banner, params)
// end // end
vm.$u.api = { vm.$u.api = {
login, login,
getUserInfo getUserInfo,
hospitalList,
banner
}; };
} }

@ -8,7 +8,7 @@
alt="" alt=""
></image> ></image>
<view class="top" :style="{ 'padding-right': menuButtonRight + 'px' }"> <view class="top" :style="{ 'padding-right': menuButtonRight + 'px' }">
<view class="position" @click="toPage('/pages/CitySelect/CitySelect')"> <view class="position" @click="$u.route({ url: '/pages/CitySelect/CitySelect' })">
<u-icon name="map-fill"></u-icon> <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> <u-icon name="arrow-down" size="22"></u-icon>
@ -55,7 +55,7 @@
</view> </view>
<view class="swiper"> <view class="swiper">
<u-swiper :list="list"></u-swiper> <u-swiper :list="banners" name="url"></u-swiper>
</view> </view>
<view class="links"> <view class="links">
@ -82,7 +82,7 @@
<view class="hospitals__title">热门医院</view> <view class="hospitals__title">热门医院</view>
<view class="hospitals__content"> <view class="hospitals__content">
<view class="hospitals__content__item" v-for="item in 3" :key="item"> <view class="hospitals__content__item" v-for="item in hospitals" :key="item.key">
<view class="left"> <view class="left">
<image <image
src="https://sstt.115.langye.net/storage/files/172760356266f9236a22e58.png" src="https://sstt.115.langye.net/storage/files/172760356266f9236a22e58.png"
@ -91,19 +91,19 @@
></image> ></image>
</view> </view>
<view class="right"> <view class="right">
<view class="title">苏州大学附属第一医院</view> <view class="title">{{ item.name }}</view>
<view class="tag"> <view class="tag">
<view class="tag__item">三甲</view> <view class="tag__item">{{ item.good_at }}</view>
<view class="tag__item">综合医院</view> <view class="tag__item">综合医院</view>
</view> </view>
<view class="description"> 内科外科五官科其他 </view> <view class="description"> {{ item.content }} </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="statistics"> <view class="statistics">
<view class="block1" @click="toPage('/package_sub/pages/AddOrder/AddOrder')"> <view class="block1" @click="$u.route({ url: '/package_sub/pages/AddOrder/AddOrder' })">
<view class="text1">陪诊团队介绍</view> <view class="text1">陪诊团队介绍</view>
<view class="text2">让就医体验更美好</view> <view class="text2">让就医体验更美好</view>
<view class="order">预约陪诊</view> <view class="order">预约陪诊</view>
@ -178,20 +178,6 @@ export default {
select: { select: {
keyword: "", keyword: "",
}, },
list: [
{
image: "https://cdn.uviewui.com/uview/swiper/1.jpg",
title: "昨夜星辰昨夜风,画楼西畔桂堂东",
},
{
image: "https://cdn.uviewui.com/uview/swiper/2.jpg",
title: "身无彩凤双飞翼,心有灵犀一点通",
},
{
image: "https://cdn.uviewui.com/uview/swiper/3.jpg",
title: "谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳",
},
],
links: [ links: [
{ {
text: "陪诊服务", text: "陪诊服务",
@ -216,6 +202,8 @@ export default {
}, },
], ],
hospitals: [],
banners: [],
}; };
}, },
mounted() { mounted() {
@ -230,6 +218,9 @@ export default {
uni.getMenuButtonBoundingClientRect().left + uni.getMenuButtonBoundingClientRect().left +
10; 10;
this.statusBarHeight = uni.getMenuButtonBoundingClientRect().top; this.statusBarHeight = uni.getMenuButtonBoundingClientRect().top;
this.getHospital()
this.getBanner()
}, },
onPageScroll(e) { onPageScroll(e) {
this.isShowSticky = e.scrollTop > this.scrollTop this.isShowSticky = e.scrollTop > this.scrollTop
@ -252,23 +243,31 @@ export default {
}, },
searchInput(e) {}, searchInput(e) {},
toPage (url, type='page') { async getHospital() {
switch (type) { try {
case 'page': const res = await this.$u.api.hospitalList({
uni.navigateTo({ page: 1,
url page_size: 10,
}) 'show_relation[0]': 'site'
break })
case 'tabbar': this.hospitals = res.data
uni.switchTab({ } catch (err) {
url
})
break
case 'back':
uni.navigateBack()
break
} }
}, },
async getBanner() {
try {
const res = await this.$u.api.banner({
position: 1
})
this.banners = res.map(i => ({
...i,
url: i.image?.url
}))
} catch (err) {
}
}
}, },
}; };
</script> </script>
@ -490,7 +489,7 @@ export default {
} }
} }
.description { .description {
width: 320rpx; max-width: 320rpx;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;

@ -3,13 +3,26 @@
<image class="bkg" mode="aspectFill" src="~@/static/me/bkg.png"></image> <image class="bkg" mode="aspectFill" src="~@/static/me/bkg.png"></image>
<view class="top"> <view class="top">
<image class="avatar" mode="aspectFit" src="http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg"></image> <image class="avatar" mode="aspectFit" :src="vuex_user.headimgurl"></image>
<view class="info"> <view class="info">
<view class="info-name">{{ vuex_user.nickname || '微信用户' }}</view> <view class="info-name">{{ vuex_user.nickname || '微信用户' }}</view>
<view class="info-mobile">手机号{{ vuex_user.mobile || '' }}</view> <view class="info-mobile">手机号{{ vuex_user.mobile || '' }}</view>
</view> </view>
</view> </view>
<view class="panel panel1">
<view class="tab" v-for="i in 5">
<image class="tab__icon" mode="aspectFit" src="~@/static/index/jiuyifuwu.png"></image>
<view>陪诊订单</view>
</view>
</view>
<view class="panel panel2">
<view class="row" v-for="i in 4">
<image class="row__icon" mode="aspectFit" src="~@/static/index/block1.png"></image>
<view>我要分享</view>
</view>
</view>
<tabbar /> <tabbar />
</view> </view>
</template> </template>
@ -29,7 +42,9 @@ export default {
<style lang="scss"> <style lang="scss">
.container { .container {
min-height: 100vh;
position: relative; position: relative;
background: #f4efef;
.bkg { .bkg {
width: 100vw; width: 100vw;
@ -41,10 +56,64 @@ export default {
} }
.top { .top {
padding: 0 25rpx; display: flex;
align-items: center;
position: relative;
padding: 4vh 25rpx 0;
.avatar { .avatar {
width: 100rpx;
height: 100rpx;
border-radius: 100%;
background: #fff;
padding: 10rpx;
object-fit: cover;
}
.info {
padding-left: 40rpx;
&-name {
font-weight: 600;
}
}
}
.panel {
position: relative;
background: #fff;
border-radius: 10rpx;
margin: 40rpx 25rpx 0;
padding: 28rpx 25rpx;
}
.panel1 {
display: grid;
grid-gap: 24rpx;
grid-template-columns: repeat(3, 1fr);
.tab {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&__icon {
width: 80rpx;
height: 80rpx;
margin-bottom: 10rpx;
}
}
}
.panel2 {
.row {
display: flex;
padding: 20rpx 10rpx;
border-bottom: 2rpx #aaa solid;
&__icon {
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
}
} }
} }
} }

Loading…
Cancel
Save