Browse Source

就诊地图开发完毕

dev
kola-web 7 days ago
parent
commit
b889102ddb
  1. 18
      project.private.config.json
  2. 2
      src/app.json
  3. 9
      src/gift/pages/dtpDurg/index.json
  4. 221
      src/gift/pages/dtpDurg/index.scss
  5. 106
      src/gift/pages/dtpDurg/index.ts
  6. 88
      src/gift/pages/dtpDurg/index.wxml
  7. BIN
      src/images/bg25.png
  8. BIN
      src/images/icon88.png
  9. BIN
      src/images/icon89.png
  10. BIN
      src/images/icon90.png
  11. BIN
      src/images/icon91.png
  12. BIN
      src/images/icon92.png
  13. BIN
      src/images/icon93.png
  14. BIN
      src/images/icon94.png
  15. BIN
      src/images/icon95.png
  16. BIN
      src/images/icon96.png
  17. BIN
      src/images/icon97.png
  18. BIN
      src/images/title10.png
  19. 256
      src/patient/pages/doctor/index.scss
  20. 136
      src/patient/pages/doctor/index.ts
  21. 143
      src/patient/pages/doctor/index.wxml
  22. 2
      src/patient/pages/enterInfo/index.wxml
  23. 52
      src/patient/pages/hospital/index.scss
  24. 38
      src/patient/pages/hospital/index.ts
  25. 10
      src/patient/pages/hospital/index.wxml
  26. 32
      src/patient/pages/index/index.scss
  27. 18
      src/patient/pages/index/index.wxml
  28. 102
      src/patient/pages/infusionCenter/index.scss
  29. 60
      src/patient/pages/infusionCenter/index.ts
  30. 29
      src/patient/pages/infusionCenter/index.wxml
  31. 12
      src/patient/pages/liveResult/index.scss
  32. 5
      src/patient/pages/liveResult/index.wxml

18
project.private.config.json

@ -23,11 +23,25 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "药房",
"pathName": "gift/pages/dtpDurg/index",
"query": "id=10",
"scene": null,
"launchMode": "default"
},
{
"name": "就诊地图",
"pathName": "patient/pages/doctor/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "patient/pages/liveDetail/index", "name": "patient/pages/liveDetail/index",
"pathName": "patient/pages/liveDetail/index", "pathName": "patient/pages/liveDetail/index",
"query": "id=33", "query": "id=33",
"scene": null, "launchMode": "default",
"launchMode": "default" "scene": null
}, },
{ {
"name": "患者-个人信息", "name": "患者-个人信息",

2
src/app.json

@ -83,7 +83,6 @@
}, },
{ {
"root": "gift", "root": "gift",
"independent": true,
"pages": [ "pages": [
"pages/giftList/index", "pages/giftList/index",
"pages/conformOrder/index", "pages/conformOrder/index",
@ -168,6 +167,7 @@
}, },
"componentFramework": "glass-easel", "componentFramework": "glass-easel",
"sitemapLocation": "sitemap.json", "sitemapLocation": "sitemap.json",
"requiredPrivateInfos": ["getFuzzyLocation"],
"lazyCodeLoading": "requiredComponents", "lazyCodeLoading": "requiredComponents",
"requiredBackgroundModes": ["audio"] "requiredBackgroundModes": ["audio"]
} }

9
src/gift/pages/dtpDurg/index.json

@ -1,4 +1,5 @@
{ {
"navigationBarTitleText": "双通道药房", "navigationBarTitleText": "药房",
"usingComponents": {} "navigationStyle": "default",
} "usingComponents": {}
}

221
src/gift/pages/dtpDurg/index.scss

@ -1,128 +1,93 @@
.page { .page {
position: relative; position: relative;
.banner { .banner {
width: 100%; width: 100%;
min-height: 344rpx; min-height: 374rpx;
} }
.container { .container {
padding: 48rpx 40rpx; padding: 48rpx 40rpx;
position: absolute; position: absolute;
top: 316rpx; top: 348rpx;
left: 0; left: 0;
width: 100%; width: 100%;
min-height: 100vh; min-height: 100vh;
border-radius: 24rpx 24rpx 0 0; border-radius: 24rpx 24rpx 0 0;
background-color: #fafafa; background-color: #FFFFFF;
box-sizing: border-box; box-sizing: border-box;
.title { .title {
font-size: 36rpx; font-size: 36rpx;
color: #484848; color: #211d2e;
font-weight: bold; font-weight: bold;
} }
.tags { .content {
margin-top: 16rpx; margin-top: 32rpx;
display: flex; margin-bottom: 20rpx;
.tag { display: flex;
margin-right: 16rpx; justify-content: space-between;
padding-right: 8rpx; .inner {
font-size: 22rpx; .site {
color: #e04775; font-size: 28rpx;
line-height: 1; color: #adacb2;
border-radius: 8rpx; }
background-color: #f5dfe6; .tel {
display: flex; font-size: 28rpx;
align-items: center; color: #adacb2;
.icon { }
margin-right: 8rpx; }
padding: 4rpx; }
width: 24rpx; .options {
max-height: 24rpx; margin-top: 40rpx;
background-color: #e04775; display: flex;
border-radius: 8rpx; align-items: center;
} justify-content: center;
} gap: 30rpx;
} .phone {
.content { flex: 1;
margin-top: 32rpx; line-height: 70rpx;
margin-bottom: 20rpx; font-size: 32rpx;
display: flex; color: #b982ff;
justify-content: space-between; text-align: center;
.inner { border-radius: 60rpx 60rpx 60rpx 60rpx;
.site { border: 1px solid #b982ff;
font-size: 28rpx; .icon {
color: #9e9e9e; display: inline-block;
} width: 36rpx;
.tel { height: 36rpx;
font-size: 28rpx; vertical-align: middle;
color: #9b9ea6; }
} }
} .site {
.options { flex: 1;
flex-shrink: 0; line-height: 76rpx;
display: flex; font-size: 32rpx;
.option { color: #ffffff;
margin-left: 30rpx; border-radius: 60rpx;
.phone { text-align: center;
width: 48rpx; background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
height: 48rpx; .icon {
border-radius: 50%; display: inline-block;
display: flex; width: 32rpx;
align-items: center; height: 32rpx;
justify-content: center; vertical-align: middle;
background-color: #fff; }
box-shadow: 0 4rpx 20rpx 0 rgba(0, 0, 0, 0.1); }
&-img { }
width: 24rpx;
height: 24rpx; .remark {
} margin-top: 56rpx;
} padding: 32rpx;
.name { border-radius: 24rpx;
margin-top: 8rpx; background-color: #FAFAFA;
font-size: 24rpx; .r-title {
color: #484848; font-size: 32rpx;
} color: #211D2E;
} font-weight: bold;
} }
} .r-content {
margin-top: 20rpx;
.card { font-size: 28rpx;
margin-bottom: 16rpx; color: #69686E;
padding: 32rpx 30rpx; }
border-radius: 24rpx; }
background-color: #fff; }
.c-title { }
font-size: 32rpx;
font-weight: bold;
color: #484848;
display: flex;
align-items: center;
.c-icon {
margin-right: 16rpx;
width: 36rpx;
height: 36rpx;
}
}
.c-content{
margin-top: 24rpx;
font-size: 28rpx;
color: #9E9E9E;
}
}
.remark{
padding: 32rpx;
border-radius: 24rpx;
background-color: #fff;
.r-title{
font-size: 32rpx;
color: #484848;
font-weight: bold;
}
.r-content{
margin-top: 20rpx;
font-size: 28rpx;
color: #9E9E9E;
}
}
}
}

106
src/gift/pages/dtpDurg/index.ts

@ -1,52 +1,54 @@
const app = getApp<IAppOption>(); const app = getApp<IAppOption>()
Page({ Page({
data: { data: {
id: "", id: '',
detail: {} as any, detail: {} as any,
}, },
onLoad(options) { onLoad(options) {
this.setData({ this.setData({
id: options.id, id: options.id,
}); })
app.waitLogin().then(() => { app.waitLogin({ type: [0, 1] }).then(() => {
this.getDetail(); this.getDetail()
}); })
}, },
getDetail() { getDetail() {
wx.ajax({ wx.ajax({
method: "GET", method: 'GET',
url: "?r=zd/dtp-pharmacy/detail", url: '?r=zd/dtp-pharmacy/detail',
data: { data: {
Id: this.data.id, Id: this.data.id,
}, },
}).then((res) => { }).then((res) => {
this.setData({ this.setData({
detail: res, detail: res,
}); })
}); })
}, },
handleSite() { handleSite() {
const { LNG, LAT, ProvinceName, CityName, CountyName, Address, Name } = this.data.detail; const { LNG, LAT, ProvinceName, CityName, CountyName, Address, Name } = this.data.detail
wx.openLocation({ wx.openLocation({
latitude: LAT, latitude: LAT,
longitude: LNG, longitude: LNG,
name: Name, name: Name,
address: `${ProvinceName}${CityName}${CountyName}${Address}`, address: `${ProvinceName}${CityName}${CountyName}${Address}`,
}); })
}, },
handlePhone() { handlePhone() {
const tel = this.data.detail.Telephone; const tel = this.data.detail.Telephone
if (!tel) { if (!tel) {
wx.showToast({ wx.showToast({
icon: "none", icon: 'none',
title: "电话暂未开通", title: '电话暂未开通',
}); })
return; return
} }
wx.makePhoneCall({ wx.makePhoneCall({
phoneNumber: tel, phoneNumber: tel,
}); })
}, },
}); })
export {}

88
src/gift/pages/dtpDurg/index.wxml

@ -1,61 +1,27 @@
<view class="page"> <view class="page">
<image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image> <image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image>
<image wx:else class="banner" mode="widthFix" src="{{imageUrl}}za-images//nrdl/dtp-durg.png"></image> <image wx:else class="banner" mode="widthFix" src="{{imageUrl}}bg25.png?t={{Timestamp}}"></image>
<view class="container"> <view class="container">
<view class="title">{{detail.Name}}</view> <view class="title">{{detail.Name}}</view>
<view class="tags"> <view class="content">
<view class="tag" wx:if="{{detail.IsOwnInfusionCenter==1}}"> <view class="inner">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/inject.png"></image> <view class="site">{{detail.ProvinceName}}{{detail.CityName}}{{detail.CountyName}}{{detail.Address}}</view>
<!-- {{detail.OwnInfusionCenterName}} --> <view class="tel">{{detail.Telephone}}</view>
自有输注中心 </view>
</view> </view>
<view class="tag" wx:if="{{detail.IsCooperationInfusionCenter==1}}"> <view class="options">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/cooperate.png"></image> <view class="phone" bind:tap="handlePhone">
<!-- {{detail.CooperationInfusionCenterName}} --> <image class="icon" src="{{imageUrl}}icon95.png?t={{Timestamp}}"></image>
合作输注中心 电话
</view> </view>
</view> <view class="site" bind:tap="handleSite" wx:if="{{detail.Address}}">
<view class="content"> <image class="icon" src="{{imageUrl}}icon96.png?t={{Timestamp}}"></image>
<view class="inner"> 地址
<view class="site">{{detail.ProvinceName}}{{detail.CityName}}{{detail.CountyName}}{{detail.Address}}</view> </view>
<view class="tel">{{detail.Telephone}}</view> </view>
</view> <view class="remark" wx:if="{{detail.Remark}}">
<view class="options"> <view class="r-title">备注</view>
<view class="option" bind:tap="handleSite" wx:if="{{detail.Address}}"> <view class="r-content">{{detail.Remark}}</view>
<view class="phone"> </view>
<image class="phone-img" src="{{imageUrl}}za-images//nrdl/site.png"></image> </view>
</view> </view>
<view class="name">地址</view>
</view>
<view class="option" bind:tap="handlePhone">
<view class="phone">
<image class="phone-img" src="{{imageUrl}}za-images//nrdl/phone.png"></image>
</view>
<view class="name">电话</view>
</view>
</view>
</view>
<view class="card" wx:if="{{detail.IsOwnInfusionCenter==1}}">
<view class="c-title">
<image
class="c-icon"
src="{{imageUrl}}za-images//nrdl/cooperate-1.png"
style="width: 32rpx; height: 30rpx; margin-right: 18rpx"
></image>
自有输注中心
</view>
<view class="c-content">{{detail.OwnInfusionCenterName}}</view>
</view>
<view class="card" wx:if="{{detail.IsCooperationInfusionCenter==1}}">
<view class="c-title">
<image class="c-icon" src="{{imageUrl}}za-images//nrdl/inject-1.png" style="width: 36rpx; height: 36rpx"></image>
合作输注中心
</view>
<view class="c-content">{{detail.CooperationInfusionCenterName}}</view>
</view>
<view class="remark" wx:if="{{detail.Remark}}">
<view class="r-title">备注</view>
<view class="r-content">{{detail.Remark}}</view>
</view>
</view>
</view>

BIN
src/images/bg25.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
src/images/icon88.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
src/images/icon89.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon90.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/images/icon91.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon92.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/images/icon93.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

BIN
src/images/icon94.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

BIN
src/images/icon95.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

BIN
src/images/icon96.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

BIN
src/images/icon97.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

BIN
src/images/title10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

256
src/patient/pages/doctor/index.scss

@ -1,13 +1,12 @@
page { page {
background-color: #fafafa; background-color: #f6f8f9;
} }
.page { .page {
padding-bottom: 200rpx; padding-bottom: 200rpx;
.page-header { .page-header {
margin-bottom: 30rpx; margin-bottom: 30rpx;
padding: 40rpx 32rpx 0; padding: 10rpx 32rpx 0;
background-color: #fff;
.site-line { .site-line {
padding: 30rpx 0 0; padding: 30rpx 0 0;
display: flex; display: flex;
@ -24,7 +23,7 @@ page {
} }
.name { .name {
font-size: 32rpx; font-size: 32rpx;
color: rgba(46, 45, 45, 1); color: #211d2e;
} }
.triangle { .triangle {
width: 0; width: 0;
@ -38,7 +37,7 @@ page {
width: 172rpx; width: 172rpx;
height: 60rpx; height: 60rpx;
font-size: 32rpx; font-size: 32rpx;
color: rgba(46, 45, 45, 0.6); color: #adacb2;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -62,7 +61,7 @@ page {
font-size: 28rpx; font-size: 28rpx;
} }
.place-input { .place-input {
color: rgba(168, 168, 168, 1); color: #adacb2;
} }
} }
.tabs { .tabs {
@ -79,7 +78,7 @@ page {
.van-tabs__line { .van-tabs__line {
width: 34rpx !important; width: 34rpx !important;
height: 8rpx; height: 8rpx;
background: #e04775; background: #b982ff;
border-radius: 4rpx; border-radius: 4rpx;
} }
} }
@ -102,7 +101,7 @@ page {
right: 0; right: 0;
width: 112rpx; width: 112rpx;
height: 42rpx; height: 42rpx;
background: #e04775; background: #b982ff;
border-radius: 0rpx 24rpx 0rpx 24rpx; border-radius: 0rpx 24rpx 0rpx 24rpx;
border: 2rpx solid #ebecee; border: 2rpx solid #ebecee;
font-size: 24rpx; font-size: 24rpx;
@ -126,24 +125,22 @@ page {
.wrap { .wrap {
flex: 1; flex: 1;
.title { .title {
display: flex;
align-items: center;
.name { .name {
margin-right: 12rpx;
font-size: 32rpx; font-size: 32rpx;
color: #484848; color: #211d2e;
word-break: break-all; word-break: break-all;
line-height: 48rpx; line-height: 48rpx;
} }
.tag { .tag {
flex-shrink: 0; flex-shrink: 0;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: 2rpx;
margin-left: 12rpx;
padding: 6rpx 12rpx; padding: 6rpx 12rpx;
font-size: 22rpx; font-size: 22rpx;
line-height: 1; line-height: 1;
color: #ffffff; color: #ffffff;
background: #ffc137; background: #ffa300;
border-radius: 8rpx; border-radius: 8rpx;
} }
} }
@ -156,12 +153,12 @@ page {
.site { .site {
flex: 1; flex: 1;
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; color: #adacb2;
} }
.site-num { .site-num {
flex-shrink: 0; flex-shrink: 0;
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; color: #adacb2;
} }
.icon { .icon {
flex-shrink: 0; flex-shrink: 0;
@ -177,16 +174,16 @@ page {
padding: 4rpx 16rpx 6rpx 16rpx; padding: 4rpx 16rpx 6rpx 16rpx;
line-height: 1; line-height: 1;
font-size: 22rpx; font-size: 22rpx;
color: #e04775; color: #b982ff;
border-radius: 8rpx; border-radius: 8rpx;
border: 1rpx solid #e04775; border: 1rpx solid #b982ff;
} }
.drug { .drug {
vertical-align: middle; vertical-align: middle;
padding-right: 8rpx; padding-right: 8rpx;
display: inline-block; display: inline-block;
font-size: 22rpx; font-size: 22rpx;
color: #e04775; color: #b982ff;
line-height: 1; line-height: 1;
border-radius: 8rpx; border-radius: 8rpx;
background-color: #f5dfe6; background-color: #f5dfe6;
@ -196,7 +193,7 @@ page {
padding: 8rpx 10rpx; padding: 8rpx 10rpx;
width: 16rpx; width: 16rpx;
height: 20rpx; height: 20rpx;
background-color: #e04775; background-color: #b982ff;
} }
} }
} }
@ -205,7 +202,7 @@ page {
} }
.dtp { .dtp {
padding: 32rpx 30rpx 0; padding: 0 30rpx;
.dtp-item { .dtp-item {
margin-bottom: 24rpx; margin-bottom: 24rpx;
padding: 32rpx; padding: 32rpx;
@ -227,32 +224,9 @@ page {
padding-left: 16rpx; padding-left: 16rpx;
.title { .title {
font-size: 32rpx; font-size: 32rpx;
color: #484848; color: #211d2e;
font-weight: bold; font-weight: bold;
} }
.tags {
margin-top: 16rpx;
display: flex;
.tag {
margin-right: 16rpx;
padding-right: 8rpx;
font-size: 22rpx;
color: #e04775;
line-height: 1;
border-radius: 8rpx;
background-color: #f5dfe6;
display: flex;
align-items: center;
.icon {
margin-right: 8rpx;
padding: 4rpx;
width: 24rpx;
max-height: 24rpx;
background-color: #e04775;
border-radius: 8rpx;
}
}
}
.content { .content {
margin-top: 32rpx; margin-top: 32rpx;
display: flex; display: flex;
@ -260,37 +234,42 @@ page {
.inner { .inner {
.site { .site {
font-size: 24rpx; font-size: 24rpx;
color: #9e9e9e; color: #adacb2;
} }
.tel { .tel {
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; color: #adacb2;
} }
} }
.phone { .options {
margin-left: 20rpx;
flex-shrink: 0;
width: 48rpx;
height: 48rpx;
border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; .phone-icon {
background-color: #fff; margin-left: 16rpx;
box-shadow: 0 4rpx 20rpx 0 rgba(0, 0, 0, 0.1); flex-shrink: 0;
&-img { width: 44rpx;
width: 24rpx; height: 44rpx;
height: 24rpx; }
.map-icon {
margin-left: 16rpx;
flex-shrink: 0;
width: 44rpx;
height: 44rpx;
} }
} }
} }
} }
} }
} }
.infusion-center {
.module { margin-top: 20rpx;
margin-top: 64rpx;
padding: 0 30rpx; padding: 0 30rpx;
.tip {
font-size: 28rpx;
color: #d0d0d0;
text-align: center;
margin-bottom: 40rpx;
}
.card { .card {
margin-bottom: 32rpx; margin-bottom: 32rpx;
padding: 32rpx; padding: 32rpx;
@ -303,141 +282,54 @@ page {
.avatar { .avatar {
margin-right: 18rpx; margin-right: 18rpx;
flex-shrink: 0; flex-shrink: 0;
width: 140rpx; width: 136rpx;
height: 140rpx; height: 136rpx;
border-radius: 16rpx; border-radius: 16rpx;
} }
.wrap { .wrap {
position: relative;
padding-right: 120rpx;
flex: 1; flex: 1;
position: relative;
.name { .name {
font-size: 44rpx; max-width: 15em;
color: #484848; font-size: 32rpx;
} color: #211d2e;
.title { font-weight: bold;
.name {
margin-left: 12rpx;
font-size: 28rpx;
color: #484848;
word-break: break-all;
line-height: 42rpx;
}
.tag {
flex-shrink: 0;
display: inline-block;
vertical-align: middle;
padding: 4rpx 12rpx;
font-size: 22rpx;
line-height: 1;
color: #ffffff;
background: #ffc137;
border-radius: 8rpx;
}
} }
.w-content { .w-content {
margin-top: 16rpx; margin-top: 20rpx;
display: flex;
align-items: center;
.inner { .inner {
flex: 1; flex: 1;
display: flex;
justify-content: space-between;
.site { .site {
flex: 1; flex: 1;
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; line-height: 32rpx;
color: #adacb2;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
} }
.site-box { .tel {
position: absolute; margin-top: 8rpx;
right: 0; font-size: 24rpx;
top: 70rpx; line-height: 32rpx;
text-align: center; color: #adacb2;
.site-num {
flex-shrink: 0;
font-size: 24rpx;
color: #9b9ea6;
}
.icon {
flex-shrink: 0;
margin-left: 14rpx;
width: 36rpx;
height: 36rpx;
}
} }
} }
} .site-box {
} margin-left: 16rpx;
} flex-shrink: 0;
.content { display: flex;
margin-top: 6rpx; gap: 16rpx;
padding-left: 158rpx; .icon {
.row { flex-shrink: 0;
margin-top: 16rpx; width: 44rpx;
display: flex; height: 44rpx;
align-items: flex-start; border-radius: 50%;
flex-wrap: wrap; }
// .tag {
// margin-right: 16rpx;
// flex-shrink: 0;
// padding: 8rpx 16rpx;
// font-size: 24rpx;
// color: #e04775;
// line-height: 1;
// background: #fcf2f6;
// border-radius: 8rpx;
// border: 2rpx solid #e04775;
// }
.p {
font-size: 24rpx;
line-height: 38rpx;
color: #9da0a8;
&.ellipsis {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
.tag {
margin-right: 16rpx;
margin-bottom: 10rpx;
width: 120rpx;
height: 32rpx;
background: #ffe6ee;
border-radius: 8rpx;
display: flex;
.week {
flex: 1;
font-size: 20rpx;
line-height: 32rpx;
color: #ffffff;
background-color: #e66c8e;
text-align: center;
border-radius: 8rpx 0 8rpx 8rpx;
}
.value {
flex: 1;
font-size: 20rpx;
color: #e04775;
text-align: center;
line-height: 32rpx;
}
}
.week-name {
flex: 1;
padding: 20rpx 24rpx;
background-color: rgba(253, 244, 247, 1);
border-radius: 16rpx;
font-size: 24rpx;
color: rgba(157, 160, 168, 1);
line-height: 40rpx;
.label {
margin-right: 12rpx;
display: inline-block;
font-size: 20rpx;
color: rgba(255, 255, 255, 1);
line-height: 32rpx;
padding: 0 8rpx;
background: #e04775;
border-radius: 8rpx 8rpx 8rpx 8rpx;
} }
} }
} }

136
src/patient/pages/doctor/index.ts

@ -8,6 +8,7 @@ Page({
HosList: [], HosList: [],
DoctortList: [], DoctortList: [],
dtpList: [], dtpList: [],
infusionCenterList: [],
pagination: { pagination: {
page: 1, page: 1,
pages: 1, pages: 1,
@ -46,21 +47,11 @@ Page({
bottom, bottom,
}) })
} }
app.zdWaitLogin().then((_res) => { app.waitLogin({ type: [0, 1] }).then(() => {
if (options.es === '201504') {
app.globalData.IsAliQiWei = 1
this.setData({
es: options.es,
})
}
if (options.active && ['1', '2'].includes(options.active)) { if (options.active && ['1', '2'].includes(options.active)) {
this.setData({ this.setData({
tabActive: Number(options.active), tabActive: Number(options.active),
}) })
} else {
} }
if (options.pid) { if (options.pid) {
this.setData({ this.setData({
@ -70,58 +61,62 @@ Page({
CityId: options.cid || '', CityId: options.cid || '',
}) })
this.getList() this.getList()
} else { }
else {
this.handleToggleSite() this.handleToggleSite()
} }
}) })
}, },
handleToggleSite() { handleToggleSite() {
const that = this
if (!this.data.LNG) { if (!this.data.LNG) {
wx.getSetting({ wx.getSetting({
success(res) { success: (res) => {
if ( if (
res.authSetting['scope.userFuzzyLocation'] != undefined && res.authSetting['scope.userFuzzyLocation'] != undefined
res.authSetting['scope.userFuzzyLocation'] == true && res.authSetting['scope.userFuzzyLocation'] == true
) { ) {
//获取当前位置 // 获取当前位置
that.getFuzzyLocation() this.getFuzzyLocation()
} else if (res.authSetting['scope.userFuzzyLocation'] == undefined) { }
//获取当前位置 else if (res.authSetting['scope.userFuzzyLocation'] == undefined) {
that.getFuzzyLocation() // 获取当前位置
} else { this.getFuzzyLocation()
}
else {
wx.showModal({ wx.showModal({
title: '请求授权当前位置', title: '请求授权当前位置',
content: '需要获取您的地理位置,请确认授权', content: '需要获取您的地理位置,请确认授权',
confirmColor: '#8c75d0', confirmColor: '#8c75d0',
success(res) { success: (res) => {
if (res.cancel) { if (res.cancel) {
//取消授权 // 取消授权
wx.showToast({ wx.showToast({
title: '拒绝授权', title: '拒绝授权',
icon: 'none', icon: 'none',
duration: 1000, duration: 1000,
}) })
that.getList() this.getList()
} else if (res.confirm) { }
//确定授权,通过wx.openSetting发起授权请求 else if (res.confirm) {
// 确定授权,通过wx.openSetting发起授权请求
wx.openSetting({ wx.openSetting({
success(res) { success: (res) => {
if (res.authSetting['scope.userFuzzyLocation'] == true) { if (res.authSetting['scope.userFuzzyLocation'] == true) {
wx.showToast({ wx.showToast({
title: '授权成功', title: '授权成功',
icon: 'success', icon: 'success',
duration: 1000, duration: 1000,
}) })
//再次授权,调用wx.getLocation的API // 再次授权,调用wx.getLocation的API
that.getFuzzyLocation() this.getFuzzyLocation()
} else { }
else {
wx.showToast({ wx.showToast({
title: '授权失败', title: '授权失败',
icon: 'none', icon: 'none',
duration: 1000, duration: 1000,
}) })
that.getList() this.getList()
} }
}, },
}) })
@ -131,8 +126,9 @@ Page({
} }
}, },
}) })
} else { }
that.setData({ else {
this.setData({
LNG: '', LNG: '',
LAT: '', LAT: '',
}) })
@ -140,23 +136,20 @@ Page({
} }
}, },
getFuzzyLocation() { getFuzzyLocation() {
const that = this
wx.getFuzzyLocation({ wx.getFuzzyLocation({
success(res) { success: (res) => {
that.setData({ this.setData({
LNG: res.longitude, LNG: res.longitude,
LAT: res.latitude, LAT: res.latitude,
}) })
that.getLocationInfo() this.getLocationInfo()
}, },
fail() { fail: (err) => {
that.getList() console.log('DEBUGPRINT[99]: index.ts:147: err=', err)
this.getList()
}, },
}) })
}, },
handleTapSite() {
},
handleChangeSite(e: WechatMiniprogram.CustomEvent) { handleChangeSite(e: WechatMiniprogram.CustomEvent) {
const detail = e.detail const detail = e.detail
this.setData({ this.setData({
@ -169,13 +162,6 @@ Page({
}, },
onChange(e: WechatMiniprogram.CustomEvent) { onChange(e: WechatMiniprogram.CustomEvent) {
const index = e.detail.index const index = e.detail.index
if (index == 0) {
} else if (index == 1) {
} else if (index == 2) {
}
this.setData({ this.setData({
tabActive: index, tabActive: index,
}) })
@ -212,10 +198,12 @@ Page({
} }
if (tabActive == 0) { if (tabActive == 0) {
this.getHosList() this.getHosList()
} else if (tabActive == 1) { }
else if (tabActive == 1) {
this.getDtpList() this.getDtpList()
} else if (tabActive == 2) { }
this.getDoctorList() else if (tabActive == 2) {
this.getInfusionCenter()
} }
}, },
getHosList() { getHosList() {
@ -240,11 +228,11 @@ Page({
}) })
}) })
}, },
getDoctorList() { getDtpList() {
const { Name, LNG, LAT, ProvinceId, CityId } = this.data const { Name, LNG, LAT, ProvinceId, CityId } = this.data
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
url: '?r=zd/doctor/list', url: '?r=zd/dtp-pharmacy/list',
data: { data: {
lng: LNG, lng: LNG,
lat: LAT, lat: LAT,
@ -254,33 +242,16 @@ Page({
}, },
}).then((res) => { }).then((res) => {
this.setData({ this.setData({
dtpList: res.list,
locationName: '重新定位', locationName: '重新定位',
DoctortList: res.map((item: { Clinic: string }) => {
let weekName = ''
if (item.ClinicType == 2) {
weekName = item.Clinic
} else {
weekName = (JSON.parse(item.Clinic) ? JSON.parse(item.Clinic) : []).map(
(subItem: { weekday: string | number; timeType: string | number }) => {
const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
const timeDay = { 1: '上午', 2: '下午' }
return { week: week[Number(subItem.weekday) - 1], timeDay: timeDay[subItem.timeType] }
},
)
}
return {
weekName,
...item,
}
}),
}) })
}) })
}, },
getDtpList() { getInfusionCenter() {
const { Name, LNG, LAT, ProvinceId, CityId } = this.data const { Name, LNG, LAT, ProvinceId, CityId } = this.data
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
url: '?r=zd/dtp-pharmacy/list', url: '?r=xd/infusion-center/list',
data: { data: {
lng: LNG, lng: LNG,
lat: LAT, lat: LAT,
@ -290,7 +261,7 @@ Page({
}, },
}).then((res) => { }).then((res) => {
this.setData({ this.setData({
dtpList: res.list, infusionCenterList: Array.isArray(res) ? res : res.list,
locationName: '重新定位', locationName: '重新定位',
}) })
}) })
@ -318,14 +289,6 @@ Page({
}, },
handleDetail(e: WechatMiniprogram.CustomEvent) { handleDetail(e: WechatMiniprogram.CustomEvent) {
const { url } = e.currentTarget.dataset const { url } = e.currentTarget.dataset
const { tabActive } = this.data
if (tabActive == 0) {
} else if (tabActive == 1) {
} else if (tabActive == 2) {
}
wx.navigateTo({ wx.navigateTo({
url, url,
}) })
@ -401,7 +364,8 @@ Page({
}) })
}, },
handleDefultLocation() { handleDefultLocation() {
if (this.data.locationName === '定位中') return if (this.data.locationName === '定位中')
return
this.setData({ this.setData({
locationName: '定位中', locationName: '定位中',
}) })
@ -433,3 +397,5 @@ Page({
} }
}, },
}) })
export {}

143
src/patient/pages/doctor/index.wxml

@ -1,10 +1,7 @@
<page-meta page-style="{{ areaShow || toastShow ? 'overflow: hidden;' : '' }}" /> <page-meta page-style="{{ areaShow || toastShow ? 'overflow: hidden;' : '' }}" />
<view class="page"> <view class="page" style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx;">
<view <view class="page-header">
class="page-header"
style="background: url({{imageUrl}}za-images//bg1.png?t={{Timestamp}}) no-repeat top center / 100% 444rpx;"
>
<navBar background="{{background}}" title="就诊地图" back bind:back="handleBack"></navBar> <navBar background="{{background}}" title="就诊地图" back bind:back="handleBack"></navBar>
<view class="site-line"> <view class="site-line">
<pickerArea <pickerArea
@ -12,13 +9,14 @@
pid="{{ProvinceId}}" pid="{{ProvinceId}}"
cid="{{CityId}}" cid="{{CityId}}"
cname="{{CityName}}" cname="{{CityName}}"
bind:tap="handleTapSite"
bind:ok="handleChangeSite" bind:ok="handleChangeSite"
bind:show="handleSiteShareShow" bind:show="handleSiteShareShow"
> >
<view class="area"> <view class="area">
<image class="icon" src="{{imageUrl}}za-images//1.5/n-site.png"></image> <image class="icon" src="{{imageUrl}}icon88.png?t={{Timestamp}}"></image>
<view class="name" wx:if="{{ProvinceName}}">{{ProvinceName}}{{ProvinceName == CityName ? '' : CityName}}</view> <view class="name" wx:if="{{ProvinceName}}">
{{ProvinceName}}{{ProvinceName == CityName ? '' : CityName}}
</view>
<view class="name" wx:else>请选择省市</view> <view class="name" wx:else>请选择省市</view>
<view class="triangle"></view> <view class="triangle"></view>
</view> </view>
@ -26,7 +24,7 @@
<view class="btn" bind:tap="handleDefultLocation">{{locationName}}</view> <view class="btn" bind:tap="handleDefultLocation">{{locationName}}</view>
</view> </view>
<view class="search"> <view class="search">
<image class="icon" src="{{imageUrl}}za-images//1.5/search.png"></image> <image class="icon" src="{{imageUrl}}icon89.png?t={{Timestamp}}"></image>
<input <input
class="input" class="input"
model:value="{{Name}}" model:value="{{Name}}"
@ -36,19 +34,19 @@
bind:blur="handleBlur" bind:blur="handleBlur"
/> />
</view> </view>
<view class="tabs" style="top:{{bottom}}px;background:{{background}}"> <view class="tabs" style="top:{{bottom}}px;">
<van-tabs <van-tabs
active="{{ tabActive }}" active="{{ tabActive }}"
title-active-color="#484848" title-active-color="#211D2E"
title-inactive-color="#9E9E9E" title-inactive-color="#ADACB2"
color="#E04775" color="#B982FF"
tab-class="tab-class" tab-class="tab-class"
tab-active-class="tab-active-class" tab-active-class="tab-active-class"
bind:change="onChange" bind:change="onChange"
> >
<van-tab title="查询医院"></van-tab> <van-tab title="查询医院"></van-tab>
<van-tab title="查询药房"></van-tab> <van-tab title="查询药房"></van-tab>
<!-- <van-tab title="就诊医生"></van-tab> --> <van-tab title="输注中心"></van-tab>
</van-tabs> </van-tabs>
</view> </view>
</view> </view>
@ -83,7 +81,7 @@
data-lng="{{item.LNG}}" data-lng="{{item.LNG}}"
data-address="{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}" data-address="{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}"
data-name="{{item.Name}}" data-name="{{item.Name}}"
src="{{imageUrl}}za-images//1.5/site-circle.png" src="{{imageUrl}}icon90.png?t={{Timestamp}}"
></image> ></image>
</view> </view>
<view class="tag" wx:if="{{item.DoctorNum>0}}">{{item.DoctorNum}}名医生</view> <view class="tag" wx:if="{{item.DoctorNum>0}}">{{item.DoctorNum}}名医生</view>
@ -101,7 +99,7 @@
<view <view
class="dtp-item" class="dtp-item"
bind:tap="handleDetail" bind:tap="handleDetail"
data-url="/patient/pages/dtpDurg/index?id={{item.Id}}" data-url="/gift/pages/dtpDurg/index?id={{item.Id}}"
wx:for="{{dtpList}}" wx:for="{{dtpList}}"
wx:key="index" wx:key="index"
> >
@ -111,23 +109,27 @@
</view> </view>
<view class="wrap"> <view class="wrap">
<view class="title">{{item.Name}}</view> <view class="title">{{item.Name}}</view>
<view class="tags">
<view class="tag" wx:if="{{item.IsOwnInfusionCenter==1}}">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/inject.png"></image>
自有输注中心
</view>
<view class="tag" wx:if="{{item.IsCooperationInfusionCenter==1}}">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/cooperate.png"></image>
合作输注中心
</view>
</view>
<view class="content"> <view class="content">
<view class="inner"> <view class="inner">
<view class="site">{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}</view> <view class="site">{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}</view>
<view class="tel">{{item.Telephone}}</view> <view class="tel">{{item.Telephone}}</view>
</view> </view>
<view class="phone extend-via-pseudo-elem" catch:tap="handleDtpPhone" data-tel="{{item.Telephone}}"> <view class="options">
<image class="phone-img" src="{{imageUrl}}za-images//nrdl/phone.png"></image> <image
class="phone-icon"
catch:tap="handleDtpPhone"
data-tel="{{item.Telephone}}"
src="{{imageUrl}}icon93.png?t={{Timestamp}}"
></image>
<image
class="map-icon"
catch:tap="handleOpenMap"
data-lat="{{item.LAT}}"
data-lng="{{item.LNG}}"
data-address="{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}"
data-name="{{item.Name}}"
src="{{imageUrl}}icon94.png?t={{Timestamp}}"
></image>
</view> </view>
</view> </view>
</view> </view>
@ -135,66 +137,45 @@
<pagination wx:if="{{!dtpList.length}}" pagination="{{pagination}}"></pagination> <pagination wx:if="{{!dtpList.length}}" pagination="{{pagination}}"></pagination>
</view> </view>
<view class="module" wx:if="{{tabActive==2}}"> <view class="infusion-center" wx:if="{{tabActive==2}}">
<view <view
class="card" class="card"
wx:for="{{DoctortList}}" wx:for="{{infusionCenterList}}"
wx:key="index" wx:key="index"
bind:tap="handleDoctor"
bind:tap="handleDetail" bind:tap="handleDetail"
data-url="/patient/pages/doctorDetail/index?id={{item.Id}}" data-url="/patient/pages/infusionCenter/index?id={{item.Id}}"
> >
<view class="c-header"> <view class="c-header">
<image class="avatar" mode="aspectFill" src="{{item.Img}}"></image> <image class="avatar" mode="aspectFill" src="{{item.ImgUrl}}"></image>
<view class="wrap"> <view class="wrap">
<view class="name">{{item.Name}}</view> <view class="name">{{item.Name}}</view>
<view class="title">
<view class="tag" wx:if="{{item.hospital.HospitalClassificationName || item.hospital.HospitalLevelName}}">
{{item.hospital.HospitalClassificationName}}{{item.hospital.HospitalLevelName}}
</view>
<text class="name">{{item.hospital.Name}}</text>
</view>
<view class="w-content"> <view class="w-content">
<view class="inner"> <view class="inner">
<view class="site"> <view class="site">{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}</view>
{{item.hospital.ProvinceName}}{{item.hospital.CityName}}{{item.hospital.CountyName}}{{item.hospital.Address}} <view class="tel">{{item.Telephone}}</view>
</view>
<view class="site-box">
<image
class="icon"
catch:tap="handleOpenMap"
data-lat="{{item.hospital.LAT}}"
data-lng="{{item.hospital.LNG}}"
data-address="{{item.hospital.ProvinceName}}{{item.hospital.CityName}}{{item.hospital.CountyName}}{{item.hospital.Address}}"
data-name="{{item.hospital.Name}}"
src="{{imageUrl}}za-images//1.5/site-circle.png"
></image>
<view class="site-num">{{item.hospital.dist}}</view>
</view>
</view> </view>
</view> <view class="site-box">
</view> <image
</view> class="icon"
<view class="content"> catch:tap="handleDtpPhone"
<view class="row"> data-tel="{{item.Telephone}}"
<!-- <view class="tag">医生简介</view> --> src="{{imageUrl}}icon93.png?t={{Timestamp}}"
<view class="p ellipsis">{{item.Introduce}}</view> ></image>
</view> <image
<view class="row" wx:if="{{item.weekName}}"> class="icon"
<!-- prettier-ignore --> catch:tap="handleOpenMap"
<view wx:if="{{item.ClinicType==2}}" class="week-name pre-line"> data-lat="{{item.LAT}}"
<view class="label">出诊时间</view>{{item.weekName}} data-lng="{{item.LNG}}"
</view> data-address="{{item.ProvinceName}}{{item.CityName}}{{item.CountyName}}{{item.Address}}"
<block wx:else> data-name="{{item.Name}}"
<view class="tag" wx:for="{{item.weekName}}" wx:for-item="wItem" wx:for-index="wIndex" wx:key="wIndex"> src="{{imageUrl}}icon94.png?t={{Timestamp}}"
<view class="week">{{wItem.week}}</view> ></image>
<view class="value">{{wItem.timeDay}}</view>
</view> </view>
</block> </view>
</view> </view>
</view> </view>
</view> </view>
<pagination wx:if="{{!DoctortList.length}}" pagination="{{pagination}}"></pagination> <pagination wx:if="{{!infusionCenterList.length}}" pagination="{{pagination}}"></pagination>
</view> </view>
</view> </view>
@ -214,11 +195,11 @@
params="{{toastParams}}" params="{{toastParams}}"
></toast> ></toast>
<siteShare <!-- <siteShare -->
pname="{{ProvinceName}}" <!-- pname="{{ProvinceName}}" -->
pid="{{ProvinceId}}" <!-- pid="{{ProvinceId}}" -->
cid="{{CityId}}" <!-- cid="{{CityId}}" -->
cname="{{CityName}}" <!-- cname="{{CityName}}" -->
bind:ok="handleSiteShare" <!-- bind:ok="handleSiteShare" -->
bind:show="handleSiteShareShow" <!-- bind:show="handleSiteShareShow" -->
></siteShare> <!-- ></siteShare> -->

2
src/patient/pages/enterInfo/index.wxml

@ -1,5 +1,5 @@
<view class="page"> <view class="page">
<navbar fixed title="录入信息" custom-style="background:{{background}}"></navbar> <navbar fixed title="注册信息" custom-style="background:{{background}}"></navbar>
<image class="bg" src="{{imageUrl}}bg10.png?t={{Timestamp}}"></image> <image class="bg" src="{{imageUrl}}bg10.png?t={{Timestamp}}"></image>
<view class="page-container" style="padding-top:{{pageTop+24}}px;"> <view class="page-container" style="padding-top:{{pageTop+24}}px;">
<view class="content"> <view class="content">

52
src/patient/pages/hospital/index.scss

@ -1,4 +1,4 @@
.scroll-view{ .scroll-view {
height: 100vh; height: 100vh;
} }
.page { .page {
@ -27,7 +27,7 @@
align-items: center; align-items: center;
.name { .name {
font-size: 36rpx; font-size: 36rpx;
color: #484848; color: #211D2E;
word-break: break-all; word-break: break-all;
} }
.tag { .tag {
@ -37,7 +37,7 @@
font-size: 22rpx; font-size: 22rpx;
line-height: 1; line-height: 1;
color: #ffffff; color: #ffffff;
background: #ffc137; background: #FFA300;
border-radius: 8rpx; border-radius: 8rpx;
} }
} }
@ -49,19 +49,19 @@
.inner { .inner {
.site { .site {
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; color: #ADACB2;
} }
.site-num { .site-num {
font-size: 24rpx; font-size: 24rpx;
color: #9b9ea6; color: #ADACB2;
} }
} }
.options { .options {
flex-shrink: 0; flex-shrink: 0;
.icon { .icon {
margin-left: 44rpx; margin-left: 20rpx;
width: 30rpx; width: 48rpx;
height: 30rpx; height: 48rpx;
background-color: #edeeef; background-color: #edeeef;
border-radius: 50%; border-radius: 50%;
padding: 6rpx; padding: 6rpx;
@ -80,33 +80,13 @@
border-radius: 24rpx; border-radius: 24rpx;
.m-title { .m-title {
position: relative; position: relative;
margin-bottom: 48rpx;
height: 88rpx; height: 88rpx;
background-color: #fff;
background: #ffeff4;
box-shadow: inset 0rpx 2rpx 12rpx 0rpx rgba(255, 255, 255, 0);
border-radius: 24rpx 24rpx 0rpx 0rpx;
border: 1rpx solid #efeff1;
display: flex;
align-items: center;
justify-content: center;
.m-title-img { .m-title-img {
width: 166rpx;
height: 42rpx;
}
.m-icon1 {
position: absolute;
top: -20rpx;
left: 64rpx;
width: 20rpx;
height: 64rpx;
}
.m-icon2 {
position: absolute; position: absolute;
top: -20rpx; top: -20rpx;
right: 64rpx; left: 0;
width: 20rpx; width: 100%;
height: 64rpx; height: 108rpx;
} }
} }
} }
@ -125,13 +105,13 @@
padding-left: 20rpx; padding-left: 20rpx;
.name { .name {
font-size: 32rpx; font-size: 32rpx;
color: #484848; color: #211D2E;
font-weight: bold; font-weight: bold;
} }
.p { .p {
margin-top: 8rpx; margin-top: 8rpx;
font-size: 24rpx; font-size: 24rpx;
color: #9da0a8; color: #ADACB2;
&.ellipsis { &.ellipsis {
min-width: 0; min-width: 0;
overflow: hidden; overflow: hidden;
@ -150,7 +130,7 @@
margin-bottom: 10rpx; margin-bottom: 10rpx;
width: 120rpx; width: 120rpx;
height: 32rpx; height: 32rpx;
background: #ffe6ee; background: #FAF6FF;
border-radius: 8rpx; border-radius: 8rpx;
display: flex; display: flex;
.week { .week {
@ -158,14 +138,14 @@
font-size: 20rpx; font-size: 20rpx;
line-height: 32rpx; line-height: 32rpx;
color: #ffffff; color: #ffffff;
background-color: #e66c8e; background-color: #B982FF;
text-align: center; text-align: center;
border-radius: 8rpx 0 8rpx 8rpx; border-radius: 8rpx 0 8rpx 8rpx;
} }
.value { .value {
flex: 1; flex: 1;
font-size: 20rpx; font-size: 20rpx;
color: #e04775; color: #B982FF;
text-align: center; text-align: center;
line-height: 32rpx; line-height: 32rpx;
} }

38
src/patient/pages/hospital/index.ts

@ -33,45 +33,49 @@ Page({
wx.getSetting({ wx.getSetting({
success(res) { success(res) {
if ( if (
res.authSetting['scope.userFuzzyLocation'] != undefined && res.authSetting['scope.userFuzzyLocation'] != undefined
res.authSetting['scope.userFuzzyLocation'] == true && res.authSetting['scope.userFuzzyLocation'] == true
) { ) {
//获取当前位置 // 获取当前位置
that.getFuzzyLocation() that.getFuzzyLocation()
} else if (res.authSetting['scope.userFuzzyLocation'] == undefined) { }
//获取当前位置 else if (res.authSetting['scope.userFuzzyLocation'] == undefined) {
// 获取当前位置
that.getFuzzyLocation() that.getFuzzyLocation()
} else { }
else {
wx.showModal({ wx.showModal({
title: '请求授权当前位置', title: '请求授权当前位置',
content: '需要获取您的地理位置,请确认授权', content: '需要获取您的地理位置,请确认授权',
confirmColor: '#8c75d0', confirmColor: '#8c75d0',
success(res) { success(res) {
if (res.cancel) { if (res.cancel) {
//取消授权 // 取消授权
wx.showToast({ wx.showToast({
title: '拒绝授权', title: '拒绝授权',
icon: 'none', icon: 'none',
duration: 1000, duration: 1000,
}) })
that.getDetail() that.getDetail()
} else if (res.confirm) { }
//确定授权,通过wx.openSetting发起授权请求 else if (res.confirm) {
// 确定授权,通过wx.openSetting发起授权请求
wx.openSetting({ wx.openSetting({
success(res) { success(res) {
if (res.authSetting['scope.userFuzzyLocation'] == true) { if (res.authSetting['scope.userFuzzyLocation'] == true) {
wx.showToast({ wx.showToast({
title: '授权成功', title: '授权成功',
icon: 'success', icon: 'success',
duration: 1000 duration: 1000,
}) })
// 再次授权,调用wx.getLocation的API // 再次授权,调用wx.getLocation的API
that.getFuzzyLocation() that.getFuzzyLocation()
} else { }
else {
wx.showToast({ wx.showToast({
title: '授权失败', title: '授权失败',
icon: 'none', icon: 'none',
duration: 1000 duration: 1000,
}) })
that.getDetail() that.getDetail()
} }
@ -83,7 +87,8 @@ Page({
} }
}, },
}) })
} else { }
else {
that.setData({ that.setData({
LNG: '', LNG: '',
LAT: '', LAT: '',
@ -123,13 +128,14 @@ Page({
this.setData({ this.setData({
detail: { detail: {
...res, ...res,
doctors: res.doctors.map((item: any) => { doctors: res.doctors?.map((item: any) => {
let weekName = '' let weekName = ''
if (item.ClinicType == 2) { if (item.ClinicType == 2) {
weekName = item.Clinic weekName = item.Clinic
} else { }
else {
weekName = (JSON.parse(item.Clinic) ? JSON.parse(item.Clinic) : []).map( weekName = (JSON.parse(item.Clinic) ? JSON.parse(item.Clinic) : []).map(
(subItem: { weekday: string | number; timeType: string | number }) => { (subItem: { weekday: string | number, timeType: string | number }) => {
const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
const timeDay = { 1: '上午', 2: '下午' } const timeDay = { 1: '上午', 2: '下午' }
return { week: week[Number(subItem.weekday) - 1], timeDay: timeDay[subItem.timeType] } return { week: week[Number(subItem.weekday) - 1], timeDay: timeDay[subItem.timeType] }

10
src/patient/pages/hospital/index.wxml

@ -1,7 +1,7 @@
<scroll-view class="scroll-view" enhanced scroll-y show-scrollbar="{{false}}"> <scroll-view class="scroll-view" enhanced scroll-y show-scrollbar="{{false}}">
<view <view
class="page" class="page"
style="background: url({{imageUrl}}za-images//1.5/hostipal.png?t={{Timestamp}}) no-repeat top center / 100% 520rpx;padding-top:{{bottom}}px" style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx"
> >
<navBar background="{{background}}" title="医院介绍" back bind:back="handleBack"></navBar> <navBar background="{{background}}" title="医院介绍" back bind:back="handleBack"></navBar>
<view class="banner"> <view class="banner">
@ -21,8 +21,8 @@
<view class="site-num">{{detail.dist}}</view> <view class="site-num">{{detail.dist}}</view>
</view> </view>
<view class="options"> <view class="options">
<image class="icon" src="{{imageUrl}}za-images//1.5/site.png" bind:tap="handleOpenMap"></image> <image class="icon" src="{{imageUrl}}icon91.png?t={{Timestamp}}" bind:tap="handleOpenMap"></image>
<image class="icon" src="{{imageUrl}}za-images//1.5/phone.png" bind:tap="handlePhone"></image> <image class="icon" src="{{imageUrl}}icon92.png?t={{Timestamp}}" bind:tap="handlePhone"></image>
</view> </view>
</view> </view>
</view> </view>
@ -30,9 +30,7 @@
<view class="module"> <view class="module">
<view class="module-container"> <view class="module-container">
<view class="m-title"> <view class="m-title">
<image class="m-title-img" src="{{imageUrl}}za-images//1.5/hos-title.png"></image> <image class="m-title-img" src="{{imageUrl}}title10.png?t={{Timestamp}}"></image>
<image class="m-icon1" src="{{imageUrl}}za-images//1.5/hos-icon1.png"></image>
<image class="m-icon2" src="{{imageUrl}}za-images//1.5/hos-icon1.png"></image>
</view> </view>
<view <view
class="new-card" class="new-card"

32
src/patient/pages/index/index.scss

@ -462,6 +462,38 @@ page {
} }
} }
} }
.new-server {
margin: $page-margin;
.title {
font-size: 36rpx;
color: #211d2e;
font-weight: bold;
line-height: 40rpx;
}
.list {
margin-top: 24rpx;
padding: 32rpx;
border-radius: 24rpx;
display: flex;
align-items: center;
gap: 20rpx;
background: linear-gradient( 183deg, #F7F1FF 0%, #FFFFFF 100%);
.item {
flex: 1;
text-align: center;
.icon {
display: inline-block;
width: 104rpx;
height: 104rpx;
}
.name {
margin-top: 8rpx;
font-size: 32rpx;
color: #211D2E;
}
}
}
}
} }
.reg { .reg {
position: fixed; position: fixed;

18
src/patient/pages/index/index.wxml

@ -102,12 +102,7 @@
data-url="{{card.configLinkUrl || '/patient/pages/live/index?index=0'}}" data-url="{{card.configLinkUrl || '/patient/pages/live/index?index=0'}}"
data-code="{{card.code}}" data-code="{{card.code}}"
> >
<image <image wx:if="{{card.configImg}}" class="live-img" mode="aspectFill" src="{{card.configImg}}"></image>
wx:if="{{card.configImg}}"
class="live-img"
mode="aspectFill"
src="{{card.configImg}}"
></image>
<image <image
wx:else wx:else
class="live-img" class="live-img"
@ -212,6 +207,17 @@
</swiper-item> </swiper-item>
</swiper> </swiper>
</view> </view>
<view class="new-server" wx:if="{{card.code == 'serviceConf' && card.showStatus == 1}}">
<view class="title">就诊地图</view>
<view class="list">
<block wx:for="{{card.subList}}" wx:key="index">
<view class="item" bind:tap="routerTo" data-url="{{item.linkUrl}}" data-code="{{card.code}}">
<image class="icon" src="{{item.img}}"></image>
<view class="name">{{item.title}}</view>
</view>
</block>
</view>
</view>
</block> </block>
</view> </view>

102
src/patient/pages/infusionCenter/index.scss

@ -1,9 +1,93 @@
.page { .page {
display: block; position: relative;
width: 100%; .banner {
} width: 100%;
.page-title { min-height: 374rpx;
margin-top: -120rpx; }
text-align: center; .container {
color: #fea8b7; padding: 48rpx 40rpx;
} position: absolute;
top: 348rpx;
left: 0;
width: 100%;
min-height: 100vh;
border-radius: 24rpx 24rpx 0 0;
background-color: #fff;
box-sizing: border-box;
.title {
font-size: 36rpx;
color: #211d2e;
font-weight: bold;
}
.content {
margin-top: 32rpx;
margin-bottom: 20rpx;
display: flex;
justify-content: space-between;
.inner {
.site {
font-size: 28rpx;
color: #adacb2;
}
.tel {
font-size: 28rpx;
color: #adacb2;
}
}
}
.options {
margin-top: 40rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 30rpx;
.phone {
flex: 1;
line-height: 70rpx;
font-size: 32rpx;
color: #b982ff;
text-align: center;
border-radius: 60rpx 60rpx 60rpx 60rpx;
border: 1px solid #b982ff;
.icon {
display: inline-block;
width: 36rpx;
height: 36rpx;
vertical-align: middle;
}
}
.site {
flex: 1;
line-height: 76rpx;
font-size: 32rpx;
color: #ffffff;
border-radius: 60rpx;
text-align: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
.icon {
display: inline-block;
width: 32rpx;
height: 32rpx;
vertical-align: middle;
}
}
}
.remark {
margin-top: 56rpx;
padding: 32rpx;
border-radius: 24rpx;
background-color: #fafafa;
.r-title {
font-size: 32rpx;
color: #211d2e;
font-weight: bold;
}
.r-content {
margin-top: 20rpx;
font-size: 28rpx;
color: #69686e;
}
}
}
}

60
src/patient/pages/infusionCenter/index.ts

@ -1,6 +1,54 @@
const _app = getApp<IAppOption>(); const app = getApp<IAppOption>()
Page({ Page({
data: {}, data: {
onLoad() { }, id: '',
}) detail: {} as any,
},
onLoad(options) {
this.setData({
id: options.id,
})
app.waitLogin({ type: [0, 1] }).then(() => {
this.getDetail()
})
},
getDetail() {
wx.ajax({
method: 'GET',
url: '?r=xd/infusion-center/detail',
data: {
Id: this.data.id,
},
}).then((res) => {
this.setData({
detail: res,
})
})
},
handleSite() {
const { LNG, LAT, ProvinceName, CityName, CountyName, Address, Name } = this.data.detail
wx.openLocation({
latitude: LAT,
longitude: LNG,
name: Name,
address: `${ProvinceName}${CityName}${CountyName}${Address}`,
})
},
handlePhone() {
const tel = this.data.detail.Telephone
if (!tel) {
wx.showToast({
icon: 'none',
title: '电话暂未开通',
})
return
}
wx.makePhoneCall({
phoneNumber: tel,
})
},
})
export {}

29
src/patient/pages/infusionCenter/index.wxml

@ -1,2 +1,27 @@
<image class="page" mode="widthFix" src="{{imageUrl}}za-images//infusionCenter.png?t={{Timestamp}}"></image> <view class="page">
<view class="page-title">即将上线,敬请期待!</view> <image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image>
<image wx:else class="banner" mode="widthFix" src="{{imageUrl}}bg25.png?t={{Timestamp}}"></image>
<view class="container">
<view class="title">{{detail.Name}}</view>
<view class="content">
<view class="inner">
<view class="site">{{detail.ProvinceName}}{{detail.CityName}}{{detail.CountyName}}{{detail.Address}}</view>
<view class="tel">{{detail.Telephone}}</view>
</view>
</view>
<view class="options">
<view class="phone" bind:tap="handlePhone">
<image class="icon" src="{{imageUrl}}icon95.png?t={{Timestamp}}"></image>
电话
</view>
<view class="site" bind:tap="handleSite" wx:if="{{detail.Address}}">
<image class="icon" src="{{imageUrl}}icon96.png?t={{Timestamp}}"></image>
地址
</view>
</view>
<view class="remark" wx:if="{{detail.Remark}}">
<view class="r-title">备注</view>
<view class="r-content">{{detail.Remark}}</view>
</view>
</view>
</view>

12
src/patient/pages/liveResult/index.scss

@ -41,6 +41,18 @@ page {
color: #fff; color: #fff;
text-align: center; text-align: center;
} }
.go-live {
margin: 38rpx auto 0;
width: 456rpx;
height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 40rpx;
color: #B982FF;
background: linear-gradient(to bottom, #ffffff 0%, #e8d6ff 100%);
border-radius: 48rpx 48rpx 48rpx 48rpx;
}
.price { .price {
margin: 10rpx auto 0; margin: 10rpx auto 0;
font-size: 56rpx; font-size: 56rpx;

5
src/patient/pages/liveResult/index.wxml

@ -13,7 +13,10 @@
<view class="page-container" style="top:{{pageTop+30}}px;"> <view class="page-container" style="top:{{pageTop+30}}px;">
<image class="badge" mode="aspectFit" src="{{imageUrl}}icon43.png?t={{Timestamp}}"></image> <image class="badge" mode="aspectFit" src="{{imageUrl}}icon43.png?t={{Timestamp}}"></image>
<view class="status">报名成功</view> <view class="status">报名成功</view>
<view class="tip">欢迎您参与此次活动</view> <!-- <view class="tip">欢迎您参与此次活动</view> -->
<view class="go-live" wx:if="{{detail.BeginTimeValue * 1 < dateValue * 1 && detail.Type==1}}" bind:tap="handleLive">
立即进入直播间
</view>
<view class="office"> <view class="office">
<view class="o-title">关注公众号,活动提醒不错过</view> <view class="o-title">关注公众号,活动提醒不错过</view>
<image class="code" src="{{qrCode}}" show-menu-by-longpress></image> <image class="code" src="{{qrCode}}" show-menu-by-longpress></image>

Loading…
Cancel
Save