Browse Source

1. 聊天室增加撤回功能

2. 客户uat问题处理
main
kola-web 3 months ago
parent
commit
3a42cea45e
  1. 10
      README.md
  2. 7
      project.private.config.json
  3. 3
      src/app.ts
  4. 21
      src/echart/components/homeLevel1/index.ts
  5. 96
      src/echart/components/homeLevel1/index.wxml
  6. 14
      src/echart/components/homeLevel2/index.scss
  7. 23
      src/echart/components/homeLevel2/index.ts
  8. 151
      src/echart/components/homeLevel2/index.wxml
  9. 14
      src/echart/components/homeLevel3/index.scss
  10. 15
      src/echart/components/homeLevel3/index.ts
  11. 87
      src/echart/components/homeLevel3/index.wxml
  12. 20
      src/echart/components/homeLevel4/index.scss
  13. 17
      src/echart/components/homeLevel4/index.ts
  14. 205
      src/echart/components/homeLevel4/index.wxml
  15. BIN
      src/images/recall.png
  16. 40
      src/module1/pages/chatRoom/index.scss
  17. 86
      src/module1/pages/chatRoom/index.ts
  18. 106
      src/module1/pages/chatRoom/index.wxml
  19. 19
      src/module1/pages/chatRoomInfo/index.wxml
  20. 3
      src/module1/pages/doctorRankList/index.json
  21. 3
      src/module1/pages/doctorRankList/index.scss
  22. 14
      src/module1/pages/doctorRankList/index.ts
  23. 41
      src/module1/pages/doctorRankList/index.wxml
  24. 7
      src/module1/pages/entryCases/index.scss
  25. 21
      src/module1/pages/entryCases/index.ts
  26. 97
      src/module1/pages/entryCases/index.wxml
  27. 2
      src/module1/pages/setChatDoctor/index.ts
  28. 4
      src/module1/pages/setInfo/index.ts
  29. 3
      src/pages/cases/index.scss
  30. 19
      src/pages/cases/index.ts
  31. 13
      src/pages/cases/index.wxml
  32. 3
      src/pages/chatRoomList/index.ts
  33. 3
      src/pages/home/index.ts
  34. 3
      typings/index.d.ts

10
README.md

@ -3,6 +3,7 @@
3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病历已被涂抹 3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病历已被涂抹
<!--占位图像--> <!--占位图像-->
https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567 https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567
images svn 地址 images svn 地址
@ -24,3 +25,12 @@ wx.showModal({
cancelColor: "#141515", cancelColor: "#141515",
}); });
``` ```
医生待审核 /module1/pages/auditDoctorList/index
医生端首页 /pages/home/index
身份信息编辑页 /module1/pages/userInfo/index
医院信息编辑页面 /module1/pages/cHostipal/index
我的病历列表 /pages/cases/index
病历详情页 /module1/pages/casesDetail/index?id=病例id
病历编辑页面 /module1/pages/entryCases/index?id=病例id
聊天室互动页 /module1/pages/chatRoom/index?id=聊天室id

7
project.private.config.json

@ -9,6 +9,13 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "module1/pages/chatRoom/index",
"pathName": "module1/pages/chatRoom/index",
"query": "id=28",
"launchMode": "default",
"scene": null
},
{
"name": "注销", "name": "注销",
"pathName": "module1/pages/loginOut/index", "pathName": "module1/pages/loginOut/index",
"query": "", "query": "",

3
src/app.ts

@ -36,6 +36,9 @@ App<IAppOption>({
needDeal: "", needDeal: "",
caseNav: "0", caseNav: "0",
caseStatus: "",
caseStatusName: "全部",
newFeedback: "",
}, },
onLaunch() { onLaunch() {
Page = page as WechatMiniprogram.Page.Constructor; Page = page as WechatMiniprogram.Page.Constructor;

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

@ -1,4 +1,4 @@
const _app = getApp<IAppOption>(); const app = getApp<IAppOption>();
// pages/story/a.ts // pages/story/a.ts
Component({ Component({
@ -88,6 +88,7 @@ Component({
}); });
}, },
handleCaseUpdate() { handleCaseUpdate() {
app.globalData.newFeedback = "1";
wx.switchTab({ wx.switchTab({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
@ -101,6 +102,24 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.triggerEvent("question", index); this.triggerEvent("question", index);
}, },
handleCase(e) {
const { type } = e.currentTarget.dataset;
const name = {
0: "全部",
2: "新病历",
3: "讨论中",
4: "已归档",
}[type];
app.globalData.caseStatus = type === "0" ? "" : type;
app.globalData.caseStatusName = name;
wx.switchTab({
url: "/pages/cases/index",
});
},
handleCooperateDetail(e) {
const { index } = e.currentTarget.dataset;
this.selectComponent(`#cooperate${index}`).handleDetail();
},
}, },
}); });

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

@ -1,6 +1,11 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar did="{{userInfo.DoctorId}}" class="avatar" src="{{userInfo.Img}}" level="{{userInfo.DoctorLevel}}"></doctorAvatar> <doctorAvatar
did="{{userInfo.DoctorId}}"
class="avatar"
src="{{userInfo.Img}}"
level="{{userInfo.DoctorLevel}}"
></doctorAvatar>
<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>
@ -17,10 +22,7 @@
</view> </view>
</view> </view>
<view class="banner"> <view class="banner">
<view <view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;">
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">
@ -46,31 +48,66 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">总数</view> <view class="name">总数</view>
<view class="num">{{case.totalCaseCount}}</view> <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 bind:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{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 bind:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{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 bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -100,9 +137,25 @@
</block> </block>
</view> </view>
</view> </view>
<view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;"> <view
<view class="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId"> id="fold1"
<doctorAvatar did="{{item.DoctorId}}" class="avatar" src="{{item.DoctorImg}}" level="{{item.DoctorLevel}}"></doctorAvatar> class="doctor-list {{fold1 && 'doctor-list-fold'}}"
style="--fold-height: {{foldHeight1}}px;"
>
<view
class="doctor"
wx:for="{{cooperateList}}"
wx:key="DoctorId"
bind:tap="handleCooperateDetail"
data-index="{{index}}"
>
<doctorAvatar
id="cooperate{{index}}"
did="{{item.DoctorId}}"
class="avatar"
src="{{item.DoctorImg}}"
level="{{item.DoctorLevel}}"
></doctorAvatar>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="name">{{item.DoctorName}}</view> <view class="name">{{item.DoctorName}}</view>
@ -123,8 +176,17 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> 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>
</view> </view>

14
src/echart/components/homeLevel2/index.scss

@ -135,6 +135,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 {

23
src/echart/components/homeLevel2/index.ts

@ -130,6 +130,21 @@ Component({
}); });
}, },
handleCaseUpdate() { handleCaseUpdate() {
app.globalData.newFeedback = "1";
wx.switchTab({
url: "/pages/cases/index",
});
},
handleCase(e) {
const { type } = e.currentTarget.dataset;
const name = {
0: "全部",
2: "新病历",
3: "讨论中",
4: "已归档",
}[type];
app.globalData.caseStatus = type === "0" ? "" : type;
app.globalData.caseStatusName = name;
wx.switchTab({ wx.switchTab({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
@ -159,6 +174,14 @@ Component({
newCaseShow: false, newCaseShow: false,
}); });
}, },
handleCooperateDetail(e) {
const { index } = e.currentTarget.dataset;
this.selectComponent(`#cooperate${index}`).handleDetail();
},
handleInviteDetail(e) {
const { index } = e.currentTarget.dataset;
this.selectComponent(`#invite${index}`).handleDetail();
},
}, },
}); });

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

@ -6,7 +6,11 @@
src="{{userInfo.Img}}" src="{{userInfo.Img}}"
level="{{userInfo.DoctorLevel}}" level="{{userInfo.DoctorLevel}}"
></doctorAvatar> ></doctorAvatar>
<image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image> <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>
@ -27,26 +31,34 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> class="wf-label"
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 <view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;">
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 <view class="b-container" wx:if="{{take.dealCaseCount>0 || take.notReadFeedBackCount>0 || take.notReadChatRoomCount>0 || take.toAuditDoctorCount>0}}">
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">{{take.dealCaseCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{take.dealCaseCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleCaseUpdate"> <view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view> <view class="name">病历更新</view>
@ -77,17 +89,36 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">全部</view> <view class="name">全部</view>
<view class="num">{{case.totalCaseCount}}</view> <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">
<view class="name"> <view class="name" bind:tap="handleNewCase">
新病历 新病历
<van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.newCaseCount}}</view>
<view class="item-toast" wx:if="{{newCaseShow}}"> <view class="item-toast" wx:if="{{newCaseShow}}">
<image class="i-clsoe" src="{{imageUrl}}icon-close.png?r={{Timestamp}}" catch:tap="handleNewCaseClose"></image> <image
class="i-clsoe"
src="{{imageUrl}}icon-close.png?r={{Timestamp}}"
catch:tap="handleNewCaseClose"
></image>
<view class="i-row">本人提交:{{case.newOneCaseCount}}</view> <view class="i-row">本人提交:{{case.newOneCaseCount}}</view>
<view class="i-line"></view> <view class="i-line"></view>
<view class="i-row">他人提交:{{case.newTwoCaseCount}}</view> <view class="i-row">他人提交:{{case.newTwoCaseCount}}</view>
@ -97,17 +128,37 @@
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{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 bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -137,9 +188,20 @@
</block> </block>
</view> </view>
</view> </view>
<view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;"> <view
<view class="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId"> id="fold1"
class="doctor-list {{fold1 && 'doctor-list-fold'}}"
style="--fold-height: {{foldHeight1}}px;"
>
<view
class="doctor"
wx:for="{{cooperateList}}"
wx:key="DoctorId"
bind:tap="handleCooperateDetail"
data-index="{{index}}"
>
<doctorAvatar <doctorAvatar
id="cooperate{{index}}"
did="{{item.DoctorId}}" did="{{item.DoctorId}}"
class="avatar" class="avatar"
src="{{item.DoctorImg}}" src="{{item.DoctorImg}}"
@ -165,8 +227,17 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> 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>
</view> </view>
@ -198,9 +269,20 @@
</block> </block>
</view> </view>
</view> </view>
<view id="fold2" class="doctor-list {{fold2 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight2}}px;"> <view
<view class="doctor" wx:for="{{inviteList}}" wx:key="DoctorId"> id="fold2"
class="doctor-list {{fold2 && 'doctor-list-fold'}}"
style="--fold-height: {{foldHeight2}}px;"
>
<view
class="doctor"
wx:for="{{inviteList}}"
wx:key="DoctorId"
bind:tap="handleInviteDetail"
data-index="{{index}}"
>
<doctorAvatar <doctorAvatar
id="invite{{index}}"
did="{{item.DoctorId}}" did="{{item.DoctorId}}"
class="avatar" class="avatar"
src="{{item.DoctorImg}}" src="{{item.DoctorImg}}"
@ -227,8 +309,17 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{item.specialty.length}}"> <view class="w-footer" wx:if="{{item.specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> 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>
</view> </view>

14
src/echart/components/homeLevel3/index.scss

@ -135,6 +135,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 {

15
src/echart/components/homeLevel3/index.ts

@ -88,6 +88,7 @@ Component({
}); });
}, },
handleCaseUpdate() { handleCaseUpdate() {
app.globalData.newFeedback = "1";
wx.switchTab({ wx.switchTab({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
@ -106,6 +107,20 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.triggerEvent("question", index); this.triggerEvent("question", index);
}, },
handleCase(e) {
const { type } = e.currentTarget.dataset;
const name = {
0: "全部",
2: "新病历",
3: "讨论中",
4: "已归档",
}[type];
app.globalData.caseStatus = type === "0" ? "" : type;
app.globalData.caseStatusName = name;
wx.switchTab({
url: "/pages/cases/index",
});
},
}, },
}); });

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

@ -1,7 +1,16 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar did="{{userInfo.DoctorId}}" class="avatar" src="{{userInfo.Img}}" level="{{userInfo.DoctorLevel}}"></doctorAvatar> <doctorAvatar
<image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image> did="{{userInfo.DoctorId}}"
class="avatar"
src="{{userInfo.Img}}"
level="{{userInfo.DoctorLevel}}"
></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>
@ -22,23 +31,34 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> class="wf-label"
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 <view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;">
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="handlePendCase"> <view class="item" bind:tap="handlePendCase">
<view class="name">待处理病历</view> <view class="name">待处理病历</view>
<view class="num">{{take.dealCaseCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{take.dealCaseCount*1}}"></view>
</view>
</view>
</view> </view>
<view class="item" bind:tap="handleCaseUpdate"> <view class="item" bind:tap="handleCaseUpdate">
<view class="name">病历更新</view> <view class="name">病历更新</view>
@ -68,29 +88,64 @@
<view class="s-container"> <view class="s-container">
<view class="item"> <view class="item">
<view class="name">全部</view> <view class="name">全部</view>
<view class="num">{{case.totalCaseCount}}</view> <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 catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.newCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
</view> </view>

20
src/echart/components/homeLevel4/index.scss

@ -134,6 +134,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 {
@ -451,6 +465,12 @@
.th5 { .th5 {
width: 96rpx; width: 96rpx;
white-space: nowrap; white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
.icon {
margin-left: 0rpx;
}
} }
} }
.tbody { .tbody {

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

@ -657,7 +657,7 @@ Component({
url: "/module1/pages/invite/index", url: "/module1/pages/invite/index",
}); });
}, },
handleCase() { handleAllCase() {
app.globalData.caseNav = "3"; app.globalData.caseNav = "3";
wx.switchTab({ wx.switchTab({
url: "/pages/cases/index", url: "/pages/cases/index",
@ -699,6 +699,21 @@ Component({
newCaseShow: false, newCaseShow: false,
}); });
}, },
handleCase(e) {
const { type } = e.currentTarget.dataset;
const name = {
0: "全部",
2: "新病历",
3: "讨论中",
4: "已归档",
}[type];
app.globalData.caseNav = "3";
app.globalData.caseStatus = type === "0" ? "" : type;
app.globalData.caseStatusName = name;
wx.switchTab({
url: "/pages/cases/index",
});
},
}, },
}); });

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

@ -1,7 +1,16 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar did="{{userInfo.DoctorId}}" class="avatar" src="{{userInfo.Img}}" level="4"></doctorAvatar> <doctorAvatar
<image class="code" bind:tap="handleInvite" src="{{imageUrl}}icon-code.png?t={{Timestamp}}"></image> did="{{userInfo.DoctorId}}"
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>
@ -22,23 +31,34 @@
</view> </view>
</view> </view>
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> <view class="w-footer" wx:if="{{userInfo.Specialty.length}}">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> <image
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> class="wf-label"
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 <view class="title" style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;">
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="handlePendCase"> <view class="item" bind:tap="handlePendCase">
<view class="name">待处理病历</view> <view class="name">待处理病历</view>
<view class="num">{{take.dealCaseCount*1 || '--'}}</view> <view class="num">
<view class="num-center">
{{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{take.dealCaseCount*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>
@ -51,33 +71,50 @@
</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%;">
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 class="picker" range="{{Department}}" range-key="DepartmentName" bind:change="handleChangeDept"> <picker
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" />
</view> </view>
</picker> </picker>
<view class="more" bind:tap="handleCase"> <view class="more" bind:tap="handleAllCase">
查看全部 查看全部
<van-icon name="arrow" /> <van-icon name="arrow" />
</view> </view>
<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 class="num">{{case.totalCaseCount}}</view> <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 catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{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"
@ -92,16 +129,36 @@
<view class="item"> <view class="item">
<view class="name"> <view class="name">
讨论中 讨论中
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.feedbackCaseCount}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name"> <view class="name">
已归档 已归档
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">{{case.archiveCaseCount}}</view>
</view> </view>
</view> </view>
<view class="s-container-none" wx:else> <view class="s-container-none" wx:else>
@ -150,9 +207,20 @@
<view class="c-header"> <view class="c-header">
<view class="name"> <view class="name">
科室医生入驻情况 科室医生入驻情况
<van-icon bind:tap="handleQuestion" data-index="4" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
bind:tap="handleQuestion"
data-index="4"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear1"> <picker
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" />
@ -167,7 +235,11 @@
</view> </view>
<block wx:else> <block wx:else>
<view class="chart"> <view class="chart">
<ec-canvas id="chart1" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas> <ec-canvas
id="chart1"
canvas-id="mychart-bar"
ec="{{ ec }}"
></ec-canvas>
</view> </view>
<view class="tip">注:一级医生为平台全部医生,不区分科室</view> <view class="tip">注:一级医生为平台全部医生,不区分科室</view>
</block> </block>
@ -176,9 +248,20 @@
<view class="c-header"> <view class="c-header">
<view class="name"> <view class="name">
累计病历统计 累计病历统计
<van-icon bind:tap="handleQuestion" data-index="5" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
bind:tap="handleQuestion"
data-index="5"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear2"> <picker
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" />
@ -192,16 +275,31 @@
</view> </view>
</view> </view>
<view class="chart" wx:else> <view class="chart" wx:else>
<ec-canvas id="chart2" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas> <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 bind:tap="handleQuestion" data-index="6" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
bind:tap="handleQuestion"
data-index="6"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view> </view>
<picker class="picker" mode="date" end="{{endYear}}" fields="year" bindchange="handleYear3"> <picker
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" />
@ -215,14 +313,23 @@
</view> </view>
</view> </view>
<view class="chart" wx:else> <view class="chart" wx:else>
<ec-canvas id="chart3" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas> <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 bind:tap="handleQuestion" data-index="7" name="question" color="rgba(224, 224, 224, 1)" /> <van-icon
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">
查看全部 查看全部
@ -233,12 +340,38 @@
<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> <view class="th3">S1
<view class="th4">S2</view> <van-icon
<view class="th5">S3</view> class="icon"
catch:tap="handleQuestion"
data-index="8"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view class="th4">S2
<van-icon
catch:tap="handleQuestion"
data-index="9"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view class="th5">S3
<van-icon
catch:tap="handleQuestion"
data-index="10"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
</view> </view>
<view class="tbody"> <view class="tbody">
<view class="tr" wx:for="{{rankList}}" wx:key="HospitalId"> <view
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/recall.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

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

@ -109,7 +109,14 @@ page {
color: rgba(173, 179, 180, 1); color: rgba(173, 179, 180, 1);
text-align: center; text-align: center;
} }
.create { .create,
.recall {
padding-top: 20rpx;
font-size: 28rpx;
color: rgba(173, 179, 180, 1);
text-align: center;
}
.recall {
padding-top: 20rpx; padding-top: 20rpx;
font-size: 28rpx; font-size: 28rpx;
color: rgba(173, 179, 180, 1); color: rgba(173, 179, 180, 1);
@ -232,6 +239,36 @@ page {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-end; align-items: flex-end;
position: relative;
.longpress {
position: absolute;
top: 30rpx;
transform: translate(0, -100%);
background-color: #4c4c4c;
padding: 22rpx 40rpx;
border-radius: 16rpx;
font-size: 28rpx;
color: #ffffff;
display: flex;
align-items: center;
gap: 12rpx;
.icon {
width: 40rpx;
height: 40rpx;
}
&::after {
position: absolute;
bottom: -14rpx;
left: 50%;
transform: translateX(-50%);
content: "";
width: 0;
height: 0;
border-style: solid;
border-width: 24rpx 24rpx 0 24rpx;
border-color: #4c4c4c transparent transparent transparent;
}
}
.user { .user {
padding: 12rpx 0; padding: 12rpx 0;
font-size: 28rpx; font-size: 28rpx;
@ -321,6 +358,7 @@ page {
border-radius: 212rpx 212rpx 212rpx 212rpx; border-radius: 212rpx 212rpx 212rpx 212rpx;
font-size: 28rpx; font-size: 28rpx;
color: #000; color: #000;
height: 40rpx;
&:empty::after { &:empty::after {
content: "请输入"; content: "请输入";
color: rgba(205, 205, 205, 1); color: rgba(205, 205, 205, 1);

86
src/module1/pages/chatRoom/index.ts

@ -4,7 +4,7 @@ const app = getApp<IAppOption>();
interface IMessageItem { interface IMessageItem {
msgId: string; msgId: string;
contentType: "1" | "2" | "3" | "4" | "5"; // 1:文本 2: 语音 3. 图片 4. 视频 5. 提示信息 contentType: "1" | "2" | "3" | "4" | "5" | "6"; // 1:文本 2: 语音 3. 图片 4. 视频 5. 提示信息
content: any; content: any;
fromDoctorId: string; fromDoctorId: string;
doctorImg: string; doctorImg: string;
@ -17,6 +17,7 @@ interface IMessageItem {
showTime?: boolean; showTime?: boolean;
isPlay?: boolean; isPlay?: boolean;
uniqueCode?: string; uniqueCode?: string;
longpress?: boolean;
} }
Page({ Page({
@ -179,6 +180,7 @@ Page({
lastMsgId: res[0].msgId, lastMsgId: res[0].msgId,
isLoad: false, isLoad: false,
}); });
this.formatRecall();
this.filterCreateTime(); this.filterCreateTime();
if (!lastMsgId) { if (!lastMsgId) {
@ -290,6 +292,44 @@ Page({
}, },
}); });
}, },
handleRecall(e) {
const { index } = e.currentTarget.dataset;
const { messageList } = this.data;
const message = messageList[index];
this.delMessage(message);
this.senRecallMessage(index);
},
delMessage(message) {
const { id } = this.data;
wx.ajax({
method: "POST",
url: "?r=takeda/chat/del-message",
data: {
roomId: id,
msgId: message.msgId,
uniqueCode: message.uniqueCode,
},
});
},
senRecallMessage(index) {
const { userInfo, messageList } = this.data;
const message: IMessageItem = {
msgId: "",
contentType: "6",
content: "你撤回了一条消息",
fromDoctorId: userInfo.DoctorId,
createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
isSelf: 1,
isRead: 2,
doctorImg: userInfo.Img,
doctorName: userInfo.Name,
hospitalName: userInfo.HospitalName,
};
messageList.splice(index, 1, message);
this.setData({
messageList,
});
},
WebIMLogin() { WebIMLogin() {
const { chatDoctor } = this.data; const { chatDoctor } = this.data;
wx.WebIM.conn wx.WebIM.conn
@ -317,9 +357,10 @@ Page({
wx.WebIM.conn wx.WebIM.conn
.send(msg) .send(msg)
.then((res) => { .then((res) => {
this.sendMessage({ ...message, uniqueCode: res.serverMsgId }); const uniqueCodeMessage = { ...message, uniqueCode: res.serverMsgId };
this.sendMessage(uniqueCodeMessage);
this.setData({ this.setData({
messageList: [...this.data.messageList, this.formatMessage(message)], messageList: [...this.data.messageList, this.formatMessage(uniqueCodeMessage)],
}); });
this.handleView(); this.handleView();
}) })
@ -348,6 +389,7 @@ Page({
}), }),
], ],
}); });
this.formatRecall();
this.handleReadAll(); this.handleReadAll();
this.handleView(); this.handleView();
} }
@ -397,6 +439,20 @@ Page({
messageList, messageList,
}); });
}, },
formatRecall() {
const { messageList } = this.data;
messageList.forEach((item) => {
// if (item.contentType === "6" && item.isSelf === 2) {
// item.content = `"${item.doctorName}"撤回了一条消息`;
// }
if (item.contentType === "6" && item.isSelf === 1) {
item.content = `你撤回了一条消息`;
}
});
this.setData({
messageList,
});
},
handleFooter() { handleFooter() {
this.setData({ this.setData({
fold: !this.data.fold, fold: !this.data.fold,
@ -436,12 +492,12 @@ Page({
messageList, messageList,
}); });
}); });
this.innerAudioContext.onStop(()=>{ this.innerAudioContext.onStop(() => {
messageItem.isPlay = false; messageItem.isPlay = false;
this.setData({ this.setData({
messageList, messageList,
}); });
}) });
this.setData({ this.setData({
messageList, messageList,
}); });
@ -498,4 +554,24 @@ Page({
focus: !this.data.record, focus: !this.data.record,
}); });
}, },
handleLongpress(e) {
const { index } = e.currentTarget.dataset;
const { messageList } = this.data;
if (["1", "2", "3", "4"].includes(messageList[index].contentType)) {
messageList[index].longpress = true;
this.setData({
messageList,
});
}
},
handleNoLongPress() {
const { messageList } = this.data;
messageList.map((item) => {
item.longpress = false;
return item;
});
this.setData({
messageList,
});
},
}); });

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

@ -1,4 +1,4 @@
<view class="page"> <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="photos" bind:tap="handleRoomDetail">
@ -40,11 +40,22 @@
bindscrolltoupper="scrolltoupper" bindscrolltoupper="scrolltoupper"
> >
<van-loading wx:if="{{isLoad && !isFinish}}" /> <van-loading wx:if="{{isLoad && !isFinish}}" />
<view wx:for="{{messageList}}" wx:key="msgId" wx:for-item="message" wx:for-index="mIndex" id="view{{mIndex}}"> <view
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="doctor" wx:elif="{{message.isSelf===2}}"> <view class="doctor" wx:elif="{{message.isSelf===2}}">
<doctorAvatar did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar> <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>
@ -60,7 +71,12 @@
src="{{imageUrl}}/audio-right.gif?t={{Timestamp}}" src="{{imageUrl}}/audio-right.gif?t={{Timestamp}}"
mode="aspectFit" mode="aspectFit"
></image> ></image>
<image wx:else class="icon" src="{{imageUrl}}/audio-right.png?t={{Timestamp}}" mode="aspectFit"></image> <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>
@ -69,7 +85,6 @@
class="p-img" class="p-img"
src="{{message.content.url}}" src="{{message.content.url}}"
mode="aspectFit" mode="aspectFit"
show-menu-by-longpress
bind:tap="handlePreview" bind:tap="handlePreview"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
></image> ></image>
@ -80,16 +95,42 @@
bind:tap="handleVideo" bind:tap="handleVideo"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
> >
<image class="v-img" src="{{message.content.imgUrl}}" mode="aspectFill"></image> <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 class="p-container"> <view
class="p-container"
bind:longpress="handleLongpress"
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 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 class="audio" wx:elif="{{message.contentType==='2'}}" bind:tap="handleAudio" data-index="{{mIndex}}"> <view
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
@ -98,14 +139,18 @@
src="{{imageUrl}}/audio-left.gif?t={{Timestamp}}" src="{{imageUrl}}/audio-left.gif?t={{Timestamp}}"
mode="aspectFit" mode="aspectFit"
></image> ></image>
<image class="icon" wx:else src="{{imageUrl}}/audio-left.png?t={{Timestamp}}" mode="aspectFit"></image> <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
class="p-img" class="p-img"
src="{{message.content.url}}" src="{{message.content.url}}"
mode="aspectFit" mode="aspectFit"
show-menu-by-longpress
bind:tap="handlePreview" bind:tap="handlePreview"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
></image> ></image>
@ -116,11 +161,19 @@
bind:tap="handleVideo" bind:tap="handleVideo"
data-url="{{message.content.url}}" data-url="{{message.content.url}}"
> >
<image class="v-img" src="{{message.content.imgUrl}}" mode="aspectFill"></image> <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 did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar> <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>
@ -157,9 +210,21 @@
bindblur="handleBlur" bindblur="handleBlur"
bindfocus="handleFocus" bindfocus="handleFocus"
/> />
<view class="place" wx:else bind:tap="handleFocus">{{sendMessage}}</view> <view
class="place"
wx:else
bind:tap="handleFocus"
>{{sendMessage}}
</view>
</block> </block>
<customRecord wx:else class="custom-record" bind:file="handleSendAudio" slotIcon doubleConform>按住说话</customRecord> <customRecord
wx:else
class="custom-record"
bind:file="handleSendAudio"
slotIcon
doubleConform
>按住说话
</customRecord>
<image <image
class="icon-add" class="icon-add"
src="{{imageUrl}}icon-circle-add.png?t={{Timestamp}}" src="{{imageUrl}}icon-circle-add.png?t={{Timestamp}}"
@ -172,7 +237,11 @@
<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 class="f-item" accept="video" bind:file="handleSendVideo"> <uploadFile
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>
@ -181,7 +250,12 @@
<video id="video" src="{{videoUrl}}"></video> <video id="video" src="{{videoUrl}}"></video>
</view> </view>
<van-popup show="{{ show1 }}" bind:close="onAgreeClose" closeable round> <van-popup
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">

19
src/module1/pages/chatRoomInfo/index.wxml

@ -1,10 +1,23 @@
<view class="page"> <view class="page">
<view class="container"> <view class="container">
<view class="user" wx:for="{{list}}" wx:key="doctorId"> <view
<doctorAvatar did="{{item.doctorId}}" class="avatar" src="{{item.doctorImg}}" level="{{item.doctorLevel}}"></doctorAvatar> class="user"
wx:for="{{list}}"
wx:key="doctorId"
>
<doctorAvatar
did="{{item.doctorId}}"
class="avatar"
src="{{item.doctorImg}}"
level="{{item.doctorLevel}}"
></doctorAvatar>
<view class="name">{{item.doctorName}}</view> <view class="name">{{item.doctorName}}</view>
</view> </view>
<view wx:if="{{canInvite}}" class="add" bind:tap="handleDoctor"> <view
wx:if="{{canInvite}}"
class="add"
bind:tap="handleDoctor"
>
<van-icon name="plus" /> <van-icon name="plus" />
</view> </view>
</view> </view>

3
src/module1/pages/doctorRankList/index.json

@ -2,6 +2,7 @@
"navigationBarTitleText": "医院活跃排行榜", "navigationBarTitleText": "医院活跃排行榜",
"navigationStyle": "default", "navigationStyle": "default",
"usingComponents": { "usingComponents": {
"pagination": "/components/pagination/index" "pagination": "/components/pagination/index",
"van-icon": "@vant/weapp/icon/index"
} }
} }

3
src/module1/pages/doctorRankList/index.scss

@ -25,6 +25,9 @@ page {
.th3, .th3,
.th4, .th4,
.th5 { .th5 {
display: flex;
align-items: center;
justify-content: center;
width: 96rpx; width: 96rpx;
white-space: nowrap; white-space: nowrap;
} }

14
src/module1/pages/doctorRankList/index.ts

@ -40,6 +40,20 @@ Page({
this.getList(page + 1); this.getList(page + 1);
} }
}, },
handleQuestion(e) {
const index = e.detail;
const tip = {
0: "一级医生",
1: "核心医生",
2: "质控医生",
}[index];
wx.showModal({
content: tip,
confirmColor: "#00B4C5",
cancelColor: "#141515",
showCancel: false,
});
},
}); });
export {}; export {};

41
src/module1/pages/doctorRankList/index.wxml

@ -1,18 +1,43 @@
<view <view class="page" style="background: url({{imageUrl}}doctor-rank-bg.png?r={{Timestamp}}) no-repeat top center/100% 326rpx;">
class="page"
style="background: url({{imageUrl}}doctor-rank-bg.png?r={{Timestamp}}) no-repeat top center/100% 326rpx;"
>
<view class="container"> <view class="container">
<view class="table" wx:if="{{list.length}}"> <view class="table" wx:if="{{list.length}}">
<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> <view class="th3">S1
<view class="th4">S2</view> <van-icon
<view class="th5">S3</view> class="icon"
catch:tap="handleQuestion"
data-index="0"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view class="th4">S2
<van-icon
class="icon"
catch:tap="handleQuestion"
data-index="1"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
<view class="th5">S3
<van-icon
class="icon"
catch:tap="handleQuestion"
data-index="2"
name="question"
color="rgba(224, 224, 224, 1)"
/>
</view>
</view> </view>
<view class="tbody"> <view class="tbody">
<view class="tr" wx:for="{{list}}" wx:key="HospitalId"> <view
class="tr"
wx:for="{{list}}"
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>

7
src/module1/pages/entryCases/index.scss

@ -145,7 +145,7 @@ page {
align-items: center; align-items: center;
.trans { .trans {
font-size: 28rpx; font-size: 28rpx;
color: #01B4C5; color: #01b4c5;
} }
} }
} }
@ -298,10 +298,11 @@ page {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
gap: 32rpx;
background-color: #fff; background-color: #fff;
box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1);
.cancel { .cancel {
width: 332rpx; flex: 1;
height: 84rpx; height: 84rpx;
text-align: center; text-align: center;
line-height: 88rpx; line-height: 88rpx;
@ -314,7 +315,7 @@ page {
opacity: 0.3; opacity: 0.3;
} }
.submit { .submit {
width: 330rpx; flex: 1;
height: 88rpx; height: 88rpx;
text-align: center; text-align: center;
line-height: 88rpx; line-height: 88rpx;

21
src/module1/pages/entryCases/index.ts

@ -24,6 +24,7 @@ Page({
edit: true, edit: true,
DeleteAttachmentIds: [] as any, DeleteAttachmentIds: [] as any,
auth: {} as any,
}, },
onLoad(options) { onLoad(options) {
app.waitLogin().then(async () => { app.waitLogin().then(async () => {
@ -40,6 +41,7 @@ Page({
caseId: options.id, caseId: options.id,
}); });
this.getDetail(); this.getDetail();
this.getAuth();
} }
}); });
}, },
@ -383,7 +385,11 @@ Page({
handleSave() {}, handleSave() {},
handleSubmit() {}, handleSubmit() {},
handleBack() { handleBack() {
const { images, description, audios, files, deptId, labelIds } = this.data; const { images, description, audios, files, deptId, labelIds, auth, caseId } = this.data;
if (caseId && !auth.canDraft) {
wx.navigateBack();
return;
}
if (!images.length && !description && !audios.length && !files.length && !deptId && !labelIds.length) { if (!images.length && !description && !audios.length && !files.length && !deptId && !labelIds.length) {
wx.navigateBack(); wx.navigateBack();
return; return;
@ -411,6 +417,19 @@ Page({
current: url, current: url,
}); });
}, },
getAuth() {
wx.ajax({
method: "GET",
url: "?r=takeda/case/get-case-detail-op-auth",
data: {
caseId: this.data.caseId,
},
}).then((res) => {
this.setData({
auth: res,
});
});
},
}); });
export {}; export {};

97
src/module1/pages/entryCases/index.wxml

@ -1,6 +1,15 @@
<wxs src="/utils/util.wxs" module="tools" /> <wxs src="/utils/util.wxs" module="tools" />
<van-nav-bar title="录入病历" fixed bind:click-left="handleBack" bind:click-right="onClickRight"> <van-nav-bar
<van-icon name="arrow-left" slot="left" size="18px" /> title="录入病历"
fixed
bind:click-left="handleBack"
bind:click-right="onClickRight"
>
<van-icon
name="arrow-left"
slot="left"
size="18px"
/>
</van-nav-bar> </van-nav-bar>
<view class="page" style="padding-top:{{menuButtonInfo.top + 60}}px;"> <view class="page" style="padding-top:{{menuButtonInfo.top + 60}}px;">
<view class="card"> <view class="card">
@ -9,9 +18,23 @@
<text class="limit">({{images.length}}/9)</text> <text class="limit">({{images.length}}/9)</text>
</view> </view>
<view class="image-files"> <view class="image-files">
<view class="photo" wx:for="{{images}}" wx:key="index" bind:tap="handlePreviewImage" data-url="{{item.url}}"> <view
<image class="p-img" src="{{item.url}}" mode="aspectFill"></image> class="photo"
<view class="del" catch:tap="handleDelPhoto" data-index="{{index}}"> wx:for="{{images}}"
wx:key="index"
bind:tap="handlePreviewImage"
data-url="{{item.url}}"
>
<image
class="p-img"
src="{{item.url}}"
mode="aspectFill"
></image>
<view
class="del"
catch:tap="handleDelPhoto"
data-index="{{index}}"
>
<van-icon name="cross" /> <van-icon name="cross" />
</view> </view>
<view class="repeat" wx:if="{{item.repeat}}"> <view class="repeat" wx:if="{{item.repeat}}">
@ -19,7 +42,12 @@
<view class="r-title">重复图片</view> <view class="r-title">重复图片</view>
</view> </view>
</view> </view>
<uploadFile obscure edit="{{edit}}" bind:file="handlePhoto" wx:if="{{images.length<9}}"> <uploadFile
obscure
edit="{{edit}}"
bind:file="handlePhoto"
wx:if="{{images.length<9}}"
>
<view class="upload-file"> <view class="upload-file">
<van-icon class="add" name="plus" /> <van-icon class="add" name="plus" />
</view> </view>
@ -40,8 +68,16 @@
<view class="limit">{{description.length}}/3000</view> <view class="limit">{{description.length}}/3000</view>
</view> </view>
<view class="audio-list"> <view class="audio-list">
<view class="row" wx:for="{{audios}}" wx:key="index"> <view
<customAudioBar class="audio-bar" url="{{item.url}}" time="{{item.duration}}"></customAudioBar> class="row"
wx:for="{{audios}}"
wx:key="index"
>
<customAudioBar
class="audio-bar"
url="{{item.url}}"
time="{{item.duration}}"
></customAudioBar>
<image <image
class="del" class="del"
src="{{imageUrl}}icon-clsoe-green.png?t={{Timestamp}}" src="{{imageUrl}}icon-clsoe-green.png?t={{Timestamp}}"
@ -61,7 +97,11 @@
<view class="card"> <view class="card">
<view class="card-title"> <view class="card-title">
病历相关文件 病历相关文件
<uploadFile class="message-select-wrap" chooseMessage bind:file="handleFile"> <uploadFile
class="message-select-wrap"
chooseMessage
bind:file="handleFile"
>
<view class="message-select">从聊天记录选择文件</view> <view class="message-select">从聊天记录选择文件</view>
</uploadFile> </uploadFile>
</view> </view>
@ -120,13 +160,33 @@
</view> </view>
</view> </view>
<view class="footer"> <view class="footer">
<view class="cancel" bind:tap="handleCache">存为草稿</view> <view
<view wx:if="{{isInvite}}" class="submit" bind:tap="handleInvite">保存并提交</view> class="cancel"
<view wx:else class="submit disabled" bind:tap="handleNoInvite">保存并提交</view> wx:if="{{ !caseId || auth.canDraft }}"
bind:tap="handleCache"
>存为草稿
</view>
<view
wx:if="{{isInvite}}"
class="submit"
bind:tap="handleInvite"
>保存并提交
</view>
<view
wx:else
class="submit disabled"
bind:tap="handleNoInvite"
>保存并提交
</view>
</view> </view>
</view> </view>
<van-popup show="{{ show1 }}" bind:close="onClose" round closeable> <van-popup
show="{{ show1 }}"
bind:close="onClose"
round
closeable
>
<view class="popup1"> <view class="popup1">
<view class="title">确认提交您的反馈信息</view> <view class="title">确认提交您的反馈信息</view>
<view class="btn1" bind:tap="handleSubmit">直接提交我的反馈信息</view> <view class="btn1" bind:tap="handleSubmit">直接提交我的反馈信息</view>
@ -137,12 +197,19 @@
</view> </view>
</van-popup> </van-popup>
<van-popup show="{{ show2 }}" bind:close="onClose" round closeable> <van-popup
show="{{ show2 }}"
bind:close="onClose"
round
closeable
>
<view class="popup2"> <view class="popup2">
<view class="title">您的病历没有进行涂抹</view> <view class="title">您的病历没有进行涂抹</view>
<!-- prettier-ignore --> <!-- prettier-ignore -->
<view class="content"> <view class="content">
请<text class="link">确认</text>上传的病历 已不包含患者的隐私信息
<text class="link">确认</text>
上传的病历 已不包含患者的隐私信息
</view> </view>
<view class="btn">确认继续提交</view> <view class="btn">确认继续提交</view>
<view class="cancel">返回</view> <view class="cancel">返回</view>

2
src/module1/pages/setChatDoctor/index.ts

@ -251,7 +251,6 @@ Page({
}); });
return; return;
} }
const url = create ? "?r=takeda/chat/create-room" : "?r=takeda/chat/invite-doctor"; const url = create ? "?r=takeda/chat/create-room" : "?r=takeda/chat/invite-doctor";
wx.ajax({ wx.ajax({
method: "POST", method: "POST",
@ -262,6 +261,7 @@ Page({
inviteDoctorId: DoctorId, inviteDoctorId: DoctorId,
doctorId: DoctorId, doctorId: DoctorId,
}, },
loading: true,
}).then((res) => { }).then((res) => {
if (create) { if (create) {
wx.reLaunch({ wx.reLaunch({

4
src/module1/pages/setInfo/index.ts

@ -132,11 +132,11 @@ Page({
content: "您没有邀约医生,可能会影响您的审核", content: "您没有邀约医生,可能会影响您的审核",
confirmColor: "#00B4C5", confirmColor: "#00B4C5",
cancelColor: "#141515", cancelColor: "#141515",
confirmText: "继续提交", confirmText: "绑定医生",
cancelText: "取消", cancelText: "取消",
success: (res) => { success: (res) => {
if (res.confirm) { if (res.confirm) {
this.handleSubmit(); this.handleBindDoctor();
} }
}, },
}); });

3
src/pages/cases/index.scss

@ -167,6 +167,7 @@ page {
color: rgba(0, 180, 197, 1); color: rgba(0, 180, 197, 1);
.wx-radio-input { .wx-radio-input {
transform: scale(0.7); transform: scale(0.7);
border-color: #00b4c5 !important;
} }
} }
} }
@ -224,7 +225,7 @@ page {
color: rgba(153, 153, 153, 1); color: rgba(153, 153, 153, 1);
} }
&.status4 { &.status4 {
color: #54E2B4; color: #54e2b4;
} }
} }
} }

19
src/pages/cases/index.ts

@ -61,6 +61,7 @@ Page({
isHighQuality: "", isHighQuality: "",
isOpen: "", isOpen: "",
needDeal: "", needDeal: "",
newFeedback: "",
orderType: "feedbackTime", orderType: "feedbackTime",
myCaseCount: 0, myCaseCount: 0,
@ -82,8 +83,23 @@ Page({
}); });
return; return;
} }
this.handleNav({ currentTarget: { dataset: { nav: app.globalData.caseNav, noSearch: true } } }); this.handleNav({
currentTarget: {
dataset: {
nav: app.globalData.caseNav,
noSearch: true,
},
},
});
this.setData({
caseStatus: app.globalData.caseStatus ? app.globalData.caseStatus.split(",") : "",
caseStatusName: app.globalData.caseStatusName,
newFeedback: app.globalData.newFeedback,
});
app.globalData.caseNav = "0"; app.globalData.caseNav = "0";
app.globalData.caseStatus = "";
app.globalData.caseStatusName = "全部";
app.globalData.newFeedback = "";
this.setData({ this.setData({
needDeal: app.globalData.needDeal, needDeal: app.globalData.needDeal,
}); });
@ -170,6 +186,7 @@ Page({
isHighQuality: this.data.isHighQuality, isHighQuality: this.data.isHighQuality,
isOpen: this.data.isOpen, isOpen: this.data.isOpen,
needDeal: this.data.needDeal, needDeal: this.data.needDeal,
newFeedback: this.data.newFeedback,
orderType: this.data.orderType, orderType: this.data.orderType,
}, },
}).then((res) => { }).then((res) => {

13
src/pages/cases/index.wxml

@ -173,13 +173,22 @@
<view class="sort-line"> <view class="sort-line">
<view class="wrap"> <view class="wrap">
<view class="btn {{orderType==='feedbackTime' && 'active'}}" bind:tap="handleOrder" data-value="feedbackTime"> <view class="btn {{orderType==='feedbackTime' && 'active'}}" bind:tap="handleOrder" data-value="feedbackTime">
更新时间排序 更新时间
</view> </view>
<view class="btn {{orderType==='submitTime' && 'active'}}" bind:tap="handleOrder" data-value="submitTime"> <view class="btn {{orderType==='submitTime' && 'active'}}" bind:tap="handleOrder" data-value="submitTime">
提交时间排序 提交时间
</view> </view>
</view> </view>
<radio <radio
class="feedback"
color="rgba(0, 180, 197, 1)"
checked="{{newFeedback==='1'}}"
bind:tap="handleRadio"
data-key="newFeedback"
>
病历更新
</radio>
<radio
wx:if="{{userInfo.DoctorLevel>1 && (nav==='0' || nav==='3')}}" wx:if="{{userInfo.DoctorLevel>1 && (nav==='0' || nav==='3')}}"
class="feedback" class="feedback"
color="rgba(0, 180, 197, 1)" color="rgba(0, 180, 197, 1)"

3
src/pages/chatRoomList/index.ts

@ -157,6 +157,9 @@ Page({
if (item.createTime) { if (item.createTime) {
item.createTime = dayjs(item.createTime).format("YYYY-MM-DD HH:mm"); item.createTime = dayjs(item.createTime).format("YYYY-MM-DD HH:mm");
} }
if (item.msgContentType === "6" && item.isSelfMsg === 1) {
item.content = `你撤回了一条消息`;
}
}); });
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({

3
src/pages/home/index.ts

@ -115,6 +115,9 @@ Page({
5: "累计病历统计:按月统计所在科室累计提交的病历数,并以堆叠图显示一级医生、核心医生提交病历数", 5: "累计病历统计:按月统计所在科室累计提交的病历数,并以堆叠图显示一级医生、核心医生提交病历数",
6: "科室新增病历统计:按月统计所在科室新提交的病历 数,并以堆叠图显示一级医生、核心医生提交的病历数", 6: "科室新增病历统计:按月统计所在科室新提交的病历 数,并以堆叠图显示一级医生、核心医生提交的病历数",
7: "医院活跃排行榜:按医院入驻医生数进行活跃排序,入驻医生数越多则活跃度越高,排序则越靠前", 7: "医院活跃排行榜:按医院入驻医生数进行活跃排序,入驻医生数越多则活跃度越高,排序则越靠前",
8: "一级医生",
9: "核心医生",
10: "质控医生",
}[index]; }[index];
wx.showModal({ wx.showModal({
content: tip, content: tip,

3
typings/index.d.ts vendored

@ -11,6 +11,9 @@ interface IAppOption {
needDeal: "" | "1"; needDeal: "" | "1";
caseNav: "0" | "1" | "2" | "3"; caseNav: "0" | "1" | "2" | "3";
caseStatus: string;
caseStatusName: string;
newFeedback: string;
}; };
userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback; userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback;
waitLogin: (waitLoginState?: boolean) => Promise<any>; waitLogin: (waitLoginState?: boolean) => Promise<any>;

Loading…
Cancel
Save