Browse Source

就诊地图开发完毕

dev
kola-web 4 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 @@ @@ -23,11 +23,25 @@
"miniprogram": {
"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",
"pathName": "patient/pages/liveDetail/index",
"query": "id=33",
"scene": null,
"launchMode": "default"
"launchMode": "default",
"scene": null
},
{
"name": "患者-个人信息",

2
src/app.json

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

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

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

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

@ -1,128 +1,93 @@ @@ -1,128 +1,93 @@
.page {
position: relative;
.banner {
width: 100%;
min-height: 344rpx;
}
.container {
padding: 48rpx 40rpx;
position: absolute;
top: 316rpx;
left: 0;
width: 100%;
min-height: 100vh;
border-radius: 24rpx 24rpx 0 0;
background-color: #fafafa;
box-sizing: border-box;
.title {
font-size: 36rpx;
color: #484848;
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 {
margin-top: 32rpx;
margin-bottom: 20rpx;
display: flex;
justify-content: space-between;
.inner {
.site {
font-size: 28rpx;
color: #9e9e9e;
}
.tel {
font-size: 28rpx;
color: #9b9ea6;
}
}
.options {
flex-shrink: 0;
display: flex;
.option {
margin-left: 30rpx;
.phone {
width: 48rpx;
height: 48rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: #fff;
box-shadow: 0 4rpx 20rpx 0 rgba(0, 0, 0, 0.1);
&-img {
width: 24rpx;
height: 24rpx;
}
}
.name {
margin-top: 8rpx;
font-size: 24rpx;
color: #484848;
}
}
}
}
.card {
margin-bottom: 16rpx;
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;
}
}
}
}
.page {
position: relative;
.banner {
width: 100%;
min-height: 374rpx;
}
.container {
padding: 48rpx 40rpx;
position: absolute;
top: 348rpx;
left: 0;
width: 100%;
min-height: 100vh;
border-radius: 24rpx 24rpx 0 0;
background-color: #FFFFFF;
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;
}
}
}
}

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

@ -1,52 +1,54 @@ @@ -1,52 +1,54 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {} as any,
},
onLoad(options) {
this.setData({
id: options.id,
});
app.waitLogin().then(() => {
this.getDetail();
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/dtp-pharmacy/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,
});
},
});
const app = getApp<IAppOption>()
Page({
data: {
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=zd/dtp-pharmacy/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 {}

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

@ -1,61 +1,27 @@ @@ -1,61 +1,27 @@
<view class="page">
<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>
<view class="container">
<view class="title">{{detail.Name}}</view>
<view class="tags">
<view class="tag" wx:if="{{detail.IsOwnInfusionCenter==1}}">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/inject.png"></image>
<!-- {{detail.OwnInfusionCenterName}} -->
自有输注中心
</view>
<view class="tag" wx:if="{{detail.IsCooperationInfusionCenter==1}}">
<image class="icon" mode="widthFix" src="{{imageUrl}}za-images//nrdl/cooperate.png"></image>
<!-- {{detail.CooperationInfusionCenterName}} -->
合作输注中心
</view>
</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 class="options">
<view class="option" bind:tap="handleSite" wx:if="{{detail.Address}}">
<view class="phone">
<image class="phone-img" src="{{imageUrl}}za-images//nrdl/site.png"></image>
</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>
<view class="page">
<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>

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

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

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

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

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

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

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<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>
<view class="page-container" style="padding-top:{{pageTop+24}}px;">
<view class="content">

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

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

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

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

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

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<scroll-view class="scroll-view" enhanced scroll-y show-scrollbar="{{false}}">
<view
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>
<view class="banner">
@ -21,8 +21,8 @@ @@ -21,8 +21,8 @@
<view class="site-num">{{detail.dist}}</view>
</view>
<view class="options">
<image class="icon" src="{{imageUrl}}za-images//1.5/site.png" bind:tap="handleOpenMap"></image>
<image class="icon" src="{{imageUrl}}za-images//1.5/phone.png" bind:tap="handlePhone"></image>
<image class="icon" src="{{imageUrl}}icon91.png?t={{Timestamp}}" bind:tap="handleOpenMap"></image>
<image class="icon" src="{{imageUrl}}icon92.png?t={{Timestamp}}" bind:tap="handlePhone"></image>
</view>
</view>
</view>
@ -30,9 +30,7 @@ @@ -30,9 +30,7 @@
<view class="module">
<view class="module-container">
<view class="m-title">
<image class="m-title-img" src="{{imageUrl}}za-images//1.5/hos-title.png"></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>
<image class="m-title-img" src="{{imageUrl}}title10.png?t={{Timestamp}}"></image>
</view>
<view
class="new-card"

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

@ -462,6 +462,38 @@ page { @@ -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 {
position: fixed;

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

@ -102,12 +102,7 @@ @@ -102,12 +102,7 @@
data-url="{{card.configLinkUrl || '/patient/pages/live/index?index=0'}}"
data-code="{{card.code}}"
>
<image
wx:if="{{card.configImg}}"
class="live-img"
mode="aspectFill"
src="{{card.configImg}}"
></image>
<image wx:if="{{card.configImg}}" class="live-img" mode="aspectFill" src="{{card.configImg}}"></image>
<image
wx:else
class="live-img"
@ -212,6 +207,17 @@ @@ -212,6 +207,17 @@
</swiper-item>
</swiper>
</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>
</view>

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

@ -1,9 +1,93 @@ @@ -1,9 +1,93 @@
.page {
display: block;
width: 100%;
}
.page-title {
margin-top: -120rpx;
text-align: center;
color: #fea8b7;
}
.page {
position: relative;
.banner {
width: 100%;
min-height: 374rpx;
}
.container {
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 @@ @@ -1,6 +1,54 @@
const _app = getApp<IAppOption>();
Page({
data: {},
onLoad() { },
})
const app = getApp<IAppOption>()
Page({
data: {
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 @@ @@ -1,2 +1,27 @@
<image class="page" mode="widthFix" src="{{imageUrl}}za-images//infusionCenter.png?t={{Timestamp}}"></image>
<view class="page-title">即将上线,敬请期待!</view>
<view class="page">
<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 { @@ -41,6 +41,18 @@ page {
color: #fff;
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 {
margin: 10rpx auto 0;
font-size: 56rpx;

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

@ -13,7 +13,10 @@ @@ -13,7 +13,10 @@
<view class="page-container" style="top:{{pageTop+30}}px;">
<image class="badge" mode="aspectFit" src="{{imageUrl}}icon43.png?t={{Timestamp}}"></image>
<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="o-title">关注公众号,活动提醒不错过</view>
<image class="code" src="{{qrCode}}" show-menu-by-longpress></image>

Loading…
Cancel
Save