tmp
This commit is contained in:
57
pages/hospital/contact.js
Normal file
57
pages/hospital/contact.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const app = getApp()
|
||||
|
||||
Page({
|
||||
data: {
|
||||
hospitalContact: [],
|
||||
loading: true,
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.loadHospitalContact()
|
||||
},
|
||||
|
||||
loadHospitalContact() {
|
||||
const appData = app.globalData
|
||||
if (appData.hospitalContact && appData.hospitalContact.length > 0) {
|
||||
this.setData({
|
||||
hospitalContact: appData.hospitalContact,
|
||||
loading: false,
|
||||
})
|
||||
} else if (appData.hospitalContactReady) {
|
||||
appData.hospitalContactReady.then((data) => {
|
||||
this.setData({
|
||||
hospitalContact: data || [],
|
||||
loading: false,
|
||||
})
|
||||
}).catch(() => {
|
||||
this.setData({
|
||||
hospitalContact: [],
|
||||
loading: false,
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.setData({
|
||||
hospitalContact: [],
|
||||
loading: false,
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
onCallPhone(e) {
|
||||
const phone = e.currentTarget.dataset.phone
|
||||
if (!phone) return
|
||||
wx.makePhoneCall({
|
||||
phoneNumber: phone,
|
||||
fail: (err) => {
|
||||
console.error('拨打电话失败', err)
|
||||
},
|
||||
})
|
||||
},
|
||||
|
||||
onShareAppMessage() {
|
||||
return {
|
||||
title: '医院联系电话',
|
||||
path: '/pages/hospital/contact',
|
||||
}
|
||||
},
|
||||
})
|
||||
3
pages/hospital/contact.json
Normal file
3
pages/hospital/contact.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
38
pages/hospital/contact.wxml
Normal file
38
pages/hospital/contact.wxml
Normal file
@@ -0,0 +1,38 @@
|
||||
<view class="container">
|
||||
<view class="header">
|
||||
<text class="title">北京主要医院联系电话</text>
|
||||
<text class="subtitle">持续更新中, 仅供参考</text>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{loading}}" class="loading">
|
||||
<text>加载中...</text>
|
||||
</view>
|
||||
|
||||
<view wx:elif="{{hospitalContact.length === 0}}" class="empty">
|
||||
<text>暂无医院联系信息</text>
|
||||
</view>
|
||||
|
||||
<view wx:else class="list">
|
||||
<view
|
||||
class="item"
|
||||
wx:for="{{hospitalContact}}"
|
||||
wx:key="id"
|
||||
>
|
||||
<view class="info">
|
||||
<text class="name">{{item.name}}</text>
|
||||
<view class="phones">
|
||||
<view
|
||||
class="phone-wrap"
|
||||
wx:for="{{item.phone}}"
|
||||
wx:for-item="phone"
|
||||
wx:key="*this"
|
||||
data-phone="{{phone}}"
|
||||
bindtap="onCallPhone"
|
||||
>
|
||||
<text class="phone">{{phone}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
133
pages/hospital/contact.wxss
Normal file
133
pages/hospital/contact.wxss
Normal file
@@ -0,0 +1,133 @@
|
||||
page {
|
||||
background-color: #F5F7F6;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
min-height: 100vh;
|
||||
padding-bottom: 32rpx;
|
||||
}
|
||||
|
||||
/* 顶部导航栏 */
|
||||
.nav-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 120rpx 32rpx 20rpx 32rpx;
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.nav-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.logo-icon {
|
||||
width: 56rpx;
|
||||
height: 56rpx;
|
||||
border-radius: 16rpx;
|
||||
background: #FFFFFF;
|
||||
padding: 4rpx;
|
||||
}
|
||||
|
||||
.logo-text {
|
||||
font-size: 36rpx;
|
||||
font-weight: 700;
|
||||
color: #1F2937;
|
||||
margin-left: 16rpx;
|
||||
}
|
||||
|
||||
/* Header区域 */
|
||||
.header {
|
||||
background: #FFFFFF;
|
||||
padding: 24rpx 32rpx 40rpx 32rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
display: block;
|
||||
font-size: 40rpx;
|
||||
font-weight: 700;
|
||||
color: #1F2937;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
display: block;
|
||||
font-size: 26rpx;
|
||||
color: #9CA3AF;
|
||||
margin-top: 12rpx;
|
||||
}
|
||||
|
||||
/* 加载和空状态 */
|
||||
.loading,
|
||||
.empty {
|
||||
text-align: center;
|
||||
padding: 120rpx 32rpx;
|
||||
color: #9CA3AF;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
/* 列表区域 */
|
||||
.list {
|
||||
padding: 0 32rpx;
|
||||
}
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #FFFFFF;
|
||||
border-radius: 24rpx;
|
||||
padding: 32rpx;
|
||||
margin-bottom: 20rpx;
|
||||
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06);
|
||||
border: 2rpx solid #F0F0F0;
|
||||
}
|
||||
|
||||
.info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
color: #1F2937;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 16rpx;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.phones {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: 12rpx;
|
||||
}
|
||||
|
||||
.phone-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12rpx;
|
||||
padding: 12rpx 20rpx;
|
||||
background: #F5F7F6;
|
||||
border-radius: 12rpx;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.phone {
|
||||
font-size: 28rpx;
|
||||
color: #2D6A4F;
|
||||
line-height: 1.4;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.action {
|
||||
margin-left: 24rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-size: 40rpx;
|
||||
}
|
||||
Reference in New Issue
Block a user