Browse Source

联调 stash

master
kola-web 3 weeks ago
parent
commit
6baf27b0b0
  1. 32
      project.private.config.json
  2. 20
      src/app.ts
  3. 22
      src/custom-tab-bar/index.ts
  4. 6
      src/doctor/pages/d_changeDoctor/index.json
  5. 71
      src/doctor/pages/d_changeDoctor/index.scss
  6. 30
      src/doctor/pages/d_changeDoctor/index.wxml
  7. 22
      src/doctor/pages/d_home/index.scss
  8. 138
      src/doctor/pages/d_home/index.ts
  9. 29
      src/doctor/pages/d_home/index.wxml
  10. 18
      src/doctor/pages/d_interactiveDoctor/index.scss
  11. 1
      src/doctor/pages/d_invite/index.scss
  12. 27
      src/doctor/pages/d_patient/index.ts
  13. 7
      src/doctor/pages/d_patient/index.wxml
  14. 1
      src/doctor/pages/d_patientDetail/index.scss
  15. 26
      src/doctor/pages/d_patientDetail/index.ts
  16. 22
      src/doctor/pages/d_patientDetail/index.wxml
  17. 305
      src/doctor/pages/d_patientList/index.scss
  18. 41
      src/doctor/pages/d_patientList/index.ts
  19. 172
      src/doctor/pages/d_patientList/index.wxml
  20. 29
      src/doctor/pages/d_userInfo/index.scss
  21. 8
      src/doctor/pages/d_userInfo/index.wxml
  22. BIN
      src/images/bg15.png
  23. BIN
      src/images/bg28.png
  24. BIN
      src/images/bg29.png
  25. BIN
      src/images/icon84.png
  26. BIN
      src/images/icon85.png
  27. BIN
      src/images/icon99.png
  28. BIN
      src/images/kkd1.png
  29. 8
      src/pages/enterInfo/index.ts
  30. 2
      src/pages/enterInfo/index.wxml
  31. 13
      src/pages/index/index.scss
  32. 40
      src/pages/index/index.ts
  33. 13
      src/pages/index/index.wxml
  34. 11
      src/pages/interactivePatient/index.scss
  35. 2
      src/pages/interactivePatient/index.ts
  36. 1
      src/pages/login/index.wxml
  37. 4
      src/pages/my/index.wxml
  38. 2
      src/pages/qaForm/index.json
  39. 2
      src/pages/qaForm/index.scss
  40. 13
      src/pages/qaForm/index.ts
  41. 7
      src/pages/signIn/index.json
  42. 169
      src/pages/signIn/index.scss
  43. 99
      src/pages/signIn/index.ts
  44. 57
      src/pages/signIn/index.wxml
  45. 4
      src/pages/start/index.ts

32
project.private.config.json

@ -22,13 +22,34 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "医生-切换患者端", "name": "患者-健康档案",
"pathName": "doctor/pages/d_trans/index", "pathName": "pages/qaForm/index",
"query": "", "query": "",
"scene": null, "scene": null,
"launchMode": "default" "launchMode": "default"
}, },
{ {
"name": "患者-记录就诊时间",
"pathName": "pages/signIn/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "患者-注册表单",
"pathName": "pages/enterInfoQa/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "医生-切换患者端",
"pathName": "doctor/pages/d_trans/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "患者-审核中", "name": "患者-审核中",
"pathName": "gift/pages/vipPending/index", "pathName": "gift/pages/vipPending/index",
"query": "", "query": "",
@ -127,13 +148,6 @@
"scene": null "scene": null
}, },
{ {
"name": "患者-问卷",
"pathName": "pages/qaForm/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "患者-用药认证审核失败", "name": "患者-用药认证审核失败",
"pathName": "gift/pages/vipReject/index", "pathName": "gift/pages/vipReject/index",
"query": "", "query": "",

20
src/app.ts

@ -328,7 +328,7 @@ App<IAppOption>({
} }
if (grade == 4 && Number(UserType) < 4) { if (grade == 4 && Number(UserType) < 4) {
wx.reLaunch({ wx.reLaunch({
url: '/pages/vipLogin/index', url: '/gift/pages/vipCert/index',
}) })
isReject = true isReject = true
} }
@ -352,7 +352,7 @@ App<IAppOption>({
method: 'GET', method: 'GET',
url: '?r=igg4/account/info', url: '?r=igg4/account/info',
showMsg: false, showMsg: false,
}).then((res) => { }).then(async (res) => {
res.UserType = res.UserType || 1 res.UserType = res.UserType || 1
if (res.UserType > 2) { if (res.UserType > 2) {
this.globalData.anyWhere = false this.globalData.anyWhere = false
@ -362,7 +362,6 @@ App<IAppOption>({
self?.setData({ self?.setData({
userInfo: res, userInfo: res,
}) })
// this.globalData.scene.doctorId = 3
const { doctorId, recDoctorId: recommendDoctorId } = this.globalData.scene const { doctorId, recDoctorId: recommendDoctorId } = this.globalData.scene
if ( if (
doctorId && doctorId &&
@ -371,7 +370,7 @@ App<IAppOption>({
res.PatientId && res.PatientId &&
!recommendDoctorId !recommendDoctorId
) { ) {
wx.ajax({ await wx.ajax({
method: 'POST', method: 'POST',
url: '?r=igg4/account/update-doctor', url: '?r=igg4/account/update-doctor',
data: { data: {
@ -379,6 +378,19 @@ App<IAppOption>({
inviteChannel: 1, inviteChannel: 1,
}, },
}) })
this.globalData.scene.doctorId = ''
const updatedRes = await wx.ajax({
method: 'GET',
url: '?r=igg4/account/info',
showMsg: false,
})
updatedRes.UserType = updatedRes.UserType || 1
this.globalData.userInfo = updatedRes
this.triggerListeners()
self?.setData({
userInfo: updatedRes,
})
res = updatedRes
} }
if (recommendDoctorId && doctorId) { if (recommendDoctorId && doctorId) {
wx.ajax({ wx.ajax({

22
src/custom-tab-bar/index.ts

@ -20,17 +20,17 @@ Component({
icon: 'story', icon: 'story',
iconActive: 'story-active', iconActive: 'story-active',
}, },
{ // {
pagePath: '/pages/certReslove/index', // pagePath: '/pages/certReslove/index',
text: '突眼日记', // text: '突眼日记',
custom: true, // custom: true,
}, // },
{ // {
pagePath: '/pages/live/index', // pagePath: '/pages/live/index',
text: '活动', // text: '活动',
icon: 'gift', // icon: 'gift',
iconActive: 'gift-active', // iconActive: 'gift-active',
}, // },
{ {
pagePath: '/pages/my/index', pagePath: '/pages/my/index',
text: '我的', text: '我的',

6
src/doctor/pages/d_changeDoctor/index.json

@ -1,8 +1,6 @@
{ {
"navigationBarTitleText": "登录", "navigationBarTitleText": "切换医生",
"navigationStyle": "custom",
"usingComponents": { "usingComponents": {
"van-divider": "@vant/weapp/divider/index", "van-divider": "@vant/weapp/divider/index"
"navBar": "/components/navBar/navBar"
} }
} }

71
src/doctor/pages/d_changeDoctor/index.scss

@ -1,21 +1,28 @@
.page { .page {
min-height: 100vh; min-height: 100vh;
padding: 460rpx 0 80rpx 0; padding: 36rpx 0 80rpx 0;
box-sizing: border-box; box-sizing: border-box;
.container { .container {
padding: 0 60rpx; padding: 0 40rpx;
.page-logo {
margin: 0 auto;
display: block;
width: 223rpx;
height: 280rpx;
}
.c-title { .c-title {
font-size: 36rpx; margin-top: 56rpx;
color: rgba(32, 33, 33, 1); font-size: 40rpx;
color: rgba(33, 33, 32, 1);
font-weight: bold; font-weight: bold;
} }
.content { .content {
margin-top: 30rpx; margin-top: 30rpx;
font-size: 32rpx; font-size: 32rpx;
color: rgba(32, 33, 33, 1); color: rgba(33, 33, 32, 0.70);
line-height: 56rpx; line-height: 56rpx;
.link { .link {
color: rgba(67, 168, 188, 1); color: rgba(22, 121, 203, 1);
} }
} }
} }
@ -26,7 +33,7 @@
margin-bottom: 32rpx; margin-bottom: 32rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-radius: 64rpx; border-radius: 12rpx;
background: rgba(247, 247, 247, 1); background: rgba(247, 247, 247, 1);
border: 1rpx solid rgba(237, 239, 240, 1); border: 1rpx solid rgba(237, 239, 240, 1);
.input { .input {
@ -34,10 +41,10 @@
padding: 20rpx 32rpx; padding: 20rpx 32rpx;
height: 40rpx; height: 40rpx;
font-size: 32rpx; font-size: 32rpx;
color: #999999; color: #000;
} }
.input-placeholade { .input-placeholade {
color: rgba(194, 201, 202, 1); color: rgba(33, 33, 32, 0.40);
} }
.code { .code {
margin-left: 24rpx; margin-left: 24rpx;
@ -45,7 +52,7 @@
width: 262rpx; width: 262rpx;
border-radius: 24rpx; border-radius: 24rpx;
font-size: 32rpx; font-size: 32rpx;
color: rgba(103, 186, 202, 1); color: rgba(22, 121, 203, 1);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -54,48 +61,16 @@
.submit { .submit {
margin-top: 32px; margin-top: 32px;
padding: 24rpx 20rpx; padding: 24rpx 20rpx;
width: 622rpx; border-radius: 12rpx;
background: rgba(103, 186, 202, 1); background: linear-gradient(90deg, #293B9F 0%, #1679CB 100%);
border-radius: 64rpx; font-size: 32rpx;
font-size: 36rpx;
color: #ffffff; color: #ffffff;
font-weight: bold;
text-align: center; text-align: center;
line-height: 1; line-height: 48rpx;
}
}
.divider {
margin: 36rpx auto 0;
width: 338rpx;
}
.phone {
margin: 0 48rpx;
padding: 24rpx 20rpx;
border-radius: 64rpx;
background: #eeeeee;
font-size: 36rpx;
color: rgba(103, 186, 202, 1);
line-height: 1;
&::after {
border: none;
outline: none;
}
}
.partient {
margin-top: 58rpx;
font-size: 36rpx;
color: rgba(103, 186, 202, 1);
display: flex;
gap: 10rpx;
align-items: center;
justify-content: center;
.arrow {
width: 23rpx;
height: 19rpx;
} }
} }
.check { .check {
margin: 50rpx 0 0; margin: 50rpx 50rpx 0;
display: flex; display: flex;
line-height: 60rpx; line-height: 60rpx;
color: rgba(32, 33, 33, 1); color: rgba(32, 33, 33, 1);
@ -107,7 +82,7 @@
height: 32rpx; height: 32rpx;
} }
.link { .link {
color: rgba(67, 168, 188, 1); color: rgba(22, 121, 203, 1);
} }
} }
} }

30
src/doctor/pages/d_changeDoctor/index.wxml

@ -1,14 +1,12 @@
<view class="page" style="background: url({{imageUrl}}/bg4.png?t={{Timestamp}}) no-repeat top center / 100% 648rpx"> <view class="page">
<navBar background="{{background}}" fixed back bind:back="handleBack"></navBar>
<view class="container"> <view class="container">
<image class="page-logo" src="{{imageUrl}}bg19.png?t={{Timestamp}}"></image>
<view class="c-title">尊敬的医生您好</view> <view class="c-title">尊敬的医生您好</view>
<view class="content">愈见昕生是中国罕见病联盟/北京罕见病诊疗与保障学会发起的gMG患者健康全程管理平台;</view> <view class="content">"愈见昕生"是北京白求恩公益基金会发起的 IgG4-RD 患者健康管理平台。</view>
<view class="content"> <view class="content">
在您加入愈见昕生平台之前,请您阅读并充分理解 加入平台前,请您仔细阅读
<text class="link" bind:tap="handleLink">《隐私协议保护政策》</text> <text class="link" bind:tap="handleLink">《隐私保护协议》</text>
,了解您的权益及相关数据处理方法,我们将严格按照法律法规及 ,了解您的权益及个人信息处理方式。我们将严格依法保护您的个人信息安全。
<text class="link" bind:tap="handleLink">《隐私协议保护政策》</text>
的相关规定,保证您的个人信息不受侵犯。
</view> </view>
</view> </view>
<view class="form"> <view class="form">
@ -32,14 +30,14 @@
<view class="code" bind:tap="getCode">{{codeText}}</view> <view class="code" bind:tap="getCode">{{codeText}}</view>
</view> </view>
<view class="submit" bind:tap="handleSubmit">切换医生</view> <view class="submit" bind:tap="handleSubmit">切换医生</view>
<view class="check"> </view>
<image wx:if="{{check}}" class="icon" src="{{imageUrl}}icon12.png?t={{Timestamp}}" bind:tap="handleCheck"></image> <view class="check">
<image wx:else class="icon" src="{{imageUrl}}icon13.png?t={{Timestamp}}" bind:tap="handleCheck"></image> <image wx:if="{{check}}" class="icon" src="{{imageUrl}}icon52.png?t={{Timestamp}}" bind:tap="handleCheck"></image>
<view class="p"> <image wx:else class="icon" src="{{imageUrl}}icon13.png?t={{Timestamp}}" bind:tap="handleCheck"></image>
我特此同意依照此 <view class="p">
<text class="link" bind:tap="handleLink">《隐私协议保护政策》</text> 我同意依照此
规定收集我的个人敏感信息 <text class="link" bind:tap="handleLink">《隐私政策》</text>
</view> 规定收集我的个人敏感信息
</view> </view>
</view> </view>
</view> </view>

22
src/doctor/pages/d_home/index.scss

@ -23,6 +23,7 @@ page {
font-size: 32rpx; font-size: 32rpx;
color: rgba(33, 33, 32, 0.4); color: rgba(33, 33, 32, 0.4);
.tag { .tag {
vertical-align: 2rpx;
display: inline-block; display: inline-block;
padding: 0 12rpx; padding: 0 12rpx;
font-size: 22rpx; font-size: 22rpx;
@ -82,27 +83,6 @@ page {
margin: 24rpx 0 0; margin: 24rpx 0 0;
padding-top: 15px; padding-top: 15px;
border-radius: 24rpx 24rpx 24rpx 24rpx; border-radius: 24rpx 24rpx 24rpx 24rpx;
.switch {
margin: 15rpx 30rpx;
padding: 8rpx;
display: flex;
justify-content: space-between;
align-items: center;
background: #f2f4f5;
border-radius: 98rpx 98rpx 98rpx 98rpx;
.switch-item {
flex: 1;
padding: 14rpx;
font-size: 28rpx;
color: rgba(103, 113, 114, 1);
text-align: center;
border-radius: 62rpx;
&.active {
color: #fff;
background-color: rgba(39, 66, 164, 1);
}
}
}
.chart { .chart {
margin-top: 48rpx; margin-top: 48rpx;
padding: 32rpx 0; padding: 32rpx 0;

138
src/doctor/pages/d_home/index.ts

@ -19,12 +19,9 @@ Page({
hospital: {}, hospital: {},
detail: {}, detail: {},
tab1: 0,
year1: dayjs().format('YYYY'), year1: dayjs().format('YYYY'),
}, },
ecDataTrendComponent1_1: null as any, ecDataTrendComponent1_1: null as any,
ecDataTrendComponent1_2: null as any,
async onLoad() { async onLoad() {
const SystemInfo = app.globalSystemInfo const SystemInfo = app.globalSystemInfo
if (SystemInfo) { if (SystemInfo) {
@ -57,37 +54,16 @@ Page({
getDetail() { getDetail() {
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
url: '?r=igg4/doctor/doctor-stat/get-last-month', url: '?r=igg4/doctor/index/summary',
data: {}, data: {},
}).then((res) => { }).then((res) => {
this.setData({ this.setData({
detail: { detail: res,
...res,
year: dayjs(res.StatMonth).format('YYYY'),
yr: dayjs(res.StatMonth).format('YY'),
},
}) })
}) })
}, },
handleTab1(e) {
const { index } = e.currentTarget.dataset
this.setData({
tab1: index,
})
if (index === 0) {
this.getList1_1()
} else if (index === 1) {
this.getList1_2()
}
},
handleSelectYear1() { handleSelectYear1() {
this.handleTab1({ this.getList1_1()
currentTarget: {
dataset: {
index: this.data.tab1,
},
},
})
}, },
getList1_1() { getList1_1() {
wx.ajax({ wx.ajax({
@ -100,17 +76,6 @@ Page({
this.initChart1_1(res.list) this.initChart1_1(res.list)
}) })
}, },
getList1_2() {
wx.ajax({
method: 'GET',
url: '?r=igg4/doctor/doctor-stat/get-month-list',
data: {
statYear: this.data.year1,
},
}).then((res) => {
this.initChart1_2(res.list)
})
},
initChart1_1(list: any[]) { initChart1_1(list: any[]) {
return new Promise((reslove) => { return new Promise((reslove) => {
this.ecDataTrendComponent1_1 = this.selectComponent('#chart1_1') this.ecDataTrendComponent1_1 = this.selectComponent('#chart1_1')
@ -207,99 +172,6 @@ Page({
}) })
}) })
}, },
initChart1_2(list: any[]) {
this.ecDataTrendComponent1_2 = this.selectComponent('#chart1_2')
this.ecDataTrendComponent1_2.init((canvas, width, height, dpr) => {
const chart = echarts.init(canvas, null, {
width,
height,
devicePixelRatio: dpr, // new
})
canvas.setChart(chart)
const x: string[] = []
const y1: string[] = []
list.forEach((item) => {
x.push(item.StatMonth)
y1.push(item.InvitePCount)
})
const option = {
legend: {
bottom: 0,
itemWidth: 8,
itemHeight: 8,
icon: 'circle',
lineStyle: {
width: '0',
},
textStyle: {
color: 'rgba(103, 113, 114, 1)',
fontSize: '12',
},
data: [],
},
grid: {
top: '10%',
left: '3%',
right: '4%',
bottom: '30',
containLabel: true,
},
xAxis: [
{
type: 'category',
axisTick: {
show: false,
},
axisLabel: {
fontSize: 10,
color: 'rgba(40, 48, 49, 1)',
},
data: x,
},
],
yAxis: [
{
type: 'value',
minInterval: 1,
axisLabel: {
fontSize: 10,
color: 'rgba(40, 48, 49, 1)',
formatter(value) {
return Math.abs(value)
},
},
},
],
series: [
{
name: '患者数',
type: 'bar',
stack: 'a',
label: {
show: true,
color: '#000',
fontSize: 10,
overflow: 'truncate',
width: 30,
position: 'top',
},
color: 'rgba(103, 186, 202, 1)',
data: y1,
},
],
dataZoom: {
type: 'inside', // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。
startValue: x.length - 6,
endValue: x.length - 1,
filterMode: 'none',
},
}
chart.setOption(option)
return chart
})
},
handleQuestion(e) { handleQuestion(e) {
const { id } = e.currentTarget.dataset const { id } = e.currentTarget.dataset
@ -309,8 +181,8 @@ Page({
title: '累计邀约', title: '累计邀约',
}, },
2: { 2: {
content: `本月新邀约患者数`, content: `当月新增患者数`,
title: '月新增', title: '月新增',
}, },
}[id] }[id]
Dialog.alert({ Dialog.alert({

29
src/doctor/pages/d_home/index.wxml

@ -19,20 +19,20 @@
<van-icon catch:tap="handleQuestion" data-id="1" name="question" color="rgba(33, 33, 32, 0.30)" /> <van-icon catch:tap="handleQuestion" data-id="1" name="question" color="rgba(33, 33, 32, 0.30)" />
</view> </view>
<view class="num"> <view class="num">
{{detail.InvitePCount}} {{detail.TotalPatientNum}}
<text class="sub">人</text> <text class="sub">人</text>
</view> </view>
</view> </view>
</view> </view>
<view class="item" bind:tap="handlePatient" data-type="2" data-name="当月邀约"> <view class="item" bind:tap="handlePatient" data-type="2" data-name="当月新增">
<image class="icon" src="{{imageUrl}}icon54.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}icon54.png?t={{Timestamp}}"></image>
<view class="wrap"> <view class="wrap">
<view class="title"> <view class="title">
当月邀约 当月活跃
<van-icon catch:tap="handleQuestion" data-id="2" name="question" color="rgba(33, 33, 32, 0.30)" /> <van-icon catch:tap="handleQuestion" data-id="2" name="question" color="rgba(33, 33, 32, 0.30)" />
</view> </view>
<view class="num"> <view class="num">
{{detail.MonthInvitePCount}} {{detail.MonthNewPatientCount}}
<text class="sub">人</text> <text class="sub">人</text>
</view> </view>
@ -41,14 +41,6 @@
</view> </view>
<view class="page-container"> <view class="page-container">
<view class="card"> <view class="card">
<view class="switch">
<view class="switch-item {{tab1===0 && 'active'}}" bind:tap="handleTab1" data-index="{{0}}">
月度邀约患者数
</view>
<view class="switch-item {{tab1===1 && 'active'}}" bind:tap="handleTab1" data-index="{{1}}">
累计邀约患者数
</view>
</view>
<view class="chart"> <view class="chart">
<view class="chart-header"> <view class="chart-header">
<picker <picker
@ -65,16 +57,9 @@
</picker> </picker>
<view class="tip">统计数据截止昨天</view> <view class="tip">统计数据截止昨天</view>
</view> </view>
<block wx:if="{{tab1===0}}"> <view class="chart-container">
<view class="chart-container"> <ec-canvas id="chart1_1" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
<ec-canvas id="chart1_1" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas> </view>
</view>
</block>
<block wx:if="{{tab1===1}}">
<view class="chart-container">
<ec-canvas id="chart1_2" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</view>
</block>
</view> </view>
</view> </view>
</view> </view>

18
src/doctor/pages/d_interactiveDoctor/index.scss

@ -110,11 +110,11 @@ page {
margin-bottom: 32rpx; margin-bottom: 32rpx;
padding: 32rpx 30rpx; padding: 32rpx 30rpx;
border-radius: 32rpx 32rpx; border-radius: 32rpx 32rpx;
background: rgba(248, 248, 248, 1); background: rgba(22, 121, 203, 1);
border: 2rpx solid #ffffff; border: 2rpx solid #ffffff;
.title { .title {
font-size: 40rpx; font-size: 40rpx;
color: rgba(33, 33, 32, 1); color: rgba(255, 255, 255, 1);
font-weight: bold; font-weight: bold;
} }
.list { .list {
@ -126,7 +126,7 @@ page {
margin-bottom: 0; margin-bottom: 0;
} }
.order { .order {
margin-top: 6rpx; margin-top: 10rpx;
flex-shrink: 0; flex-shrink: 0;
width: 28rpx; width: 28rpx;
height: 28rpx; height: 28rpx;
@ -134,13 +134,13 @@ page {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
color: rgba(255, 255, 255, 1); color: rgba(22, 121, 203, 1);
border-radius: 6rpx; border-radius: 6rpx;
background: linear-gradient(90deg, #293b9f 0%, #1679cb 100%); background: rgba(255, 255, 255, 1);
} }
.content { .content {
font-size: 36rpx; font-size: 36rpx;
color: rgba(33, 33, 32, 1); color: #fff;
} }
} }
} }
@ -148,10 +148,10 @@ page {
.message { .message {
margin-bottom: 32rpx; margin-bottom: 32rpx;
padding: 26rpx 32rpx; padding: 26rpx 32rpx;
background: rgba(248, 248, 248, 1); background: rgba(22, 121, 203, 1);
border-radius: 32rpx; border-radius: 32rpx;
font-size: 36rpx; font-size: 36rpx;
color: rgba(33, 33, 32, 1); color: #fff;
white-space: pre-line; white-space: pre-line;
} }
.week { .week {
@ -229,7 +229,7 @@ page {
.adl { .adl {
position: relative; position: relative;
margin-bottom: 32rpx; margin-bottom: 32rpx;
adl-img { .adl-img {
width: 498rpx; width: 498rpx;
height: 250rpx; height: 250rpx;
} }

1
src/doctor/pages/d_invite/index.scss

@ -1,4 +1,5 @@
page{ page{
background-color: #3059C2;
} }
.page { .page {
position: relative; position: relative;

27
src/doctor/pages/d_patient/index.ts

@ -61,6 +61,11 @@ Page({
this.getList() this.getList()
}) })
}, },
onShow() {
if (this.data.list.length) {
this.getList()
}
},
handleReset() { handleReset() {
this.setData({ this.setData({
Search: '', Search: '',
@ -106,21 +111,19 @@ Page({
}, },
getList(newPage = 1) { getList(newPage = 1) {
const { active } = this.data const { active } = this.data
const params = { const params: any = {
search: this.data.Search, page: newPage,
count: 10,
Search: this.data.Search,
}
if (active === 0) {
} else if (active === 1) {
params.IsPreviousConvulsion = 1
} }
const url = {
0: '?r=igg4/doctor/patient/get-need-follow-list',
1: '?r=igg4/doctor/patient/get-no-standard-list',
2: '?r=igg4/doctor/patient/get-my-list',
}[active] as string
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
url, url: '?r=igg4/doctor/patient/list',
data: { data: params,
page: newPage,
...params,
},
}).then((res) => { }).then((res) => {
res.list.forEach((item) => { res.list.forEach((item) => {
if (item.LastAdlTime) { if (item.LastAdlTime) {

7
src/doctor/pages/d_patient/index.wxml

@ -17,7 +17,6 @@
<view class="navbar"> <view class="navbar">
<view class="nav {{active===0 && 'active'}}" bind:tap="handleNav" data-active="{{0}}">疾病基础</view> <view class="nav {{active===0 && 'active'}}" bind:tap="handleNav" data-active="{{0}}">疾病基础</view>
<view class="nav {{active===1 && 'active'}}" bind:tap="handleNav" data-active="{{1}}">复发/活动期</view> <view class="nav {{active===1 && 'active'}}" bind:tap="handleNav" data-active="{{1}}">复发/活动期</view>
<view class="nav {{active===2 && 'active'}}" bind:tap="handleNav" data-active="{{2}}">伊奈利珠单抗用药患者</view>
</view> </view>
</view> </view>
<view class="list"> <view class="list">
@ -28,10 +27,10 @@
<view class="container"> <view class="container">
<view class="title"> <view class="title">
<view class="name">{{item.Name}}</view> <view class="name">{{item.Name}}</view>
<view class="disease">病程{{'<'}}1年</view> <view class="disease">病程{{item.DiagnosisTimeRange == 1 ? '<1年' : item.DiagnosisTimeRange == 2 ? '1-3年' : '>3年'}}</view>
</view> </view>
<view class="replay-date">邀约时间:2025-12-30</view> <view class="replay-date">邀约时间:{{item.InviteTime}}</view>
<view class="remark">备注:111111111111111111111</view> <view class="remark">备注:{{item.DoctorRemark || '无'}}</view>
</view> </view>
</view> </view>
<pagination pagination="{{pagination}}"></pagination> <pagination pagination="{{pagination}}"></pagination>

1
src/doctor/pages/d_patientDetail/index.scss

@ -56,6 +56,7 @@ page {
.content { .content {
margin-top: 24rpx; margin-top: 24rpx;
text-align: left; text-align: left;
max-width: 100%;
} }
} }
.label { .label {

26
src/doctor/pages/d_patientDetail/index.ts

@ -124,6 +124,20 @@ Page({
nav: '0', nav: '0',
ageRangeMap: {
1: '<40岁',
2: '40-49岁',
3: '50-59岁',
4: '60-69岁',
5: '70-79岁',
6: '80岁以上',
},
diagnosisTimeRangeMap: {
1: '6个月以内',
2: '6个月-3年',
3: '3年以上',
},
adlList: [] as any, adlList: [] as any,
tableData: [ tableData: [
{ {
@ -222,6 +236,17 @@ Page({
? '' ? ''
: dayjs(res.LastUseDrugsTime).from(dayjs().format('YYYY-MM-DD')).replace(' ', '') : dayjs(res.LastUseDrugsTime).from(dayjs().format('YYYY-MM-DD')).replace(' ', '')
} }
res.AgeRangeName = this.data.ageRangeMap[res.AgeRange] || ''
res.DiagnosisTimeRangeName = this.data.diagnosisTimeRangeMap[res.DiagnosisTimeRange] || ''
if (res.HealthQA && res.HealthQA.hasSubmitted && res.HealthQA.questions) {
res.HealthQA.questions.forEach((q: any) => {
if (Array.isArray(q.AnswerText)) {
q.AnswerTextStr = q.AnswerText.join('、') + (q.OtherText ? `${q.OtherText}` : '')
} else {
q.AnswerTextStr = q.AnswerText + (q.OtherText ? `${q.OtherText}` : '')
}
})
}
this.setData({ this.setData({
detail: { detail: {
...res, ...res,
@ -927,6 +952,7 @@ Page({
icon: 'none', icon: 'none',
title: '请输入备注', title: '请输入备注',
}) })
return
} }
wx.ajax({ wx.ajax({
method: 'POST', method: 'POST',

22
src/doctor/pages/d_patientDetail/index.wxml

@ -10,31 +10,31 @@
<image wx:else class="tel-icon" src="{{imageUrl}}/5/eye1.png?t={{Timestamp}}"></image> <image wx:else class="tel-icon" src="{{imageUrl}}/5/eye1.png?t={{Timestamp}}"></image>
</view> </view>
<view class="content"> <view class="content">
<view>18岁以下 | {{showTel ? detail.Telephone : '***********'}}</view> <view>{{detail.AgeRangeName}} | {{showTel ? detail.Telephone : '***********'}}</view>
<view>邀约时间:2025-12-09 15:05:58</view> <view>邀约时间:{{detail.InviteTime}}</view>
</view> </view>
</view> </view>
</view> </view>
<view class="container"> <view class="container">
<view class="row"> <view class="row">
<view class="label">IgG4相关性疾病病程</view> <view class="label">IgG4相关性疾病病程</view>
<view class="content">4年</view> <view class="content">{{detail.DiagnosisTimeRangeName}}</view>
</view> </view>
<view class="row"> <view class="row" wx:if="{{detail.HealthQA && detail.HealthQA.hasSubmitted && detail.HealthQA.questions.length > 1}}">
<view class="label">疾病阶段</view> <view class="label">疾病阶段</view>
<view class="content">稳定期</view> <view class="content">{{detail.HealthQA.questions[1].AnswerTextStr}}</view>
</view> </view>
<view class="row"> <view class="row row-vetical" wx:if="{{detail.HealthQA && detail.HealthQA.hasSubmitted && detail.HealthQA.questions.length > 2}}">
<view class="label">正在使用的药物</view> <view class="label">正在使用的药物</view>
<view class="content">糖皮质激素 免疫抑制剂</view> <view class="content">{{detail.HealthQA.questions[2].AnswerTextStr}}</view>
</view> </view>
<view class="row row-vetical"> <view class="row row-vetical" wx:if="{{detail.HealthQA && detail.HealthQA.hasSubmitted && detail.HealthQA.questions.length > 0}}">
<view class="label">正在使用的药物</view> <view class="label">被确诊受累的器官</view>
<view class="content">糖皮质激素 免疫抑制剂</view> <view class="content">{{detail.HealthQA.questions[0].AnswerTextStr}}</view>
</view> </view>
<view class="row"> <view class="row">
<view class="label">备注</view> <view class="label">备注</view>
<view class="content">无</view> <view class="content">{{detail.DoctorRemark || ''}}</view>
</view> </view>
</view> </view>

305
src/doctor/pages/d_patientList/index.scss

@ -6,84 +6,6 @@ page {
.page { .page {
min-height: 100vh; min-height: 100vh;
.page-header {
position: sticky;
top: 0;
padding: 30rpx;
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(40, 48, 49, 0.04);
border-radius: 0 0 32rpx 32rpx;
z-index: 10;
.search {
padding: 18rpx 32rpx;
display: flex;
align-items: center;
gap: 16rpx;
background: linear-gradient(to top, #ffffff 0%, #ebf3f4 100%);
box-shadow: 0rpx 8rpx 8rpx 0rpx rgba(40, 48, 49, 0.04);
border-radius: 140rpx 140rpx 140rpx 140rpx;
border: 2rpx solid #ffffff;
.icon {
width: 40rpx;
height: 40rpx;
}
.input {
flex: 1;
font-size: 28rpx;
}
.input-place {
color: rgba(173, 179, 180, 1);
}
}
.navbar {
margin-top: 32rpx;
display: flex;
justify-content: space-between;
align-items: center;
.nav {
position: relative;
flex: 1;
text-align: center;
font-size: 32rpx;
color: rgba(103, 113, 114, 1);
transition: all 0.3s;
.dot {
padding: 0 4rpx;
position: absolute;
left: 50%;
transform: translateX(35rpx);
top: 0;
min-width: 18rpx;
height: 26rpx;
font-size: 18rpx;
line-height: 26rpx;
color: rgba(255, 255, 255, 1);
border-radius: 50%;
background: rgba(215, 108, 108, 1);
}
&.active {
font-size: 32rpx;
color: rgba(98, 190, 208, 1);
font-weight: bold;
&::after {
position: absolute;
bottom: -30rpx;
left: 50%;
transform: translateX(-50%);
content: '';
width: 52rpx;
height: 8rpx;
border-radius: 24rpx 24rpx 0 0;
background: #62bed0;
}
}
}
}
}
.total-line { .total-line {
padding: 34rpx 30rpx 0; padding: 34rpx 30rpx 0;
display: flex; display: flex;
@ -110,6 +32,7 @@ page {
color: rgba(43, 160, 184, 1); color: rgba(43, 160, 184, 1);
} }
} }
.data-tip { .data-tip {
font-size: 24rpx; font-size: 24rpx;
color: rgba(154, 161, 162, 1); color: rgba(154, 161, 162, 1);
@ -121,236 +44,58 @@ page {
.list-item { .list-item {
margin-top: 24rpx; margin-top: 24rpx;
padding: 36rpx 34rpx; padding: 28rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
display: flex; display: flex;
background: #ffffff;
border: 2rpx solid #f4f3f3;
border-radius: 24rpx;
box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.08);
.avatar { .avatar {
flex-shrink: 0; flex-shrink: 0;
.avatar-img { .avatar-img {
width: 100rpx; width: 111rpx;
height: 100rpx; height: 111rpx;
border-radius: 50%; border-radius: 50%;
} }
} }
.container { .container {
flex: 1; flex: 1;
padding-left: 20rpx; padding-left: 20rpx;
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.name { .name {
font-size: 32rpx; font-size: 40rpx;
color: #283031; color: rgba(40, 48, 49, 1);
font-weight: bold;
}
.send {
padding: 8rpx 22rpx;
font-size: 24rpx;
color: #67baca;
line-height: 1;
border-radius: 32rpx 32rpx 32rpx 32rpx;
border: 2rpx solid rgba(103, 186, 202, 0.26);
display: flex;
align-items: center;
gap: 8rpx;
.icon {
width: 28rpx;
height: 28rpx;
}
}
}
.tags {
margin-top: 16rpx;
display: flex;
flex-wrap: wrap;
gap: 12rpx;
.tag {
padding: 4rpx 16rpx;
font-size: 22rpx;
color: #e59a29;
line-height: 28rpx;
background: #fff5df;
border-radius: 8rpx 8rpx 8rpx 8rpx;
}
}
.content {
margin-top: 24rpx;
display: flex;
align-items: center;
flex-wrap: wrap;
font-size: 28rpx;
color: #283031;
gap: 14rpx;
.line {
flex-shrink: 0;
width: 2rpx;
height: 32rpx;
background-color: #eaeced;
}
.blod {
font-weight: bold; font-weight: bold;
} }
&.disable {
color: #9aa1a2; .disease {
font-size: 32rpx;
color: rgba(22, 121, 203, 1);
} }
} }
.replay-date { .replay-date {
margin-top: 16rpx; margin-top: 16rpx;
font-size: 28rpx; font-size: 28rpx;
color: #9aa1a2; color: #9aa1a2;
} }
}
}
}
}
.popup {
padding: 92rpx 30rpx calc(30rpx + env(safe-area-inset-bottom));
.form {
max-height: 60vh;
overflow-y: auto;
overflow-x: hidden;
.form-item {
margin-bottom: 48rpx;
.f-title {
font-size: 36rpx;
color: rgba(40, 48, 49, 1);
font-weight: bold;
}
.select {
margin-top: 24rpx;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16rpx;
.s-item {
padding: 18rpx 0;
text-align: center;
border-radius: 12rpx;
font-size: 28rpx;
color: rgba(103, 113, 114, 1);
background: #f2f4f5;
&.active {
color: #fff;
background-color: rgba(103, 186, 202, 1);
}
}
}
.custom {
margin-top: 16rpx;
display: flex;
align-items: center;
gap: 12rpx;
.c-item { .remark {
padding: 18rpx 24rpx; margin-top: 34rpx;
display: flex; padding-top: 24rpx;
align-items: center; border-top: 1px solid rgba(244, 243, 243, 1);
font-size: 32rpx; font-size: 32rpx;
color: rgba(103, 113, 114, 1); color: rgba(33, 33, 32, 1);
border-radius: 12rpx;
background-color: rgba(242, 244, 245, 1);
.input {
padding: 0;
margin: 0;
width: 3em;
font-size: 32rpx;
line-height: 1;
}
.input-place {
color: rgba(194, 201, 202, 1);
line-height: 1;
}
} }
} }
.date {
margin-top: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
.picker {
flex: 1;
.d-item {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
padding: 18rpx 32rpx;
background: #f7f8f9;
border-radius: 12rpx 12rpx 12rpx 12rpx;
.icon {
width: 32rpx;
height: 32rpx;
}
.content {
font-size: 32rpx;
color: #677172;
&:empty::after {
content: attr(data-place);
color: rgba(194, 201, 202, 1);
}
}
}
}
.sion {
flex-shrink: 0;
margin: 0 14rpx;
font-size: 32rpx;
color: #677172;
}
}
}
}
.p-footer {
margin-top: 32rpx;
display: flex;
justify-content: space-between;
align-items: center;
gap: 26rpx;
.reset {
flex: 1;
height: 84rpx;
font-size: 36rpx;
color: rgba(103, 186, 202, 1);
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
background: #ffffff;
border-radius: 98rpx 98rpx 98rpx 98rpx;
border: 2rpx solid #67baca;
}
.submit {
flex: 1;
height: 84rpx;
font-size: 36rpx;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
background: rgba(103, 186, 202, 1);
border-radius: 98rpx 98rpx 98rpx 98rpx;
} }
} }
} }

41
src/doctor/pages/d_patientList/index.ts

@ -1,11 +1,7 @@
import dayjs from 'dayjs'
const app = getApp<IAppOption>() const app = getApp<IAppOption>()
Page({ Page({
data: { data: {
active: 0,
statType: '', statType: '',
navTitle: '', navTitle: '',
@ -26,29 +22,25 @@ Page({
this.getList() this.getList()
}) })
}, },
handleReset() { onShow() {
this.getList() if (this.data.list.length) {
}, this.getList()
handleSearch() { }
this.getList()
}, },
getList(newPage = 1) { getList(newPage = 1) {
const params = { const { statType } = this.data
statType: this.data.statType, const params: any = {
page: newPage,
count: 10,
}
if (statType === '1') {
} else if (statType === '2') {
} }
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
url: '?r=igg4/doctor/patient/get-stat-patient-list', url: '?r=igg4/doctor/patient/list',
data: { data: params,
page: newPage,
...params,
},
}).then((res) => { }).then((res) => {
res.list.forEach((item) => {
if (item.LastAdlTime) {
item.LastAdlTimeName = dayjs(item.LastAdlTime).from(dayjs().format('YYYY-MM-DD')).replace(' ', '')
}
})
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list] const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]
this.setData({ this.setData({
total: res.count, total: res.count,
@ -70,17 +62,10 @@ Page({
handleDetail(e: any) { handleDetail(e: any) {
const { index } = e.currentTarget.dataset const { index } = e.currentTarget.dataset
const item = this.data.list[index] const item = this.data.list[index]
wx.navigateTo({ wx.navigateTo({
url: `/doctor/pages/d_patientDetail/index?id=${item.PatientId}`, url: `/doctor/pages/d_patientDetail/index?id=${item.PatientId}`,
}) })
}, },
handleSend(e) {
const { index } = e.currentTarget.dataset
wx.navigateTo({
url: `/doctor/pages/d_interactiveDoctor/index?patientId=${this.data.list[index].PatientId}`,
})
},
handleSendGroup() { handleSendGroup() {
wx.navigateTo({ wx.navigateTo({
url: '/doctor/pages/d_taskList/index', url: '/doctor/pages/d_taskList/index',

172
src/doctor/pages/d_patientList/index.wxml

@ -1,8 +1,4 @@
<wxs src="./index.wxs" module="tools" /> <view class="page">
<view
class="page"
style="background: url({{imageUrl}}/doctor/d_patient-detail-bg.png?t={{Timestamp}}) no-repeat top center/100% 640rpx"
>
<navBar background="{{background}}" title="{{navTitle}}" back bind:back="handleBack"></navBar> <navBar background="{{background}}" title="{{navTitle}}" back bind:back="handleBack"></navBar>
<view class="total-line"> <view class="total-line">
<view class="wrap"> <view class="wrap">
@ -21,172 +17,12 @@
<view class="container"> <view class="container">
<view class="title"> <view class="title">
<view class="name">{{item.Name}}</view> <view class="name">{{item.Name}}</view>
<view class="send" catch:tap="handleSend" data-index="{{index}}" wx:if="{{item.IsCurrent==1}}"> <view class="disease">病程{{item.DiagnosisTimeRange == 1 ? '<1年' : item.DiagnosisTimeRange == 2 ? '1-3年' : '>3年'}}</view>
<image class="icon" src="{{imageUrl}}5/icon-message.png?t={{Timestamp}}"></image>
消息
</view>
</view> </view>
<view class="tags"> <view class="replay-date">邀约时间:{{item.InviteTime}}</view>
<view class="tag" wx:if="{{item.LastAdlTime}}">最近一次ADL:{{item.LastAdlTimeName}}</view> <view class="remark">备注:{{item.DoctorRemark || '无'}}</view>
<view class="tag" wx:if="{{item.LastAdlNeedFollowStatus==1}}">需随访</view>
</view>
<view class="content" wx:if="{{item.AdlScore || item.SteroidDailyDose}}">
<view wx:if="{{item.LastAdlTime}}">
ADL评分:
<text class="blod">{{item.AdlScore}}</text>
</view>
<view class="line" wx:if="{{item.AdlScore || item.SteroidDailyDose}}"></view>
<view wx:if="{{item.SteroidDailyDose}}">
激素用量:
<text class="blod">{{item.SteroidDailyDose}}</text>
mg/d
</view>
</view>
<view class="content disable" wx:else>无ADL记录</view>
<view class="replay-date" wx:if="{{item.LastReVisitDate}}">复诊时间:{{item.LastReVisitDate}}</view>
</view> </view>
</view> </view>
<!-- <view class="list-item" wx:for="{{list}}" wx:key="index" bind:tap="handleDetail" data-index="{{index}}"> -->
<!-- <view class="user"> -->
<!-- <view class="avatar"> -->
<!-- <image class="avatar-img" src="{{item.UserImg}}"></image> -->
<!-- </view> -->
<!-- <view class="wrap"> -->
<!-- <view class="w-header"> -->
<!-- <view class="name">{{item.Name}}</view> -->
<!-- <image -->
<!-- wx:if="{{item.Gender==='1'}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-man.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image -->
<!-- wx:if="{{item.Gender==='2'}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-woman.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <view class="tel">{{item.Telephone}}</view> -->
<!-- <view class="send" catch:tap="handleSend" data-index="{{index}}">发消息</view> -->
<!-- </view> -->
<!-- <view class="w-tags"> -->
<!-- <image -->
<!-- wx:if="{{item.UserType===4}}" -->
<!-- class="label" -->
<!-- src="{{imageUrl}}/doctor/drug-label.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <view class="tag" wx:for="{{item.Tags}}" wx:for-item="tag" wx:for-index="tIndex" wx:key="tIndex"> -->
<!-- {{tag}} -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="adl" wx:if="{{item.LastAdlTime}}"> -->
<!-- <view class="a-header"> -->
<!-- <view class="content">最近一次测评:{{item.LastAdlTimeName}}</view> -->
<!-- <view class="box"></view> -->
<!-- </view> -->
<!-- <view class="a-content"> -->
<!-- <view class="row" wx:if="{{item.AdlScore}}"> -->
<!-- <view class="label">最新ADL评分</view> -->
<!-- <view class="num">{{item.AdlScore}}</view> -->
<!-- <view class="tag" wx:if="{{item.AdlScore<=1}}"> -->
<!-- <view class="t-label"> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-success.png?t={{Timestamp}}"></image> -->
<!-- 已达标 -->
<!-- </view> -->
<!-- <view class="t-content" wx:if="{{item.TotalScoreChange*1!=0}}"> -->
<!-- <image -->
<!-- wx:if="{{item.TotalScoreChange<=0}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-down-success.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image wx:else class="icon" src="{{imageUrl}}/doctor/icon-up-success.png?t={{Timestamp}}"></image> -->
<!-- {{item.TotalScoreChange}} -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="tag tag-warn" wx:elif="{{item.AdlScore<=5}}"> -->
<!-- <view class="t-label"> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-warn.png?t={{Timestamp}}"></image> -->
<!-- 接近达标 -->
<!-- </view> -->
<!-- <view class="t-content" wx:if="{{item.TotalScoreChange*1!=0}}"> -->
<!-- <image -->
<!-- wx:if="{{item.TotalScoreChange<=0}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-down-warn.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image wx:else class="icon" src="{{imageUrl}}/doctor/icon-up-warn.png?t={{Timestamp}}"></image> -->
<!-- {{item.TotalScoreChange}} -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="tag tag-error" wx:else> -->
<!-- <view class="t-label"> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-error.png?t={{Timestamp}}"></image> -->
<!-- 待达标 -->
<!-- </view> -->
<!-- <view class="t-content" wx:if="{{item.TotalScoreChange*1!=0}}"> -->
<!-- <image -->
<!-- wx:if="{{item.TotalScoreChange<=0}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-down-error.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image wx:else class="icon" src="{{imageUrl}}/doctor/icon-up-error.png?t={{Timestamp}}"></image> -->
<!-- {{item.TotalScoreChange}} -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="row" wx:if="{{item.SteroidDailyDose}}"> -->
<!-- <view class="label">最新激素用量</view> -->
<!-- <view class="num">{{item.SteroidDailyDose}}mg</view> -->
<!-- <view class="tag" wx:if="{{item.SteroidDailyDose<=5}}"> -->
<!-- <view class="t-label"> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-success.png?t={{Timestamp}}"></image> -->
<!-- 已达标 -->
<!-- </view> -->
<!-- <view class="t-content" wx:if="{{item.SteroidDailyDoseChange*1!=0}}"> -->
<!-- <image -->
<!-- wx:if="{{item.SteroidDailyDoseChange<=0}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-down-success.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image wx:else class="icon" src="{{imageUrl}}/doctor/icon-up-success.png?t={{Timestamp}}"></image> -->
<!-- {{item.SteroidDailyDoseChange}}mg -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="tag tag-error" wx:else> -->
<!-- <view class="t-label"> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-error.png?t={{Timestamp}}"></image> -->
<!-- 待达标 -->
<!-- </view> -->
<!-- <view class="t-content" wx:if="{{item.SteroidDailyDoseChange*1!=0}}"> -->
<!-- <image -->
<!-- wx:if="{{item.SteroidDailyDoseChange<=0}}" -->
<!-- class="icon" -->
<!-- src="{{imageUrl}}/doctor/icon-down-error.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image wx:else class="icon" src="{{imageUrl}}/doctor/icon-up-error.png?t={{Timestamp}}"></image> -->
<!-- {{item.SteroidDailyDoseChange}}mg -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="adl-none" wx:else> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-adl-none.png?t={{Timestamp}}"></image> -->
<!-- 还未做ADL测评 -->
<!-- </view> -->
<!-- <view class="drug" wx:if="{{item.LastUseDrugsTime}}"> -->
<!-- <view class="label">最近用药</view> -->
<!-- <view class="content"> -->
<!-- {{item.LastUseDrugsTime}} -->
<!-- <block wx:if="{{item.LastUseDrugsTimeName}}">({{item.LastUseDrugsTimeName}})</block> -->
<!-- </view> -->
<!-- </view> -->
<!-- <view class="drug-none" wx:else> -->
<!-- <image class="icon" src="{{imageUrl}}/doctor/icon-drug-none.png?t={{Timestamp}}"></image> -->
<!-- 暂无用药数据 -->
<!-- </view> -->
<!-- </view> -->
<pagination pagination="{{pagination}}"></pagination> <pagination pagination="{{pagination}}"></pagination>
</view> </view>
</view> </view>

29
src/doctor/pages/d_userInfo/index.scss

@ -20,7 +20,7 @@ page {
flex-shrink: 0; flex-shrink: 0;
width: 5em; width: 5em;
font-size: 36rpx; font-size: 36rpx;
color: rgba(33, 33, 32, 0.30); color: rgba(33, 33, 32, 0.3);
line-height: 48rpx; line-height: 48rpx;
} }
.content { .content {
@ -50,21 +50,14 @@ page {
} }
} }
.switch-btn { .switch-btn {
margin-top: 64rpx; margin-top: 32px;
font-size: 36rpx; padding: 24rpx 20rpx;
color: rgba(255, 255, 255, 1); border-radius: 12rpx;
display: flex; background: linear-gradient(90deg, #293b9f 0%, #1679cb 100%);
align-items: center; font-size: 32rpx;
justify-content: center; color: #ffffff;
height: 84rpx; text-align: center;
background: rgba(22, 121, 203, 1); line-height: 48rpx;
border-radius: 64rpx;
&.logout {
margin-top: 32rpx;
background: #fff;
color: rgba(22, 121, 203, 1);
border: 2rpx solid rgba(22, 121, 203, 1);
}
} }
} }
@ -152,7 +145,7 @@ page {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: linear-gradient( 90deg, #293B9F 0%, #1679CB 100%); background: linear-gradient(90deg, #293b9f 0%, #1679cb 100%);
font-size: 36rpx; font-size: 36rpx;
color: #fff; color: #fff;
border-radius: 12rpx; border-radius: 12rpx;
@ -185,7 +178,7 @@ page {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: linear-gradient( 90deg, #293B9F 0%, #1679CB 100%); background: linear-gradient(90deg, #293b9f 0%, #1679cb 100%);
font-size: 36rpx; font-size: 36rpx;
color: #fff; color: #fff;
border-radius: 12rpx; border-radius: 12rpx;

8
src/doctor/pages/d_userInfo/index.wxml

@ -11,6 +11,14 @@
<view class="content">{{doctor.Name}}</view> <view class="content">{{doctor.Name}}</view>
</view> </view>
<view class="row"> <view class="row">
<view class="label">科室</view>
<view class="content">{{doctor.Department || '暂无'}}</view>
</view>
<view class="row">
<view class="label">职称</view>
<view class="content">{{doctor.JobTitle || '暂无'}}</view>
</view>
<view class="row">
<view class="label">电话</view> <view class="label">电话</view>
<view class="content">{{doctor.Telephone}}</view> <view class="content">{{doctor.Telephone}}</view>
</view> </view>

BIN
src/images/bg15.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

BIN
src/images/bg28.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

BIN
src/images/bg29.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 KiB

BIN
src/images/icon84.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
src/images/icon85.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

BIN
src/images/icon99.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 B

BIN
src/images/kkd1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 156 KiB

8
src/pages/enterInfo/index.ts

@ -96,7 +96,7 @@ Page({
if (this.data.submiting) return if (this.data.submiting) return
app.mpBehavior({ PageName: 'BTN_PATIENTINFONEXT' }) app.mpBehavior({ PageName: 'BTN_PATIENTINFONEXT' })
const { name, gender, ageRange, diagnosisTimeRange, relationType } = this.data const { name, gender, ageRange, diagnosisTimeRange, relationType } = this.data
const { registrationSource, registChannel, regBusinessId, WorkerId, IsAliQiWei } = app.globalData const { registrationSource, registChannel, regBusinessId, WorkerId } = app.globalData
const { doctorId, inviteChan, recDoctorId: recommendDoctorId } = app.globalData.scene const { doctorId, inviteChan, recDoctorId: recommendDoctorId } = app.globalData.scene
let toast = '' let toast = ''
if (!gender) toast = '请选择性别' if (!gender) toast = '请选择性别'
@ -122,16 +122,12 @@ Page({
gender, gender,
ageRange, ageRange,
diagnosisTimeRange, diagnosisTimeRange,
// birth,
// diagnoseType,
// diagnosisTime,
relationType, relationType,
registrationSource, registrationSource,
registChannel, registChannel,
regBusinessId, regBusinessId,
WorkerId, WorkerId,
inviteChannel: inviteChan, inviteChannel: inviteChan,
IsAliQiWei,
inviteDoctorId: recommendDoctorId ? '' : doctorId, inviteDoctorId: recommendDoctorId ? '' : doctorId,
recommendDoctorId: recommendDoctorId ? doctorId : '', recommendDoctorId: recommendDoctorId ? doctorId : '',
beRecommendDoctorId: recommendDoctorId, beRecommendDoctorId: recommendDoctorId,
@ -143,7 +139,7 @@ Page({
app.globalData.scene.recDoctorId = '' app.globalData.scene.recDoctorId = ''
app.getUserInfo(this, true, () => { app.getUserInfo(this, true, () => {
wx.reLaunch({ wx.reLaunch({
url: navUrl, url: `/pages/qaForm/index?backPage=${encodeURIComponent(navUrl)}`,
}) })
this.setData({ this.setData({
submiting: false, submiting: false,

2
src/pages/enterInfo/index.wxml

@ -71,7 +71,7 @@
</view> </view>
</view> </view>
<view class="footer"> <view class="footer">
<view bind:tap="handleSubmit" class="next">立即进入</view> <view bind:tap="handleSubmit" class="next">下一步</view>
</view> </view>
</view> </view>

13
src/pages/index/index.scss

@ -60,9 +60,10 @@ page {
font-size: 26rpx; font-size: 26rpx;
color: rgba(34, 34, 34, 0.7); color: rgba(34, 34, 34, 0.7);
display: flex; display: flex;
align-items: baseline; align-items: center;
justify-content: center; justify-content: center;
line-height: 1; line-height: 1;
gap: 10rpx;
.num { .num {
font-size: 36rpx; font-size: 36rpx;
color: #0eb66d; color: #0eb66d;
@ -73,16 +74,18 @@ page {
} }
} }
.page-container { .page-container {
margin-top: -38rpx;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 180rpx; padding-bottom: 180rpx;
.module-title:first-of-type {
margin-top: 0;
}
.kkd { .kkd {
margin: 0 $page-margin 80rpx; margin: 0 $page-margin 80rpx;
display: flex;
gap: 30rpx;
.k-item { .k-item {
height: 172rpx; display: block;
width: 100%;
height: 190rpx;
} }
} }

40
src/pages/index/index.ts

@ -38,6 +38,8 @@ Page({
options: {} as any, options: {} as any,
firstLogin: '', firstLogin: '',
nextVisitDays: '--',
}, },
onLoad(options) { onLoad(options) {
const systemInfo = wx.getSystemInfoSync() const systemInfo = wx.getSystemInfoSync()
@ -60,6 +62,7 @@ Page({
userInfo, userInfo,
}) })
this.updateGreeting() this.updateGreeting()
this.updateNextVisitDays(userInfo)
if (this.data.firstLogin != '1' || userInfo.EntryFourPeriod != 1) { if (this.data.firstLogin != '1' || userInfo.EntryFourPeriod != 1) {
this.getPopup() this.getPopup()
} else { } else {
@ -101,6 +104,14 @@ Page({
}) })
}) })
}, },
updateNextVisitDays(userInfo: any) {
if (userInfo.NextVisitDate) {
const diff = dayjs(userInfo.NextVisitDate).diff(dayjs(), 'day')
this.setData({ nextVisitDays: diff >= 0 ? diff : 0 })
} else {
this.setData({ nextVisitDays: '--' })
}
},
updateGreeting() { updateGreeting() {
const hour = new Date().getHours() const hour = new Date().getHours()
let greeting = '晚上好' let greeting = '晚上好'
@ -416,33 +427,6 @@ Page({
regGuide: false, regGuide: false,
}) })
}, },
handleStoryView(e: any) {
const { id } = e.currentTarget.dataset
wx.navigateTo({
url: `/pages/publishStoryDetail/index?id=${id}`,
})
},
handleStorySave(e: any) {
const { id, saved } = e.currentTarget.dataset
wx.ajax({
method: 'POST',
url: '?r=igg4/story/save',
data: {
id,
isSave: saved ? 0 : 1,
},
}).then(() => {
const { storyList } = this.data
const newList = storyList.map((page: any) =>
page.map((item: any) => (item.Id === id ? { ...item, IsSave: saved ? 0 : 1 } : item)),
)
this.setData({ storyList: newList })
wx.showToast({
title: saved ? '已取消收藏' : '收藏成功',
icon: 'none',
})
})
},
handleArticleView(e: any) { handleArticleView(e: any) {
const { id } = e.currentTarget.dataset const { id } = e.currentTarget.dataset
wx.navigateTo({ wx.navigateTo({
@ -463,7 +447,7 @@ Page({
}).then(() => { }).then(() => {
const { infoList } = this.data const { infoList } = this.data
const newList = infoList.map((page: any) => const newList = infoList.map((page: any) =>
page.map((item: any) => (item.ArticleId === id ? { ...item, IsSave: saved ? 0 : 1 } : item)), page.map((item: any) => (item.ArticleId === id ? { ...item, IsCollect: saved ? 0 : 1 } : item)),
) )
this.setData({ infoList: newList }) this.setData({ infoList: newList })
wx.showToast({ wx.showToast({

13
src/pages/index/index.wxml

@ -13,10 +13,12 @@
<view <view
wx:if="{{userInfo.UserType>=3}}" wx:if="{{userInfo.UserType>=3}}"
class="day" class="day"
bind:tap="routerTo"
data-url="/pages/signIn/index"
style="background: url('{{imageUrl}}{{theme === 'DRUG' ? 'bg22' : 'bg15'}}.png?t={{Timestamp}}') no-repeat top center/100%" style="background: url('{{imageUrl}}{{theme === 'DRUG' ? 'bg22' : 'bg15'}}.png?t={{Timestamp}}') no-repeat top center/100%"
> >
<view class="d-content"> <view class="d-content">
<view class="num">{{userInfo.JoinDays}}</view> <view class="num">{{nextVisitDays}}</view>
</view> </view>
</view> </view>
@ -140,7 +142,7 @@
> >
<view class="cover"> <view class="cover">
<image class="photo" mode="aspectFill" src="{{item.TitlePicLink}}"></image> <image class="photo" mode="aspectFill" src="{{item.TitlePicLink}}"></image>
<view class="label">{{item.CateName}}</view> <view class="label" wx:if="{{item.CateName}}">{{item.CateName}}</view>
</view> </view>
<view class="content"> <view class="content">
<view class="title">{{item.Title}}</view> <view class="title">{{item.Title}}</view>
@ -150,15 +152,15 @@
<block wx:if="{{~~item.OpenNum + ~~item.BasicNum}}">{{~~item.OpenNum + ~~item.BasicNum}}</block> <block wx:if="{{~~item.OpenNum + ~~item.BasicNum}}">{{~~item.OpenNum + ~~item.BasicNum}}</block>
</view> </view>
<view <view
class="action-btn {{item.IsSave == 1 && 'active'}}" class="action-btn {{item.IsCollect == 1 && 'active'}}"
catch:tap="handleArticleSave" catch:tap="handleArticleSave"
data-id="{{item.ArticleId}}" data-id="{{item.ArticleId}}"
data-saved="{{item.IsSave}}" data-saved="{{item.IsCollect}}"
> >
<image <image
class="action-icon" class="action-icon"
mode="aspectFit" mode="aspectFit"
src="{{imageUrl}}{{item.IsSave ? '1/save-active-plan.png' : '1/save.png'}}?t={{Timestamp}}" src="{{imageUrl}}{{item.IsCollect ? '1/save-active-plan.png' : '1/save.png'}}?t={{Timestamp}}"
></image> ></image>
<block wx:if="{{~~item.CollectionPeopleNum}}">{{item.CollectionPeopleNum}}</block> <block wx:if="{{~~item.CollectionPeopleNum}}">{{item.CollectionPeopleNum}}</block>
</view> </view>
@ -177,7 +179,6 @@
bind:tap="routerTo" bind:tap="routerTo"
data-url="/pages/doctor/index" data-url="/pages/doctor/index"
></image> ></image>
<image class="k-item" src="{{imageUrl}}{{theme === 'DRUG' ? 'kkd4' : 'kkd2'}}.png?t={{Timestamp}}"></image>
</view> </view>
</view> </view>

11
src/pages/interactivePatient/index.scss

@ -102,7 +102,7 @@ page {
margin-bottom: 0; margin-bottom: 0;
} }
.order { .order {
margin-top: 6rpx; margin-top: 10rpx;
flex-shrink: 0; flex-shrink: 0;
width: 28rpx; width: 28rpx;
height: 28rpx; height: 28rpx;
@ -241,10 +241,10 @@ page {
} }
.content { .content {
padding: 26rpx 32rpx; padding: 26rpx 32rpx;
background: rgba(248, 248, 248, 1); background: rgba(14, 182, 109, 1);
border-radius: 32rpx; border-radius: 32rpx;
font-size: 36rpx; font-size: 36rpx;
color: rgba(33, 33, 32, 1); color: rgba(255, 255, 255, 1);
white-space: pre-line; white-space: pre-line;
} }
} }
@ -525,4 +525,9 @@ page {
background: linear-gradient(270deg, #5956e9 0%, #b384f4 100%); background: linear-gradient(270deg, #5956e9 0%, #b384f4 100%);
} }
} }
.p-container{
.content{
background-color: rgba(109, 106, 236, 1);
}
}
} }

2
src/pages/interactivePatient/index.ts

@ -408,7 +408,7 @@ Page({
}, },
handleQol() { handleQol() {
wx.navigateTo({ wx.navigateTo({
url: '/pages/adl/index', url: '/pages/qaForm/index',
}) })
}, },
handlePopupOk() { handlePopupOk() {

1
src/pages/login/index.wxml

@ -1,5 +1,4 @@
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> <view class="page" id="{{theme === 'DRUG' && 'drug-page'}}">
<image class="bg" mode="widthFix" src="{{imageUrl}}1/login-bg.png?t={{Timestamp}}"></image>
<image src="/src{{imageUrl}}bg1.png?t={{Timestamp}}"></image> <image src="/src{{imageUrl}}bg1.png?t={{Timestamp}}"></image>
<view class="container"> <view class="container">
<image class="frame" src="{{imageUrl}}bg18.png?t={{Timestamp}}"></image> <image class="frame" src="{{imageUrl}}bg18.png?t={{Timestamp}}"></image>

4
src/pages/my/index.wxml

@ -27,9 +27,9 @@
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon71' : 'icon62'}}.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon71' : 'icon62'}}.png?t={{Timestamp}}"></image>
<view class="name">健康档案</view> <view class="name">健康档案</view>
</view> </view>
<view bind:tap="routerVipTo" class="item"> <view bind:tap="routerTo" class="item" data-url="/pages/signIn/index">
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon72' : 'icon63'}}.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon72' : 'icon63'}}.png?t={{Timestamp}}"></image>
<view class="name">用药提醒</view> <view class="name">复诊提醒</view>
</view> </view>
</view> </view>
<view class="options-list"> <view class="options-list">

2
src/pages/qaForm/index.json

@ -1,4 +1,4 @@
{ {
"navigationBarTitleText": "问卷", "navigationBarTitleText": "健康档案",
"usingComponents": {} "usingComponents": {}
} }

2
src/pages/qaForm/index.scss

@ -45,7 +45,7 @@ page {
&.active { &.active {
border-color: #0eb66d; border-color: #0eb66d;
.check-icon { .check-icon {
border-color: transparent; border: none;
background: linear-gradient(94deg, #0eb66d 0%, #00d277 100%); background: linear-gradient(94deg, #0eb66d 0%, #00d277 100%);
.icon-inner { .icon-inner {
opacity: 1; opacity: 1;

13
src/pages/qaForm/index.ts

@ -23,9 +23,13 @@ Page({
hasSubmitted: false, hasSubmitted: false,
latestSubmitTime: '', latestSubmitTime: '',
isSubmitting: false, isSubmitting: false,
backPage: '',
}, },
onLoad() { onLoad(options) {
this.setData({
backPage: options.backPage || '',
})
app.waitLogin().then(() => { app.waitLogin().then(() => {
this.getQuestionnaire() this.getQuestionnaire()
}) })
@ -170,8 +174,13 @@ Page({
}) })
.then(() => { .then(() => {
wx.showToast({ title: '提交成功', icon: 'success' }) wx.showToast({ title: '提交成功', icon: 'success' })
const { backPage } = this.data
setTimeout(() => { setTimeout(() => {
wx.navigateBack() if (backPage) {
wx.reLaunch({ url: decodeURIComponent(backPage) })
} else {
wx.navigateBack()
}
}, 1500) }, 1500)
}) })
.finally(() => { .finally(() => {

7
src/pages/signIn/index.json

@ -1,4 +1,7 @@
{ {
"navigationBarTitleText": "报名", "navigationStyle": "custom",
"usingComponents": {} "usingComponents": {
"navBar": "/components/navBar/navBar",
"van-icon": "@vant/weapp/icon/index"
}
} }

169
src/pages/signIn/index.scss

File diff suppressed because one or more lines are too long

99
src/pages/signIn/index.ts

@ -1,77 +1,50 @@
const app = getApp<IAppOption>(); const app = getApp<IAppOption>()
Page({ Page({
data: { data: {
id: "", currentVisitDate: '',
detail: {} as any, nextVisitDate: '',
codeUrl: "",
}, },
onShow() { onShow() {
app.waitLogin().then(() => { app.waitLogin({}).then(() => {
// const options = wx.getEnterOptionsSync(); app.getUserInfo(this, true, (userInfo) => {
const scene = app.globalData.scene;
if (scene.id) {
this.setData({ this.setData({
id: scene.id, currentVisitDate: userInfo.CurrentVisitDate || '',
}); nextVisitDate: userInfo.NextVisitDate || '',
} })
app.permissionVerification(3, 1, `/pages/liveDetail/index?id=${this.data.id}`, this.data.id).then(() => { })
this.getCode(); })
this.signIn();
this.getDetail();
});
});
}, },
signIn() { handleCurrentVisitDateChange(e: any) {
wx.ajax({ this.setData({
method: "POST", currentVisitDate: e.detail.value,
url: "?r=igg4/activity/sign-in", })
data: {
Id: this.data.id,
},
showMsg: false,
}).then(() => {
this.getDetail();
});
}, },
getDetail() { handleNextVisitDateChange(e: any) {
wx.ajax({ this.setData({
method: "GET", nextVisitDate: e.detail.value,
url: "?r=igg4/activity/sign-in-detail", })
data: {
Id: this.data.id,
},
}).then((res) => {
this.setData({
detail: res,
});
});
}, },
getCode() { handleSubmit() {
const { registChannel } = app.globalData; const { currentVisitDate, nextVisitDate } = this.data
if (!currentVisitDate && !nextVisitDate) {
wx.showToast({ icon: 'none', title: '请选择就诊时间' })
return
}
wx.ajax({ wx.ajax({
method: "GET", method: 'POST',
url: "?r=igg4/common/get-channel-wx-code", url: '?r=igg4/account/update-visit-date',
data: { data: {
Id: this.data.id, CurrentVisitDate: currentVisitDate,
ChannelType: registChannel, NextVisitDate: nextVisitDate,
}, },
}).then((res) => { loading: true,
this.setData({ }).then(() => {
codeUrl: res, wx.showToast({ icon: 'none', title: '保存成功' })
}); app.getUserInfo(this, true)
}); })
},
handleHome() {
wx.reLaunch({
url: "/pages/index/index",
});
}, },
onShareAppMessage() { handleBack() {
return { wx.navigateBack()
title: this.detail.ActivityName,
path: `/pages/liveDetail/index?id=${this.data.detail.ActivityId}`,
imageUrl: `${getApp().globalData.imageUrl}1/1.png`,
};
}, },
}); })

57
src/pages/signIn/index.wxml

@ -1,34 +1,29 @@
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> <view
<image class="page"
class="badge" id="{{theme === 'DRUG' && 'drug-page'}}"
wx:if="{{detail.IsSignIn==1}}" style="background: url('{{imageUrl}}bg29.png?t={{Timestamp}}') no-repeat top center/100%;padding-top: {{pageTop+110}}px;"
mode="aspectFit" >
src="{{imageUrl}}1/live-result-success.png?t={{Timestamp}}" <navBar background="{{background}}" title="" back bind:back="handleBack" fixed></navBar>
></image> <view class="page-container">
<image class="badge" wx:else mode="aspectFit" src="{{imageUrl}}1/live-result-warn.png?t={{Timestamp}}"></image> <image class="badge" src="{{imageUrl}}icon84.png?t={{Timestamp}}"></image>
<block wx:if="{{detail.IsSignIn==1}}"> <view class="form">
<view class="status">签到成功</view> <view class="form-title">我的本次就诊时间</view>
<view class="tip">欢迎您参与此次活动</view> <picker mode="date" value="{{currentVisitDate}}" bind:change="handleCurrentVisitDateChange">
</block> <view class="date">
<view wx:else class="nostatus">您未报名此活动</view> <image class="icon" src="{{imageUrl}}icon85.png?t={{Timestamp}}"></image>
<view class="container"> <view class="content {{currentVisitDate && 'active'}}">{{currentVisitDate || '请选择'}}</view>
<view class="c-content"> <van-icon name="arrow-down" />
<view class="c-title"> </view>
<view>{{detail.ActivityName}}</view> </picker>
</view> <view class="form-title">我的下次就诊时间</view>
<view class="date"> <picker mode="date" value="{{nextVisitDate}}" bind:change="handleNextVisitDateChange">
<image class="icon" src="{{imageUrl}}1/date.png?t={{Timestamp}}"></image> <view class="date no-margin">
{{detail.BeginTime}} <image class="icon" src="{{imageUrl}}icon85.png?t={{Timestamp}}"></image>
</view> <view class="content {{nextVisitDate && 'active'}}">{{nextVisitDate || '请选择'}}</view>
<view class="site" wx:if="{{detail.Location}}">地点:{{detail.Location}}</view> <van-icon name="arrow-down" />
<block wx:if="{{detail.IsFollow==0}}"> </view>
<image class="code" src="{{codeUrl}}" show-menu-by-longpress></image> </picker>
<view class="c-tip">关注"愈见昕生"公众号获取活动通知</view>
</block>
</view> </view>
</view> </view>
<view class="footer"> <view class="submit" bind:tap="handleSubmit">提交</view>
<button open-type="share" class="btn" wx:if="{{detail.IsFollow==1}}">邀约好友参与</button>
<view class="btn" bind:tap="handleHome">去首页</view>
</view>
</view> </view>

4
src/pages/start/index.ts

@ -4,9 +4,9 @@ Page({
data: {}, data: {},
onLoad() { onLoad() {
app.waitLogin().then((_res) => { app.waitLogin().then((_res) => {
const { isLogin, anyWhere, loginType } = app.globalData const { isLogin, anyWhere, loginType,scene } = app.globalData
if (isLogin) { if (isLogin) {
if (loginType == 2) { if (loginType == 2 && scene?.doctorId) {
wx.reLaunch({ wx.reLaunch({
url: '/doctor/pages/d_trans/index', url: '/doctor/pages/d_trans/index',
}) })

Loading…
Cancel
Save