Browse Source

1.6优化页面部分

dev
kola-web 2 months ago
parent
commit
443b8fac4b
  1. 21
      project.private.config.json
  2. 5
      src/app.json
  3. 73
      src/echart/components/homeLevel1/index.scss
  4. 28
      src/echart/components/homeLevel1/index.ts
  5. 107
      src/echart/components/homeLevel1/index.wxml
  6. 137
      src/echart/components/homeLevel2/index.wxml
  7. 94
      src/echart/components/homeLevel3/index.wxml
  8. 6
      src/echart/components/homeLevel4/index.ts
  9. 214
      src/echart/components/homeLevel4/index.wxml
  10. BIN
      src/images/application-status1.png
  11. BIN
      src/images/application-status2.png
  12. BIN
      src/images/application-status3.png
  13. BIN
      src/images/chat-add.png
  14. BIN
      src/images/cooperate-icon1.png
  15. BIN
      src/images/cooperate-icon2.png
  16. BIN
      src/images/icon-date.png
  17. 8
      src/module1/pages/applicationRecords/index.json
  18. 189
      src/module1/pages/applicationRecords/index.scss
  19. 28
      src/module1/pages/applicationRecords/index.ts
  20. 93
      src/module1/pages/applicationRecords/index.wxml
  21. 8
      src/module1/pages/auditDoctorDetail/index.wxml
  22. 27
      src/module1/pages/auditDoctorList/index.scss
  23. 12
      src/module1/pages/auditDoctorList/index.wxml
  24. 73
      src/module1/pages/chatRoom/index.scss
  25. 122
      src/module1/pages/chatRoom/index.wxml
  26. 11
      src/module1/pages/setApplicationDoctor/index.json
  27. 208
      src/module1/pages/setApplicationDoctor/index.scss
  28. 273
      src/module1/pages/setApplicationDoctor/index.ts
  29. 98
      src/module1/pages/setApplicationDoctor/index.wxml
  30. 6
      src/module1/pages/setApplicationDoctorResult/index.json
  31. 56
      src/module1/pages/setApplicationDoctorResult/index.scss
  32. 34
      src/module1/pages/setApplicationDoctorResult/index.ts
  33. 31
      src/module1/pages/setApplicationDoctorResult/index.wxml
  34. 4
      src/pages/chatRoomList/index.wxml

21
project.private.config.json

@ -9,6 +9,27 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "绑定医生结果页",
"pathName": "module1/pages/setApplicationDoctorResult/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "选择绑定医生",
"pathName": "module1/pages/setApplicationDoctor/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "医生绑定申请记录",
"pathName": "module1/pages/applicationRecords/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "module1/pages/chatRoom/index", "name": "module1/pages/chatRoom/index",
"pathName": "module1/pages/chatRoom/index", "pathName": "module1/pages/chatRoom/index",
"query": "id=28", "query": "id=28",

5
src/app.json

@ -35,7 +35,10 @@
"pages/chatRoomInfo/index", "pages/chatRoomInfo/index",
"pages/setChatDoctor/index", "pages/setChatDoctor/index",
"pages/doctorHome/index", "pages/doctorHome/index",
"pages/loginOut/index" "pages/loginOut/index",
"pages/applicationRecords/index",
"pages/setApplicationDoctor/index",
"pages/setApplicationDoctorResult/index"
] ]
} }
], ],

73
src/echart/components/homeLevel1/index.scss

@ -95,6 +95,20 @@
font-size: 56rpx; font-size: 56rpx;
color: #fff; color: #fff;
line-height: 56rpx; line-height: 56rpx;
display: flex;
justify-content: center;
.num-center {
position: relative;
.dot {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 16rpx;
height: 16rpx;
background-color: #ed4f39;
border-radius: 50%;
}
}
} }
} }
.line { .line {
@ -235,6 +249,43 @@
max-height: 0; max-height: 0;
overflow: hidden; overflow: hidden;
} }
.cooperate-options {
padding-bottom: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18rpx;
.co-item {
flex: 1;
padding: 18rpx 36rpx;
background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%);
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
border: 2rpx solid #ffffff;
display: flex;
align-items: center;
.icon {
width: 76rpx;
height: 76rpx;
}
.content {
position: relative;
padding-left: 8rpx;
font-size: 32rpx;
color: #141515;
&.dot::after {
content: "";
position: absolute;
top: -10rpx;
right: -10rpx;
width: 16rpx;
height: 16rpx;
background-color: #ed4f39;
border-radius: 50%;
}
}
}
}
.doctor { .doctor {
margin-bottom: 20rpx; margin-bottom: 20rpx;
padding: 32rpx; padding: 32rpx;
@ -362,3 +413,25 @@
} }
} }
} }
.preview {
position: fixed;
width: 100vw;
height: 100vh;
z-index: 1000000000;
top: 0;
left: 0;
overflow: hidden;
.img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
display: block;
}
.show {
opacity: 1;
}
}

28
src/echart/components/homeLevel1/index.ts

@ -21,6 +21,10 @@ Component({
take: {}, take: {},
case: {}, case: {},
cooperateList: [], cooperateList: [],
guide: 0,
guideShow: false,
guideList: ["2-1", "2-2", "2-3"],
}, },
lifetimes: { lifetimes: {
@ -120,6 +124,30 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.selectComponent(`#cooperate${index}`).handleDetail(); this.selectComponent(`#cooperate${index}`).handleDetail();
}, },
handleApplication() {
wx.navigateTo({
url: "/module1/pages/applicationRecords/index",
});
},
handleApplicationDoctor() {
wx.navigateTo({
url: "/module1/pages/setApplicationDoctor/index",
});
},
touchmovePreview() {
return false;
},
handleTapPreview() {
if (this.data.guide == this.data.guideList.length - 1) {
this.setData({
guideShow: false,
});
}
this.setData({
guide: Number(this.data.guide) + 1,
});
},
}, },
}); });

107
src/echart/components/homeLevel1/index.wxml

@ -22,19 +22,32 @@
</view> </view>
</view> </view>
<view class="banner"> <view class="banner">
<view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"> <view
class="title"
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"
>
待处理事项 待处理事项
</view> </view>
<view class="bg"> <view class="bg">
<view class="b-container"> <view class="b-container">
<view class="item" bind:tap="handleCaseUpdate"> <view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view> <view class="name">病历更新</view>
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item" bind:tap="handleChat"> <view class="item" bind:tap="handleChat">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -48,66 +61,31 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">总数</view> <view class="name">总数</view>
<view <view class="num" bind:tap="handleCase" data-type="0">{{case.totalCaseCount}}</view>
class="num"
bind:tap="handleCase"
data-type="0"
>{{case.totalCaseCount}}
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
新病历 新病历
<van-icon <van-icon bind:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="1"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="2"
>{{case.newCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="2">{{case.newCaseCount}}</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon <van-icon bind:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="2"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="3"
>{{case.feedbackCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="3">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon <van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="3"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="4"
>{{case.archiveCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="4">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -137,11 +115,17 @@
</block> </block>
</view> </view>
</view> </view>
<view <view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;">
id="fold1" <view class="cooperate-options">
class="doctor-list {{fold1 && 'doctor-list-fold'}}" <view class="co-item" bind:tap="handleApplication">
style="--fold-height: {{foldHeight1}}px;" <image class="icon" src="{{imageUrl}}cooperate-icon1.png?t={{Timestamp}}"></image>
> <view class="content dot">申请记录</view>
</view>
<view class="co-item" bind:tap="handleApplicationDoctor">
<image class="icon" src="{{imageUrl}}cooperate-icon2.png?t={{Timestamp}}"></image>
<view class="content">绑定医生</view>
</view>
</view>
<view <view
class="doctor" class="doctor"
wx:for="{{cooperateList}}" wx:for="{{cooperateList}}"
@ -176,17 +160,8 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{item.specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>
@ -205,3 +180,13 @@
</view> </view>
</view> </view>
</view> </view>
<view wx:if="{{guideShow}}" class="preview" bind:touchmove="touchmovePreview" bind:tap="handleTapPreview">
<image
class="img {{index==guide && 'show'}}"
src="{{imageUrl}}start-bg.png?t={{Timestamp}}"
wx:for="{{guideList}}"
wx:key="*this"
mode="aspectFill"
></image>
</view>

137
src/echart/components/homeLevel2/index.wxml

@ -6,11 +6,7 @@
src="{{userInfo.Img}}" src="{{userInfo.Img}}"
level="{{userInfo.DoctorLevel}}" level="{{userInfo.DoctorLevel}}"
></doctorAvatar> ></doctorAvatar>
<image <image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image>
class="code"
bind:tap="handleInvite"
src="{{imageUrl}}icon-code.png?t={{Timestamp}}"
></image>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="name">{{userInfo.Name}}</view> <view class="name">{{userInfo.Name}}</view>
@ -31,26 +27,23 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{userInfo.Specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>
<view class="banner"> <view class="banner">
<view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"> <view
class="title"
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"
>
待处理事项 待处理事项
</view> </view>
<view class="bg"> <view class="bg">
<view class="b-container" wx:if="{{take.dealCaseCount>0 || take.notReadFeedBackCount>0 || take.notReadChatRoomCount>0 || take.toAuditDoctorCount>0}}"> <view
class="b-container"
wx:if="{{take.dealCaseCount>0 || take.notReadFeedBackCount>0 || take.notReadChatRoomCount>0 || take.toAuditDoctorCount>0}}"
>
<view class="item" bind:tap="handlePendCase"> <view class="item" bind:tap="handlePendCase">
<view class="name">待处理病历</view> <view class="name">待处理病历</view>
<view class="num"> <view class="num">
@ -62,15 +55,30 @@
</view> </view>
<view class="item" bind:tap="handleCaseUpdate"> <view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view> <view class="name">病历更新</view>
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleChat"> <view class="item" bind:tap="handleChat">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleAudit"> <view class="item" bind:tap="handleAudit">
<view class="name">医生待审核</view> <view class="name">医生待审核</view>
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{take.toAuditDoctorCount*1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
<view class="b-container-none" wx:else>暂时没有需要处理的事项哦~</view> <view class="b-container-none" wx:else>暂时没有需要处理的事项哦~</view>
@ -89,30 +97,15 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">全部</view> <view class="name">全部</view>
<view <view class="num" bind:tap="handleCase" data-type="0">{{case.totalCaseCount}}</view>
class="num"
bind:tap="handleCase"
data-type="0"
>{{case.totalCaseCount}}
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name" bind:tap="handleNewCase"> <view class="name" bind:tap="handleNewCase">
新病历 新病历
<van-icon <van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="1"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="2"
>{{case.newCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="2">{{case.newCaseCount}}</view>
<view class="item-toast" wx:if="{{newCaseShow}}"> <view class="item-toast" wx:if="{{newCaseShow}}">
<image <image
class="i-clsoe" class="i-clsoe"
@ -128,37 +121,17 @@
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon <van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="2"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="3"
>{{case.feedbackCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="3">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon <van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="3"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="4"
>{{case.archiveCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="4">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -188,11 +161,7 @@
</block> </block>
</view> </view>
</view> </view>
<view <view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;">
id="fold1"
class="doctor-list {{fold1 && 'doctor-list-fold'}}"
style="--fold-height: {{foldHeight1}}px;"
>
<view <view
class="doctor" class="doctor"
wx:for="{{cooperateList}}" wx:for="{{cooperateList}}"
@ -227,17 +196,8 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{item.specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>
@ -269,11 +229,7 @@
</block> </block>
</view> </view>
</view> </view>
<view <view id="fold2" class="doctor-list {{fold2 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight2}}px;">
id="fold2"
class="doctor-list {{fold2 && 'doctor-list-fold'}}"
style="--fold-height: {{foldHeight2}}px;"
>
<view <view
class="doctor" class="doctor"
wx:for="{{inviteList}}" wx:for="{{inviteList}}"
@ -309,17 +265,8 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{item.specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>

94
src/echart/components/homeLevel3/index.wxml

@ -6,11 +6,7 @@
src="{{userInfo.Img}}" src="{{userInfo.Img}}"
level="{{userInfo.DoctorLevel}}" level="{{userInfo.DoctorLevel}}"
></doctorAvatar> ></doctorAvatar>
<image <image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image>
class="code"
bind:tap="handleInvite"
src="{{imageUrl}}icon-code.png?t={{Timestamp}}"
></image>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="name">{{userInfo.Name}}</view> <view class="name">{{userInfo.Name}}</view>
@ -31,22 +27,16 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{userInfo.Specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>
<view class="banner"> <view class="banner">
<view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"> <view
class="title"
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"
>
待处理事项 待处理事项
</view> </view>
<view class="bg"> <view class="bg">
@ -62,15 +52,30 @@
</view> </view>
<view class="item" bind:tap="handleCaseUpdate"> <view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view> <view class="name">病历更新</view>
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleChat"> <view class="item" bind:tap="handleChat">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleAudit"> <view class="item" bind:tap="handleAudit">
<view class="name">医生待审核</view> <view class="name">医生待审核</view>
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{take.toAuditDoctorCount*1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -88,64 +93,29 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">全部</view> <view class="name">全部</view>
<view <view class="num" bind:tap="handleCase" data-type="0">{{case.totalCaseCount}}</view>
class="num"
bind:tap="handleCase"
data-type="0"
>{{case.totalCaseCount}}
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
新病历 新病历
<van-icon <van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="1"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="2"
>{{case.newCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="2">{{case.newCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon <van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="2"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="3"
>{{case.feedbackCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="3">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon <van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="3"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="4"
>{{case.archiveCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="4">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>

6
src/echart/components/homeLevel4/index.ts

@ -675,6 +675,12 @@ Component({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
}, },
handleCaseUpdate() {
app.globalData.newFeedback = "1";
wx.switchTab({
url: "/pages/cases/index",
});
},
handleChat() { handleChat() {
wx.switchTab({ wx.switchTab({
url: "/pages/chatRoomList/index", url: "/pages/chatRoomList/index",

214
src/echart/components/homeLevel4/index.wxml

@ -1,16 +1,7 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar <doctorAvatar did="{{userInfo.DoctorId}}" class="avatar" src="{{userInfo.Img}}" level="4"></doctorAvatar>
did="{{userInfo.DoctorId}}" <image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image>
class="avatar"
src="{{userInfo.Img}}"
level="4"
></doctorAvatar>
<image
class="code"
bind:tap="handleInvite"
src="{{imageUrl}}icon-code.png?t={{Timestamp}}"
></image>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="name">{{userInfo.Name}}</view> <view class="name">{{userInfo.Name}}</view>
@ -31,22 +22,16 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image <image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
class="wf-label" <view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
src="{{imageUrl}}text-specialty.png?t={{Timestamp}}"
mode="aspectFit"
></image>
<view
class="wf-tag"
wx:for="{{userInfo.Specialty}}"
wx:key="SpecialtyId"
>{{item.SpecialtyName}}
</view>
</view> </view>
</view> </view>
</view> </view>
<view class="banner"> <view class="banner">
<view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"> <view
class="title"
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;"
>
待处理事项 待处理事项
</view> </view>
<view class="bg"> <view class="bg">
@ -60,25 +45,42 @@
</view> </view>
</view> </view>
</view> </view>
<view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view>
<view class="num">
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view>
</view>
</view>
</view>
<view class="item" bind:tap="handleChat"> <view class="item" bind:tap="handleChat">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleAudit"> <view class="item" bind:tap="handleAudit">
<view class="name">医生待审核</view> <view class="name">医生待审核</view>
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{take.toAuditDoctorCount*1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="stat" style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;"> <view
class="stat"
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;"
>
<view class="title">本科室全部病历</view> <view class="title">本科室全部病历</view>
<picker <picker class="picker" range="{{Department}}" range-key="DepartmentName" bind:change="handleChangeDept">
class="picker"
range="{{Department}}"
range-key="DepartmentName"
bind:change="handleChangeDept"
>
<view class="picker-content"> <view class="picker-content">
<view class="text">{{DepartmentName}}</view> <view class="text">{{DepartmentName}}</view>
<van-icon name="arrow-down" /> <van-icon name="arrow-down" />
@ -91,30 +93,15 @@
<view class="s-container" wx:if="{{case.totalCaseCount>0}}"> <view class="s-container" wx:if="{{case.totalCaseCount>0}}">
<view class="item"> <view class="item">
<view class="name">全部</view> <view class="name">全部</view>
<view <view class="num" bind:tap="handleCase" data-type="0">{{case.totalCaseCount}}</view>
class="num"
bind:tap="handleCase"
data-type="0"
>{{case.totalCaseCount}}
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item" bind:tap="handleNewCase"> <view class="item" bind:tap="handleNewCase">
<view class="name"> <view class="name">
新病历 新病历
<van-icon <van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="1"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="2"
>{{case.newCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="2">{{case.newCaseCount}}</view>
<view class="item-toast" wx:if="{{newCaseShow}}"> <view class="item-toast" wx:if="{{newCaseShow}}">
<image <image
class="i-clsoe" class="i-clsoe"
@ -129,36 +116,16 @@
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon <van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" />
catch:tap="handleQuestion"
data-index="2"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="3"
>{{case.feedbackCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="3">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon <van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="3"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view
class="num"
bind:tap="handleCase"
data-type="4"
>{{case.archiveCaseCount}}
</view> </view>
<view class="num" bind:tap="handleCase" data-type="4">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
<view class="s-container-none" wx:else> <view class="s-container-none" wx:else>
@ -207,20 +174,9 @@
<view class="c-header"> <view class="c-header">
<view class="name"> <view class="name">
科室医生入驻情况 科室医生入驻情况
<van-icon <van-icon bind:tap="handleQuestion" data-index="4" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="4"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker <picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear1">
class="picker"
mode="date"
end="{{endYear}}"
fields="year"
bindchange="handleYear1"
>
<view class="picker-content"> <view class="picker-content">
<view class="text">{{year1}}年</view> <view class="text">{{year1}}年</view>
<van-icon name="arrow-down" /> <van-icon name="arrow-down" />
@ -235,11 +191,7 @@
</view> </view>
<block wx:else> <block wx:else>
<view class="chart"> <view class="chart">
<ec-canvas <ec-canvas id="chart1" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
id="chart1"
canvas-id="mychart-bar"
ec="{{ ec }}"
></ec-canvas>
</view> </view>
<view class="tip">注:一级医生为平台全部医生,不区分科室</view> <view class="tip">注:一级医生为平台全部医生,不区分科室</view>
</block> </block>
@ -248,20 +200,9 @@
<view class="c-header"> <view class="c-header">
<view class="name"> <view class="name">
累计病历统计 累计病历统计
<van-icon <van-icon bind:tap="handleQuestion" data-index="5" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="5"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker <picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear2">
class="picker"
mode="date"
end="{{endYear}}"
fields="year"
bindchange="handleYear2"
>
<view class="picker-content"> <view class="picker-content">
<view class="text">{{year2}}年</view> <view class="text">{{year2}}年</view>
<van-icon name="arrow-down" /> <van-icon name="arrow-down" />
@ -275,31 +216,16 @@
</view> </view>
</view> </view>
<view class="chart" wx:else> <view class="chart" wx:else>
<ec-canvas <ec-canvas id="chart2" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
id="chart2"
canvas-id="mychart-bar"
ec="{{ ec }}"
></ec-canvas>
</view> </view>
</view> </view>
<view class="chart-card"> <view class="chart-card">
<view class="c-header"> <view class="c-header">
<view class="name"> <view class="name">
科室新增病历统计 科室新增病历统计
<van-icon <van-icon bind:tap="handleQuestion" data-index="6" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="6"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker <picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear3">
class="picker"
mode="date"
end="{{endYear}}"
fields="year"
bindchange="handleYear3"
>
<view class="picker-content"> <view class="picker-content">
<view class="text">{{year3}}年</view> <view class="text">{{year3}}年</view>
<van-icon name="arrow-down" /> <van-icon name="arrow-down" />
@ -313,23 +239,14 @@
</view> </view>
</view> </view>
<view class="chart" wx:else> <view class="chart" wx:else>
<ec-canvas <ec-canvas id="chart3" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
id="chart3"
canvas-id="mychart-bar"
ec="{{ ec }}"
></ec-canvas>
</view> </view>
</view> </view>
<view class="rank"> <view class="rank">
<view class="r-header"> <view class="r-header">
<view class="title"> <view class="title">
医院活跃排行榜 医院活跃排行榜
<van-icon <van-icon bind:tap="handleQuestion" data-index="7" name="question" color="rgba(224, 224, 224, 1)" />
bind:tap="handleQuestion"
data-index="7"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<view class="more" bind:tap="handleRankDetail"> <view class="more" bind:tap="handleRankDetail">
查看全部 查看全部
@ -340,7 +257,8 @@
<view class="thead"> <view class="thead">
<view class="th1">医院</view> <view class="th1">医院</view>
<view class="th2">医生总数</view> <view class="th2">医生总数</view>
<view class="th3">S1 <view class="th3">
S1
<van-icon <van-icon
class="icon" class="icon"
catch:tap="handleQuestion" catch:tap="handleQuestion"
@ -349,29 +267,17 @@
color="rgba(224, 224, 224, 1)" color="rgba(224, 224, 224, 1)"
/> />
</view> </view>
<view class="th4">S2 <view class="th4">
<van-icon S2
catch:tap="handleQuestion" <van-icon catch:tap="handleQuestion" data-index="9" name="question" color="rgba(224, 224, 224, 1)" />
data-index="9"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<view class="th5">S3 <view class="th5">
<van-icon S3
catch:tap="handleQuestion" <van-icon catch:tap="handleQuestion" data-index="10" name="question" color="rgba(224, 224, 224, 1)" />
data-index="10"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
</view> </view>
<view class="tbody"> <view class="tbody">
<view <view class="tr" wx:for="{{rankList}}" wx:key="HospitalId">
class="tr"
wx:for="{{rankList}}"
wx:key="HospitalId"
>
<view class="td1">{{index+1}} {{item.HospitalName}}</view> <view class="td1">{{index+1}} {{item.HospitalName}}</view>
<view class="td2">{{item.TotalDoctorCount}}</view> <view class="td2">{{item.TotalDoctorCount}}</view>
<view class="td3">{{item.DoctorLevel1Count}}</view> <view class="td3">{{item.DoctorLevel1Count}}</view>

BIN
src/images/application-status1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
src/images/application-status2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
src/images/application-status3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
src/images/chat-add.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

BIN
src/images/cooperate-icon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
src/images/cooperate-icon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
src/images/icon-date.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

8
src/module1/pages/applicationRecords/index.json

@ -0,0 +1,8 @@
{
"navigationStyle": "default",
"navigationBarTitleText": "医生绑定申请",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index",
"doctorAvatar": "/components/doctorAvatar/index"
}
}

189
src/module1/pages/applicationRecords/index.scss

@ -0,0 +1,189 @@
page {
background-color: #f6f6f6;
}
.page {
.header {
padding: 32rpx;
background-color: #fff;
border-radius: 0 0 0 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 48rpx;
.range {
padding: 0 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
width: 390rpx;
background: #f6f6f6;
border-radius: 12rpx 12rpx 12rpx 12rpx;
.date {
flex: 1;
.date-content {
padding: 16rpx;
font-size: 28rpx;
color: #999999;
line-height: 1;
text-align: center;
}
}
.icon {
flex-shrink: 0;
width: 32rpx;
height: 32rpx;
}
}
.status {
flex: 1;
display: flex;
align-items: center;
gap: 16rpx;
.label {
font-size: 28rpx;
color: #141515;
}
.picker {
flex: 1;
.picker-content {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16rpx;
font-size: 28rpx;
color: #999999;
line-height: 1;
text-align: center;
border-radius: 12rpx;
background-color: #f6f6f6;
}
}
}
}
.list {
padding: 32rpx;
.doctor {
position: relative;
padding: 32rpx;
background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%);
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
border: 2rpx solid #ffffff;
margin-bottom: 20rpx;
.d-status {
position: absolute;
top: 0;
right: 0;
width: 156rpx;
height: 50rpx;
}
.d-container {
display: flex;
gap: 24rpx;
&:last-of-type {
margin-bottom: 0;
}
.avatar {
flex-shrink: 0;
position: relative;
width: 112rpx;
height: 112rpx;
}
.wrap {
padding-top: 8rpx;
.w-header {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 16rpx;
line-height: 1;
.name {
font-size: 36rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.label {
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
.line {
width: 1px;
height: 24rpx;
background-color: rgba(205, 205, 205, 1);
}
}
.w-container {
margin-top: 24rpx;
.hostipal {
margin-right: 12rpx;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
.tag {
margin-right: 12rpx;
display: inline-block;
padding: 0 8rpx;
border-radius: 4rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 1);
line-height: 32rpx;
background-color: rgba(0, 180, 197, 1);
}
.site {
display: inline-block;
padding: 0 8rpx;
font-size: 24rpx;
color: rgba(148, 87, 30, 1);
line-height: 32rpx;
border-radius: 4rpx;
background-color: rgba(250, 229, 206, 1);
}
}
.w-footer {
margin-top: 16rpx;
display: flex;
gap: 12rpx;
flex-wrap: wrap;
.wf-label {
flex-shrink: 0;
width: 48rpx;
height: 32rpx;
}
.wf-tag {
flex-shrink: 0;
padding: 0 8rpx;
font-size: 22rpx;
color: rgba(0, 180, 197, 1);
line-height: 32rpx;
border: 1px solid rgba(191, 239, 244, 1);
}
}
}
}
.d-footer {
margin-top: 32rpx;
padding: 0 32rpx;
background: #f6f6f6;
border-radius: 16rpx 16rpx 16rpx 16rpx;
.row {
padding: 32rpx 0;
display: flex;
border-bottom: 1px solid rgba(20, 21, 21, 0.08);
&:last-of-type {
border: none;
}
.label {
flex-shrink: 0;
margin-right: 16rpx;
font-size: 32rpx;
color: #999999;
}
.content {
font-size: 32rpx;
color: #141515;
}
}
}
}
}
}

28
src/module1/pages/applicationRecords/index.ts

@ -0,0 +1,28 @@
const app = getApp<IAppOption>();
Page({
data: {
feedbackTimeBegin: "",
feedbackTimeEnd: "",
cooperateList: [],
},
onLoad() {
app.waitLogin().then(() => {
this.getCooperate();
});
},
getCooperate() {
wx.ajax({
method: "GET",
url: "?r=takeda/doctor/cooperation-doctor-list",
data: {},
}).then((res) => {
this.setData({
cooperateList: res.list,
});
});
},
});
export {};

93
src/module1/pages/applicationRecords/index.wxml

@ -0,0 +1,93 @@
<view class="page">
<view class="header">
<view class="range">
<picker
class="date"
end="{{feedbackTimeEnd}}"
model:value="{{feedbackTimeBegin}}"
mode="date"
bind:change="handleSearch"
bindcancel="handleCancel"
data-key="feedbackTimeBegin"
>
<view class="date-content">{{feedbackTimeBegin || '开始'}}</view>
</picker>
-
<picker
class="date"
start="{{feedbackTimeBegin}}"
model:value="{{feedbackTimeEnd}}"
mode="date"
bind:change="handleSearch"
bindcancel="handleCancel"
data-key="feedbackTimeEnd"
>
<view class="date-content">{{feedbackTimeEnd || '结束'}}</view>
</picker>
<image class="icon" src="{{imageUrl}}icon-date.png?t={{Timestamp}}"></image>
</view>
<view class="status">
<view class="label">状态</view>
<picker class="picker" mode="region" bindchange="onFinish" bindcancel="onClose" bind:tap="handleArea">
<view class="picker-content">
<view class="content">{{cityName + countyName || '全部'}}</view>
<van-icon name="arrow-down" />
</view>
</picker>
</view>
</view>
<view class="list">
<view
class="doctor"
wx:for="{{cooperateList}}"
wx:key="DoctorId"
bind:tap="handleCooperateDetail"
data-index="{{index}}"
>
<image class="d-status" src="{{imageUrl}}application-status1.png?t={{Timestamp}}" mode="aspectFit"></image>
<view class="d-container">
<doctorAvatar
id="cooperate{{index}}"
did="{{item.DoctorId}}"
class="avatar"
src="{{item.DoctorImg}}"
level="{{item.DoctorLevel}}"
></doctorAvatar>
<view class="wrap">
<view class="w-header">
<view class="name">{{item.DoctorName}}</view>
<view class="label" wx:if="{{item.TitleType===99}}">{{item.DoctorOtherTitle}}</view>
<view class="label" wx:else>{{DoctorTitleType[item.DoctorTitleType]}}</view>
<block wx:for="{{item.department}}" wx:key="DepartmentId">
<view class="line"></view>
<view class="label">{{item.DepartmentName}}</view>
</block>
</view>
<view class="w-container">
<text class="hostipal">{{item.HospitalName}}</text>
<view class="tag">
{{hospitalClassification[item.HospitalClassification]}}{{hospitalLevel[item.HospitalLevel]}}
</view>
<view class="site" wx:if="{{item.CityName}}">
{{item.CityName}}{{item.CountyName?'/':''}}{{item.CountyName}}
</view>
</view>
<view class="w-footer" wx:if="{{item.specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
<view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view>
</view>
</view>
</view>
<view class="d-footer">
<view class="row">
<view class="label">审核日期</view>
<view class="content">2024-12-12</view>
</view>
<view class="row">
<view class="label">驳回原因</view>
<view class="content">这是一段驳回原因的文案,可能有俩行字</view>
</view>
</view>
</view>
</view>
</view>

8
src/module1/pages/auditDoctorDetail/index.wxml

@ -1,6 +1,14 @@
<view class="page"> <view class="page">
<view class="card"> <view class="card">
<view class="row"> <view class="row">
<view class="label">申请类型</view>
<view class="content">新注册医生</view>
</view>
<view class="row">
<view class="label">医生身份</view>
<view class="content">一级医生</view>
</view>
<view class="row">
<view class="label">提交人</view> <view class="label">提交人</view>
<view class="content">{{detail.Name}}</view> <view class="content">{{detail.Name}}</view>
</view> </view>

27
src/module1/pages/auditDoctorList/index.scss

@ -30,24 +30,35 @@ page {
flex: 1; flex: 1;
.w-header { .w-header {
display: flex; display: flex;
justify-content: space-between;
align-items: center;
line-height: 44rpx; line-height: 44rpx;
.name { .left {
margin-right: 16rpx; .name {
font-size: 32rpx; margin-right: 16rpx;
color: rgba(20, 21, 21, 1); font-size: 32rpx;
font-weight: bold; color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.label {
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
} }
.label { .type {
font-size: 28rpx; font-size: 28rpx;
color: rgba(20, 21, 21, 1); color: #3ed0a1;
} }
} }
.w-footer { .w-footer {
margin-top: 14rpx;
line-height: 32rpx; line-height: 32rpx;
font-size: 28rpx; font-size: 28rpx;
color: rgba(133, 133, 133, 1); color: rgba(133, 133, 133, 1);
.content {
margin-right: 16rpx;
}
.tag { .tag {
margin-left: 16rpx;
padding: 0 8rpx; padding: 0 8rpx;
display: inline-block; display: inline-block;
font-size: 28rpx; font-size: 28rpx;

12
src/module1/pages/auditDoctorList/index.wxml

@ -7,12 +7,16 @@
<image class="avatar" src="{{item.Img}}"></image> <image class="avatar" src="{{item.Img}}"></image>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="name">{{item.Name}}</view> <view class="left">
<view class="label" wx:if="{{item.TitleType==='99'}}">{{item.OtherTitle}}</view> <view class="name">{{item.Name}}</view>
<view class="label" wx:else>{{DoctorTitleType[item.TitleType]}}</view> <view class="label" wx:if="{{item.TitleType==='99'}}">{{item.OtherTitle}}</view>
<view class="label" wx:else>{{DoctorTitleType[item.TitleType]}}</view>
</view>
<view class="type">注册申请</view>
<!-- <view class="type">绑定申请</view> -->
</view> </view>
<view class="w-footer"> <view class="w-footer">
{{item.HospitalName}} <view class="content">{{item.HospitalName}}</view>
<view class="tag">{{item.HospitalClassificationName}}{{item.HospitalLevelName}}</view> <view class="tag">{{item.HospitalClassificationName}}{{item.HospitalLevelName}}</view>
</view> </view>
</view> </view>

73
src/module1/pages/chatRoom/index.scss

@ -14,45 +14,58 @@ page {
border-radius: 16rpx; border-radius: 16rpx;
border-radius: 0 0 0 32rpx; border-radius: 0 0 0 32rpx;
.info { .info {
padding: 24rpx;
background: #f6f6f6; background: #f6f6f6;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1); box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1);
border-radius: 16rpx 16rpx 16rpx 16rpx; border-radius: 16rpx 16rpx 16rpx 16rpx;
border: 2rpx solid #ffffff; border: 2rpx solid #ffffff;
display: flex; display: flex;
gap: 28rpx; align-items: start;
align-items: center; .left {
.photos { padding: 22rpx;
position: relative; border: 2rpx solid #ffffff;
padding: 4rpx; display: flex;
display: grid; align-items: center;
grid-template-columns: repeat(2, 40rpx); border-radius: 16rpx;
grid-template-rows: repeat(2, 40rpx); box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1);
background-color: #fff; .photos {
border-radius: 8rpx; position: relative;
gap: 4rpx; display: grid;
.photo { padding: 4rpx;
width: 100%; grid-template-columns: repeat(2, 40rpx);
height: 100%; grid-template-rows: repeat(2, 40rpx);
} background-color: #fff;
.sealed { border-radius: 8rpx;
position: absolute; gap: 4rpx;
bottom: -40rpx; .photo {
left: 50%; width: 100%;
transform: translateX(-50%); height: 100%;
white-space: nowrap; }
font-size: 20rpx; .sealed {
color: rgba(133, 133, 133, 1); position: absolute;
line-height: 1; bottom: -40rpx;
padding: 6rpx 16rpx; left: 50%;
border-radius: 48rpx; transform: translateX(-50%);
background-color: rgba(224, 224, 224, 1); white-space: nowrap;
font-size: 20rpx;
color: rgba(133, 133, 133, 1);
line-height: 1;
padding: 6rpx 16rpx;
border-radius: 48rpx;
background-color: rgba(224, 224, 224, 1);
}
.chat-add {
position: absolute;
bottom: -40rpx;
left: 50%;
transform: translate(-50%, 0);
width: 36rpx;
height: 36rpx;
}
} }
} }
.inner { .inner {
flex: 1; flex: 1;
padding-left: 24rpx; padding: 24rpx;
border-left: 1px solid rgba(205, 205, 205, 0.5);
.c-header { .c-header {
display: flex; display: flex;
align-items: center; align-items: center;

122
src/module1/pages/chatRoom/index.wxml

@ -1,15 +1,18 @@
<view class="page" bind:tap="handleNoLongPress"> <view class="page" bind:tap="handleNoLongPress">
<view class="page-header"> <view class="page-header">
<view class="info"> <view class="info">
<view class="photos" bind:tap="handleRoomDetail"> <view class="left">
<image <view class="photos" bind:tap="handleRoomDetail">
class="photo" <image
mode="aspectFill" class="photo"
wx:for="{{newRoomDoctors}}" mode="aspectFill"
wx:key="doctorId" wx:for="{{newRoomDoctors}}"
src="{{item.doctorImg}}" wx:key="doctorId"
></image> src="{{item.doctorImg}}"
<view class="sealed" wx:if="{{case.caseStatus==='4'}}">已归档</view> ></image>
<view class="sealed" wx:if="{{case.caseStatus==='4'}}">已归档</view>
<image class="chat-add" src="{{imageUrl}}chat-add.png?t={{Timestamp}}"></image>
</view>
</view> </view>
<view class="inner" bind:tap="handleCaseDetail"> <view class="inner" bind:tap="handleCaseDetail">
<view class="c-header"> <view class="c-header">
@ -40,22 +43,12 @@
bindscrolltoupper="scrolltoupper" bindscrolltoupper="scrolltoupper"
> >
<van-loading wx:if="{{isLoad && !isFinish}}" /> <van-loading wx:if="{{isLoad && !isFinish}}" />
<view <view wx:for="{{messageList}}" wx:key="msgId" wx:for-item="message" wx:for-index="mIndex" id="view{{mIndex}}">
wx:for="{{messageList}}"
wx:key="msgId"
wx:for-item="message"
wx:for-index="mIndex"
id="view{{mIndex}}"
>
<view class="date" wx:if="{{message.showTime}}">{{message.createTimeName}}</view> <view class="date" wx:if="{{message.showTime}}">{{message.createTimeName}}</view>
<view class="create" wx:if="{{message.contentType==='5'}}">{{message.content}}</view> <view class="create" wx:if="{{message.contentType==='5'}}">{{message.content}}</view>
<view class="recall" wx:elif="{{message.contentType==='6'}}">{{message.content}}</view> <view class="recall" wx:elif="{{message.contentType==='6'}}">{{message.content}}</view>
<view class="doctor" wx:elif="{{message.isSelf===2}}"> <view class="doctor" wx:elif="{{message.isSelf===2}}">
<doctorAvatar <doctorAvatar did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar>
did="{{message.fromDoctorId}}"
class="avatar"
src="{{message.doctorImg}}"
></doctorAvatar>
<view class="d-container"> <view class="d-container">
<view class="user">{{message.doctorName}} {{message.hospitalName}}</view> <view class="user">{{message.doctorName}} {{message.hospitalName}}</view>
<view class="message" wx:if="{{message.contentType==='1'}}">{{message.content}}</view> <view class="message" wx:if="{{message.contentType==='1'}}">{{message.content}}</view>
@ -71,12 +64,7 @@
src="{{imageUrl}}/audio-right.gif?t={{Timestamp}}" src="{{imageUrl}}/audio-right.gif?t={{Timestamp}}"
mode="aspectFit" mode="aspectFit"
></image> ></image>
<image <image wx:else class="icon" src="{{imageUrl}}/audio-right.png?t={{Timestamp}}" mode="aspectFit"></image>
wx:else
class="icon"
src="{{imageUrl}}/audio-right.png?t={{Timestamp}}"
mode="aspectFit"
></image>
{{message.content.duration}}″ {{message.content.duration}}″
<view style="width:{{message.content.duration*3}}px;height: 10px;"></view> <view style="width:{{message.content.duration*3}}px;height: 10px;"></view>
</view> </view>
@ -95,42 +83,20 @@
bind:tap="handleVideo" bind:tap="handleVideo"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
> >
<image <image class="v-img" src="{{message.content.imgUrl}}" mode="aspectFill"></image>
class="v-img"
src="{{message.content.imgUrl}}"
mode="aspectFill"
></image>
<image class="play" src="{{imageUrl}}icon-video-play.png?t={{Timestamp}}"></image> <image class="play" src="{{imageUrl}}icon-video-play.png?t={{Timestamp}}"></image>
</view> </view>
</view> </view>
</view> </view>
<view class="patient" wx:elif="{{message.isSelf===1}}"> <view class="patient" wx:elif="{{message.isSelf===1}}">
<view <view class="p-container" bind:longpress="handleLongpress" data-index="{{mIndex}}">
class="p-container" <view class="longpress" wx:if="{{message.longpress}}" bind:tap="handleRecall" data-index="{{mIndex}}">
bind:longpress="handleLongpress" <image class="icon" src="{{imageUrl}}/recall.png?t={{Timestamp}}" mode="aspectFit"></image>
data-index="{{mIndex}}"
>
<view
class="longpress"
wx:if="{{message.longpress}}"
bind:tap="handleRecall"
data-index="{{mIndex}}"
>
<image
class="icon"
src="{{imageUrl}}/recall.png?t={{Timestamp}}"
mode="aspectFit"
></image>
撤回 撤回
</view> </view>
<view class="user">{{message.doctorName}} {{message.hospitalName}}</view> <view class="user">{{message.doctorName}} {{message.hospitalName}}</view>
<view class="message" wx:if="{{message.contentType==='1'}}">{{message.content}}</view> <view class="message" wx:if="{{message.contentType==='1'}}">{{message.content}}</view>
<view <view class="audio" wx:elif="{{message.contentType==='2'}}" bind:tap="handleAudio" data-index="{{mIndex}}">
class="audio"
wx:elif="{{message.contentType==='2'}}"
bind:tap="handleAudio"
data-index="{{mIndex}}"
>
<view style="width:{{message.content.duration*3}}px;height: 10px;"></view> <view style="width:{{message.content.duration*3}}px;height: 10px;"></view>
{{message.content.duration}}″ {{message.content.duration}}″
<image <image
@ -139,12 +105,7 @@
src="{{imageUrl}}/audio-left.gif?t={{Timestamp}}" src="{{imageUrl}}/audio-left.gif?t={{Timestamp}}"
mode="aspectFit" mode="aspectFit"
></image> ></image>
<image <image class="icon" wx:else src="{{imageUrl}}/audio-left.png?t={{Timestamp}}" mode="aspectFit"></image>
class="icon"
wx:else
src="{{imageUrl}}/audio-left.png?t={{Timestamp}}"
mode="aspectFit"
></image>
</view> </view>
<view class="photo" wx:elif="{{message.contentType==='3'}}"> <view class="photo" wx:elif="{{message.contentType==='3'}}">
<image <image
@ -161,19 +122,11 @@
bind:tap="handleVideo" bind:tap="handleVideo"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
> >
<image <image class="v-img" src="{{message.content.imgUrl}}" mode="aspectFill"></image>
class="v-img"
src="{{message.content.imgUrl}}"
mode="aspectFill"
></image>
<image class="play" src="{{imageUrl}}icon-video-play.png?t={{Timestamp}}"></image> <image class="play" src="{{imageUrl}}icon-video-play.png?t={{Timestamp}}"></image>
</view> </view>
</view> </view>
<doctorAvatar <doctorAvatar did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar>
did="{{message.fromDoctorId}}"
class="avatar"
src="{{message.doctorImg}}"
></doctorAvatar>
</view> </view>
</view> </view>
<view id="place" class="place"></view> <view id="place" class="place"></view>
@ -210,20 +163,10 @@
bindblur="handleBlur" bindblur="handleBlur"
bindfocus="handleFocus" bindfocus="handleFocus"
/> />
<view <view class="place" wx:else bind:tap="handleFocus">{{sendMessage}}</view>
class="place"
wx:else
bind:tap="handleFocus"
>{{sendMessage}}
</view>
</block> </block>
<customRecord <customRecord wx:else class="custom-record" bind:file="handleSendAudio" slotIcon doubleConform>
wx:else 按住说话
class="custom-record"
bind:file="handleSendAudio"
slotIcon
doubleConform
>按住说话
</customRecord> </customRecord>
<image <image
class="icon-add" class="icon-add"
@ -237,11 +180,7 @@
<image class="icon" src="{{imageUrl}}icon-picture.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}icon-picture.png?t={{Timestamp}}"></image>
<view class="name">照片</view> <view class="name">照片</view>
</uploadFile> </uploadFile>
<uploadFile <uploadFile class="f-item" accept="video" bind:file="handleSendVideo">
class="f-item"
accept="video"
bind:file="handleSendVideo"
>
<image class="icon" src="{{imageUrl}}icon-video.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}icon-video.png?t={{Timestamp}}"></image>
<view class="name">视频</view> <view class="name">视频</view>
</uploadFile> </uploadFile>
@ -250,12 +189,7 @@
<video id="video" src="{{videoUrl}}"></video> <video id="video" src="{{videoUrl}}"></video>
</view> </view>
<van-popup <van-popup show="{{ show1 }}" bind:close="onAgreeClose" closeable round>
show="{{ show1 }}"
bind:close="onAgreeClose"
closeable
round
>
<view class="popup1"> <view class="popup1">
<view class="title">用户须知</view> <view class="title">用户须知</view>
<view class="scroll"> <view class="scroll">

11
src/module1/pages/setApplicationDoctor/index.json

@ -0,0 +1,11 @@
{
"navigationBarTitleText": "选择绑定医生",
"navigationStyle": "default",
"usingComponents": {
"popupDoctorDetail": "/components/popupDoctorDetail/index",
"doctorAvatar": "/components/doctorAvatar/index",
"van-popup": "@vant/weapp/popup/index",
"van-dialog": "@vant/weapp/dialog/index",
"pagination": "/components/pagination/index"
}
}

208
src/module1/pages/setApplicationDoctor/index.scss

@ -0,0 +1,208 @@
page {
background-color: rgba(246, 246, 246, 1);
}
.page {
.header {
padding: 32rpx 32rpx 2rpx;
background-color: #fff;
.tip {
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
text-align: center;
.link {
color: rgba(0, 180, 197, 1);
}
}
.search-wrap {
margin-top: 32rpx;
display: flex;
align-items: center;
gap: 22rpx;
.search {
flex: 1;
padding: 20rpx 30rpx;
display: flex;
align-items: center;
gap: 20rpx;
border-radius: 122rpx;
background-color: rgba(246, 246, 246, 1);
.icon {
width: 32rpx;
height: 32rpx;
}
.input {
flex: 1;
text-align: center;
font-size: 28rpx;
color: #000;
}
.place-input {
color: rgba(205, 205, 205, 1);
}
}
.reset {
padding: 10rpx;
font-size: 28rpx;
color: #00b4c5;
}
}
.options {
display: flex;
align-items: center;
justify-content: space-between;
.picker {
flex: 1;
}
.option-wrap {
flex: 1;
.option {
padding: 30rpx 10rpx;
display: flex;
align-items: center;
justify-content: center;
.option-text {
max-width: 4em;
font-size: 32rpx;
color: rgba(20, 21, 21, 1);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.icon {
width: 24rpx;
height: 24rpx;
}
}
}
}
}
.list {
padding: 26rpx 32rpx 300rpx;
.list-item {
margin-bottom: 24rpx;
display: flex;
align-items: center;
.radio {
transform: scale(0.7);
}
.card {
flex: 1;
padding: 32rpx;
border-radius: 16rpx;
background-color: #fff;
display: flex;
gap: 24rpx;
.avatar {
flex-shrink: 0;
position: relative;
width: 112rpx;
height: 112rpx;
}
.wrap {
flex: 1;
.w-header {
.name {
margin-right: 10rpx;
display: inline;
font-size: 36rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.label {
display: inline;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
.line {
margin: 0 10rpx;
display: inline-block;
width: 1px;
height: 24rpx;
background-color: rgba(205, 205, 205, 1);
}
}
.w-container {
margin-top: 24rpx;
.hostipal {
margin-right: 12rpx;
font-size: 28rpx;
color: rgba(20, 21, 21, 1);
}
.tag {
margin-right: 12rpx;
display: inline-block;
padding: 0 8rpx;
border-radius: 4rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 1);
line-height: 32rpx;
background-color: rgba(0, 180, 197, 1);
}
.site {
display: inline-block;
padding: 0 8rpx;
font-size: 24rpx;
color: rgba(148, 87, 30, 1);
line-height: 32rpx;
border-radius: 4rpx;
background-color: rgba(250, 229, 206, 1);
}
}
.w-footer {
margin-top: 14rpx;
display: flex;
gap: 12rpx;
flex-wrap: wrap;
.wf-label {
flex-shrink: 0;
width: 48rpx;
height: 32rpx;
}
.wf-tag {
flex-shrink: 0;
padding: 0 8rpx;
font-size: 22rpx;
color: rgba(0, 180, 197, 1);
line-height: 32rpx;
border: 1px solid rgba(191, 239, 244, 1);
}
}
}
}
}
}
.footer {
position: fixed;
bottom: 0;
left: 0;
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx);
width: 100%;
box-sizing: border-box;
display: flex;
gap: 26rpx;
align-items: center;
justify-content: space-between;
background-color: #fff;
box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1);
.cancel {
width: 230rpx;
height: 84rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: rgba(1, 180, 197, 1);
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1px solid #01b4c5;
}
.submit {
flex: 1;
height: 88rpx;
text-align: center;
line-height: 88rpx;
font-size: 32rpx;
color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
border-radius: 96rpx;
}
}
}

273
src/module1/pages/setApplicationDoctor/index.ts

@ -0,0 +1,273 @@
const app = getApp<IAppOption>();
Page({
data: {
showDetail: false,
popupDoctorDetail: {},
showResolve: false,
showArea: false,
fieldNames: { text: "label", value: "value", children: "children" },
area: [],
id: "",
DoctorTitleType: {},
hospitalClassification: {},
hospitalLevel: {},
SpecialtyList: [],
search: "",
hospitalId: "",
HospitalName: "",
provinceId: "",
cityId: "",
countyId: "",
ProvinceName: "",
CityName: "",
CountyName: "",
specialtyId: "",
SpecialtyName: "",
pagination: {
page: 1,
pages: 1,
count: 1,
},
list: [],
DoctorId: "",
params: {},
caseId: "",
},
onLoad(options) {
if (options.hid) {
this.setData({
hospitalId: options.hid,
HospitalName: options.hname,
});
}
const eventChannel = this.getOpenerEventChannel();
eventChannel.on("acceptDataFromOpenerPage", (data) => {
this.setData({
params: data.params,
caseId: data.caseId,
});
});
app.waitLogin().then(() => {
this.getList();
this.getDoctorDict();
this.getHostipalDict();
this.getArea();
});
},
getDoctorDict() {
wx.ajax({
method: "GET",
url: "?r=takeda/reg/doctor-dict",
data: {},
}).then((res) => {
const SpecialtyList: any = [];
res.DoctorSpecialtyLabel.forEach((item: any) => {
SpecialtyList.push(...item.options);
});
this.setData({
DoctorTitleType: res.DoctorTitleType,
SpecialtyList,
});
});
},
getHostipalDict() {
wx.ajax({
method: "GET",
url: "?r=takeda/reg/hospital-dict",
data: {},
}).then((res) => {
this.setData({
hospitalClassification: res.hospitalClassification,
hospitalLevel: res.hospitalLevel,
});
});
},
getArea() {
wx.ajax({
method: "GET",
url: "/js/area.json",
isJSON: true,
}).then((res) => {
this.setData({
area: res,
});
});
},
handleSearch() {
this.setData({
list: [],
});
this.getList();
},
handleReset() {
this.setData({
search: "",
hospitalId: "",
HospitalName: "",
provinceId: "",
cityId: "",
countyId: "",
ProvinceName: "",
CityName: "",
CountyName: "",
specialtyId: "",
SpecialtyName: "",
});
this.handleSearch();
},
getList(newPage = 1) {
const { search, hospitalId, provinceId, cityId, countyId, specialtyId } = this.data;
wx.ajax({
method: "GET",
url: "?r=takeda/case/get-invite-doctor-list",
data: {
search,
hospitalId,
provinceId,
cityId,
countyId,
specialtyId,
page: newPage,
},
}).then((res) => {
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
handlePopupDetail(e) {
const { index } = e.currentTarget.dataset;
const { list } = this.data;
const item: any = list[index];
this.setData({
showDetail: true,
popupDoctorDetail: {
DoctorLevel: item.doctorLevel,
DoctorImg: item.doctorImg,
DoctorName: item.doctorName,
DoctorTitleName: item.doctorTitleName || item.doctorOtherTitle,
HospitalName: item.hospitalName,
HospitalClassificationName: item.hospitalClassificationName,
HospitalLevelName: item.hospitalLevelName,
CityName: item.cityName,
CountyName: item.countyName,
Introduce: item.doctorIntroduce,
department: item.doctorDept,
specialty: item.doctorSpecialty,
},
});
},
handlePopupClose() {
this.setData({
showDetail: false,
});
},
handleHostipal() {
wx.navigateTo({
url: `/module1/pages/sHostipal/index`,
events: {
acceptDataFromOpenedPage: (data: any) => {
this.setData({
hospitalId: data.hid,
HospitalName: data.hname,
});
this.handleSearch();
},
},
});
},
handleArea() {
this.setData({
showArea: true,
});
},
onClose() {
this.setData({
showArea: false,
showResolve: false,
});
},
onFinish(e: any) {
this.setData({
provinceId: e.detail.code[0],
ProvinceName: e.detail.value[0],
cityId: e.detail.code[1],
CityName: e.detail.value[1],
countyId: e.detail.code[2],
CountyName: e.detail.value[2],
showArea: false,
});
this.handleSearch();
},
handleSpecialChange(e: any) {
const index = e.detail.value;
const { SpecialtyList } = this.data;
const item: any = SpecialtyList[index];
this.setData({
specialtyId: item.value,
SpecialtyName: item.label,
});
this.handleSearch();
},
handleRadio(e) {
const { index } = e.currentTarget.dataset;
const { list } = this.data;
this.setData({
DoctorId: (list as any)[index].doctorId,
});
},
handleSubmit() {
const { caseId, DoctorId, params } = this.data;
if (!DoctorId) {
wx.showToast({
title: "请选择医生",
icon: "none",
});
return;
}
const url = caseId ? "?r=takeda/case/save-case" : "?r=takeda/case/create-case";
wx.ajax({
method: "POST",
url,
data: {
...params,
caseId,
isSubmit: 1,
dealDoctorId: DoctorId,
},
}).then((res) => {
wx.reLaunch({
url: `/module1/pages/setApplicationDoctorResult/index?isf=${res.isSubscribe}&wxi=${encodeURIComponent(res.wxImg)}&cid=${res.caseId || caseId}`,
});
});
},
handleBack() {
wx.navigateBack();
},
});
export {};

98
src/module1/pages/setApplicationDoctor/index.wxml

@ -0,0 +1,98 @@
<view class="page">
<view class="header">
<view class="search-wrap">
<view class="search">
<image class="icon" src="{{imageUrl}}icon-search.png?t={{Timestamp}}"></image>
<input
model:value="{{search}}"
class="input"
placeholder-class="place-input"
placeholder="搜索医生名"
type="text"
confirm-type="search"
bindconfirm="handleSearch"
/>
</view>
<view class="reset" bind:tap="handleReset">重置</view>
</view>
<view class="options">
<view class="option-wrap" bind:tap="handleHostipal">
<view class="option">
<text class="option-text">{{HospitalName || '医院'}}</text>
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image>
</view>
</view>
<picker class="picker" mode="region" bindchange="onFinish" bindcancel="onClose" bind:tap="handleArea">
<view class="option-wrap">
<view class="option">
<text class="option-text">{{CountyName || '地区'}}</text>
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image>
</view>
</view>
</picker>
<picker class="option-wrap" range="{{SpecialtyList}}" range-key="label" bindchange="handleSpecialChange">
<view class="option">
<text class="option-text">{{SpecialtyName || '医生专长'}}</text>
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image>
</view>
</picker>
</view>
</view>
<view class="container">
<radio-group>
<view class="list">
<view class="list-item" wx:for="{{list}}" wx:key="DoctorId">
<radio
class="radio"
value="{{item.DoctorId}}"
bind:tap="handleRadio"
color="#00B4C5"
data-index="{{index}}"
></radio>
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}">
<doctorAvatar
did="{{item.doctorId}}"
class="avatar"
src="{{item.doctorImg}}"
level="{{item.doctorLevel}}"
></doctorAvatar>
<view class="wrap">
<view class="w-header">
<view class="name">{{item.doctorName}}</view>
<view class="label">{{item.doctorTitleName || item.doctorOtherTitle}}</view>
<block wx:for-item="depart" wx:for="{{item.doctorDept}}" wx:key="departmentId">
<view class="line"></view>
<view class="label">{{depart.DepartmentName}}</view>
</block>
</view>
<view class="w-container">
<text class="hostipal">{{item.hospitalName}}</text>
<view class="tag">{{item.hospitalClassificationName}}{{item.hospitalLevelName}}</view>
<view class="site" wx:if="{{item.cityName}}">
{{item.cityName}}{{item.countyName?'/':''}}{{item.countyName}}
</view>
</view>
<view class="w-footer">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
<view class="wf-tag" wx:for="{{item.doctorSpecialty}}" wx:for-item="spec" wx:key="SpecialtyId">
{{spec.SpecialtyName}}
</view>
</view>
</view>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>
</radio-group>
</view>
<view class="footer">
<view class="cancel" bind:tap="handleBack">返回</view>
<view class="submit" bind:tap="handleSubmit">发送绑定申请</view>
</view>
</view>
<popupDoctorDetail
show="{{showDetail}}"
params="{{popupDoctorDetail}}"
bind:close="handlePopupClose"
></popupDoctorDetail>

6
src/module1/pages/setApplicationDoctorResult/index.json

@ -0,0 +1,6 @@
{
"usingComponents": {
"van-nav-bar": "@vant/weapp/nav-bar/index",
"van-icon": "@vant/weapp/icon/index"
}
}

56
src/module1/pages/setApplicationDoctorResult/index.scss

@ -0,0 +1,56 @@
.page {
padding: 0 32rpx 200rpx;
width: 100vw;
min-height: 100vh;
box-sizing: border-box;
.container {
margin: 200rpx 20rpx 0;
padding: 122rpx 12rpx 64rpx;
position: relative;
border-radius: 48rpx 48rpx 48rpx 48rpx;
background: linear-gradient(180deg, #ffffff 0%, #e7fbff 100%);
text-align: center;
.result {
position: absolute;
left: 50%;
top: -100rpx;
transform: translateX(-50%);
width: 200rpx;
height: 200rpx;
background-color: #fff;
border-radius: 50%;
}
.title {
font-size: 48rpx;
color: rgba(20, 21, 21, 1);
font-weight: bold;
}
.notice {
margin-top: 30rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
line-height: 48rpx;
.link {
font-size: 32rpx;
color: rgba(0, 180, 197, 1);
}
}
.code {
margin: 48rpx auto 0;
display: block;
width: 382rpx;
height: 382rpx;
}
.tip {
margin-top: 36rpx;
font-size: 32rpx;
color: rgba(153, 153, 153, 1);
}
}
.back-home {
margin-top: 74rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
}
}

34
src/module1/pages/setApplicationDoctorResult/index.ts

@ -0,0 +1,34 @@
const app = getApp<IAppOption>();
Page({
data: {
isf: 0,
codeUrl: "",
},
onLoad(options) {
app.waitLogin(true).then(() => {
this.getCodeUrl();
this.setData({
isf: Number(options.isf),
});
});
},
handleBack() {
wx.navigateBack();
},
getCodeUrl() {
wx.ajax({
method: "GET",
url: "?r=takeda/common/get-channel-wx-code",
data: {
ChannelType: 1,
},
}).then((res) => {
this.setData({
codeUrl: res,
});
});
},
});
export {};

31
src/module1/pages/setApplicationDoctorResult/index.wxml

@ -0,0 +1,31 @@
<view
class="page"
style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top right/832rpx 1714rpx;padding-top:{{menuButtonInfo.bottom}}px;"
>
<van-nav-bar
fixed
custom-style="background:transparent;color:#000"
border="{{false}}"
fixed
bind:click-left="handleBack"
>
<van-icon name="arrow-left" color="white" slot="left" size="18px" />
</van-nav-bar>
<view class="container">
<image class="result" src="{{imageUrl}}c-doctor-result.png?t={{Timestamp}}"></image>
<view class="title">提交成功</view>
<view class="notice">
<view wx:if="{{InviteDoctorName}}">
已将信息提交给
<text class="link">{{InviteDoctorName}}医生</text>
</view>
审核通过后,您可绑定成功
</view>
<image class="code" src="{{codeUrl}}" show-menu-by-longpress></image>
<view class="tip">
<view>扫码关注公众号</view>
<view>获取审核通知</view>
</view>
</view>
<!-- <view class="back-home" bind:tap="handleBack">回到首页</view> -->
</view>

4
src/pages/chatRoomList/index.wxml

@ -143,7 +143,7 @@
ID:{{item.caseNo}} ID:{{item.caseNo}}
<view class="status" wx:if="{{item.caseStatus==='4'}}">已归档</view> <view class="status" wx:if="{{item.caseStatus==='4'}}">已归档</view>
</view> </view>
<view class="date" wx:if="{{item.caseStatus!=='4'}}">{{item.createTime}}</view> <view class="date" wx:if="{{item.caseStatus!=='4'}}">{{item.createTime || ''}}</view>
</view> </view>
<view class="c-container"> <view class="c-container">
<view class="photos"> <view class="photos">
@ -161,7 +161,7 @@
<view class="site" wx:if="{{item.cityName}}"> <view class="site" wx:if="{{item.cityName}}">
{{item.cityName}}{{item.countyName?'/':''}}{{item.countyName}} {{item.cityName}}{{item.countyName?'/':''}}{{item.countyName}}
</view> </view>
<view class="content">{{item.msgContent}}</view> <view class="content">{{item.msgContent || ''}}</view>
</view> </view>
</view> </view>
<view class="c-footer"> <view class="c-footer">

Loading…
Cancel
Save