Browse Source

1.6开发&bug处理

dev
kola-web 4 months ago
parent
commit
061bc352f1
  1. 4
      src/app.ts
  2. 7
      src/components/doctorAvatar/index.ts
  3. 4
      src/components/doctorAvatar/index.wxml
  4. 3
      src/components/popupDoctorDetail/index.ts
  5. 2
      src/components/popupDoctorDetail/index.wxml
  6. 12
      src/echart/components/doctorLevel3/index.ts
  7. 28
      src/echart/components/doctorLevel3/index.wxml
  8. 28
      src/echart/components/doctorLevel4/index.wxml
  9. 44
      src/echart/components/homeLevel1/index.scss
  10. 26
      src/echart/components/homeLevel1/index.ts
  11. 20
      src/echart/components/homeLevel1/index.wxml
  12. 103
      src/echart/components/homeLevel2/index.scss
  13. 56
      src/echart/components/homeLevel2/index.ts
  14. 34
      src/echart/components/homeLevel2/index.wxml
  15. 29
      src/echart/components/homeLevel3/index.scss
  16. 58
      src/echart/components/homeLevel3/index.ts
  17. 18
      src/echart/components/homeLevel3/index.wxml
  18. 29
      src/echart/components/homeLevel4/index.scss
  19. 57
      src/echart/components/homeLevel4/index.ts
  20. 18
      src/echart/components/homeLevel4/index.wxml
  21. BIN
      src/images/guide1-4.png
  22. BIN
      src/images/guide3-1.png
  23. BIN
      src/images/guide3-3.png
  24. BIN
      src/images/guide4-1.png
  25. 30
      src/module1/pages/applicationRecords/index.scss
  26. 29
      src/module1/pages/applicationRecords/index.ts
  27. 30
      src/module1/pages/applicationRecords/index.wxml
  28. 5
      src/module1/pages/auditDoctorDetail/index.wxml
  29. 3
      src/module1/pages/auditDoctorList/index.scss
  30. 1
      src/module1/pages/auditDoctorList/index.ts
  31. 5
      src/module1/pages/auditDoctorList/index.wxml
  32. 24
      src/module1/pages/setApplicationDoctor/index.ts
  33. 6
      src/module1/pages/setApplicationDoctor/index.wxml
  34. 3
      src/pages/home/index.ts

4
src/app.ts

@ -57,7 +57,9 @@ App<IAppOption>({
if (options.query.scene) { if (options.query.scene) {
this.globalData.scene = parseScene(options.query.scene); this.globalData.scene = parseScene(options.query.scene);
} }
if (this.globalData.loginState) {
const reSourceScene: number[] = [1007, 1008, 1043];
if (this.globalData.loginState && reSourceScene.includes(options.scene)) {
this.globalData.loginState = ""; this.globalData.loginState = "";
this.initLogin(); this.initLogin();
} }

7
src/components/doctorAvatar/index.ts

@ -47,12 +47,13 @@ Component({
}); });
}, },
async handleDetail() { async handleDetail() {
const did = this.data.did; const { did, popupDoctorDetail, showDetail } = this.data;
if (!did) return; if (!did || showDetail) return;
const { DoctorTitleType } = await this.getDoctorDict();
this.setData({ this.setData({
showDetail: true, showDetail: true,
}); });
if (Object.keys(popupDoctorDetail).length) return;
const { DoctorTitleType } = await this.getDoctorDict();
wx.ajax({ wx.ajax({
method: "GET", method: "GET",
url: "?r=takeda/doctor/detail", url: "?r=takeda/doctor/detail",

4
src/components/doctorAvatar/index.wxml

@ -21,8 +21,8 @@
</view> </view>
<popupDoctorDetail <popupDoctorDetail
wx:if="{{did}}" wx:if="{{did && showDetail}}"
show="{{showDetail}}" show="{{showDetail}}"
params="{{popupDoctorDetail}}" params="{{popupDoctorDetail}}"
bind:close="handlePopupClose" catch:close="handlePopupClose"
></popupDoctorDetail> ></popupDoctorDetail>

3
src/components/popupDoctorDetail/index.ts

@ -28,5 +28,8 @@ Component({
onClose() { onClose() {
this.triggerEvent("close"); this.triggerEvent("close");
}, },
handleTap() {
return false;
},
}, },
}); });

2
src/components/popupDoctorDetail/index.wxml

@ -1,4 +1,4 @@
<van-popup show="{{ show }}" catch:close="onClose" custom-style="background:transparent"> <van-popup show="{{ show }}" catch:close="onClose" custom-style="background:transparent" catch:tap="handleTap">
<view class="doctor-detail"> <view class="doctor-detail">
<van-icon class="close" name="cross" catch:tap="onClose" /> <van-icon class="close" name="cross" catch:tap="onClose" />
<view class="title">医生详情</view> <view class="title">医生详情</view>

12
src/echart/components/doctorLevel3/index.ts

@ -28,7 +28,6 @@ Component({
this.getTake(); this.getTake();
this.getCase(); this.getCase();
this.getManageDoctor(); this.getManageDoctor();
this.getTips();
}, },
}, },
/** /**
@ -78,17 +77,6 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.triggerEvent("question", index); this.triggerEvent("question", index);
}, },
getTips() {
wx.ajax({
method: "GET",
url: "?r=takeda/doctor/get-tips",
data: {},
}).then((res) => {
this.setData({
tips: res,
});
});
},
}, },
}); });

28
src/echart/components/doctorLevel3/index.wxml

@ -42,39 +42,19 @@
<view class="b-container"> <view class="b-container">
<view class="item"> <view class="item">
<view class="name">待处理病历</view> <view class="name">待处理病历</view>
<view class="num"> <view class="num">{{take.dealCaseCount*1 || '--'}}</view>
<view class="num-center">
{{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipDealCase===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">病历更新</view> <view class="name">病历更新</view>
<view class="num"> <view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view>
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipCaseUpdate===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num"> <view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view>
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipChatRoom===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">医生待审核</view> <view class="name">医生待审核</view>
<view class="num"> <view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view>
<view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipDoctorWaitAudit===1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>

28
src/echart/components/doctorLevel4/index.wxml

@ -37,39 +37,19 @@
<view class="b-container"> <view class="b-container">
<view class="item"> <view class="item">
<view class="name">待处理病历</view> <view class="name">待处理病历</view>
<view class="num"> <view class="num">{{take.dealCaseCount*1 || '--'}}</view>
<view class="num-center">
{{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipDealCase===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">病历更新</view> <view class="name">病历更新</view>
<view class="num"> <view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view>
<view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipCaseUpdate===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">学习窗消息</view> <view class="name">学习窗消息</view>
<view class="num"> <view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view>
<view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipChatRoom===1}}"></view>
</view>
</view>
</view> </view>
<view class="item"> <view class="item">
<view class="name">医生待审核</view> <view class="name">医生待审核</view>
<view class="num"> <view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view>
<view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{tips.tipDoctorWaitAudit===1}}"></view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>

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

@ -396,6 +396,43 @@
.none { .none {
padding-bottom: 54rpx; padding-bottom: 54rpx;
text-align: center; text-align: center;
.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;
}
.co-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%;
}
}
}
}
.none-img { .none-img {
width: 240rpx; width: 240rpx;
height: 200rpx; height: 200rpx;
@ -424,17 +461,16 @@
overflow: hidden; overflow: hidden;
.img { .img {
position: absolute; position: absolute;
top: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; min-height: 100vh;
opacity: 0; opacity: 0;
display: block; display: block;
} }
.close { .close {
position: absolute; position: absolute;
left: 50%; left: 80%;
transform: translateX(-50%);
z-index: 1; z-index: 1;
width: 64rpx; width: 64rpx;
height: 64rpx; height: 64rpx;

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

@ -37,11 +37,13 @@ Component({
lifetimes: { lifetimes: {
attached() { attached() {
app.waitLogin(true).then(() => {
this.getTake(); this.getTake();
this.getCase(); this.getCase();
this.getCooperate(); this.getCooperate();
this.getTips(); this.getTips();
this.getGuide(); this.getGuide();
});
}, },
}, },
/** /**
@ -156,6 +158,18 @@ Component({
}); });
}); });
}, },
getGuide() {
wx.ajax({
method: "GET",
url: "?r=takeda/account/get-guide",
data: {},
}).then((res) => {
this.setData({
guideShow: res.tipStatus === 2,
});
});
},
touchmovePreview() { touchmovePreview() {
return false; return false;
}, },
@ -170,18 +184,6 @@ Component({
guide: Number(this.data.guide) + 1, guide: Number(this.data.guide) + 1,
}); });
}, },
getGuide() {
wx.ajax({
method: "GET",
url: "?r=takeda/account/get-guide",
data: {},
}).then((res) => {
this.setData({
guideShow: res.tipStatus === 2,
// guideShow: true,
});
});
},
handleGuideClose() { handleGuideClose() {
this.setData({ this.setData({
guideShow: false, guideShow: false,

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

@ -130,7 +130,7 @@
class="doctor" class="doctor"
wx:for="{{cooperateList}}" wx:for="{{cooperateList}}"
wx:key="DoctorId" wx:key="DoctorId"
bind:tap="handleCooperateDetail" catch:tap="handleCooperateDetail"
data-index="{{index}}" data-index="{{index}}"
> >
<doctorAvatar <doctorAvatar
@ -172,6 +172,16 @@
<view class="name">我合作的医生</view> <view class="name">我合作的医生</view>
</view> </view>
<view class="none"> <view class="none">
<view class="cooperate-options">
<view class="co-item" bind:tap="handleApplication">
<image class="icon" src="{{imageUrl}}cooperate-icon1.png?t={{Timestamp}}"></image>
<view class="co-content {{tips.tipDoctorAudit===1 && 'dot'}}">申请记录</view>
</view>
<view class="co-item" bind:tap="handleApplicationDoctor">
<image class="icon" src="{{imageUrl}}cooperate-icon2.png?t={{Timestamp}}"></image>
<view class="co-content">绑定医生</view>
</view>
</view>
<image class="none-img" src="{{imageUrl}}empty-4.png?t={{Timestamp}}"></image> <image class="none-img" src="{{imageUrl}}empty-4.png?t={{Timestamp}}"></image>
<view class="content"> <view class="content">
还没有合作医生哦 还没有合作医生哦
@ -183,16 +193,10 @@
<view wx:if="{{guideShow}}" class="preview" bind:touchmove="touchmovePreview" bind:tap="handleTapPreview"> <view wx:if="{{guideShow}}" class="preview" bind:touchmove="touchmovePreview" bind:tap="handleTapPreview">
<image <image
class="close"
style="top:{{menuButtonInfo.top+60}}px"
src="{{imageUrl}}guide-close.png?t={{Timestamp}}"
catch:tap="handleGuideClose"
></image>
<image
class="img {{index==guide && 'show'}}" class="img {{index==guide && 'show'}}"
src="{{imageUrl}}guide{{item}}.png?t={{Timestamp}}" src="{{imageUrl}}guide{{item}}.png?t={{Timestamp}}"
wx:for="{{guideList}}" wx:for="{{guideList}}"
wx:key="*this" wx:key="*this"
mode="aspectFill" mode="widthFix"
></image> ></image>
</view> </view>

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

@ -339,6 +339,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 {
position: relative; position: relative;
margin-bottom: 20rpx; margin-bottom: 20rpx;
@ -473,6 +510,43 @@
.none { .none {
padding-bottom: 54rpx; padding-bottom: 54rpx;
text-align: center; text-align: center;
.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;
}
.co-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%;
}
}
}
}
.none-img { .none-img {
width: 240rpx; width: 240rpx;
height: 200rpx; height: 200rpx;
@ -494,3 +568,32 @@
} }
} }
} }
.preview {
position: fixed;
width: 100vw;
height: 100vh;
z-index: 1000000000;
top: 0;
left: 0;
overflow: hidden;
.img {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
min-height: 100vh;
opacity: 0;
display: block;
}
.close {
position: absolute;
left: 80%;
z-index: 1;
width: 64rpx;
height: 64rpx;
}
.show {
opacity: 1;
}
}

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

@ -26,15 +26,22 @@ Component({
inviteList: [], inviteList: [],
newCaseShow: false, newCaseShow: false,
tips: {}, tips: {},
guide: 0,
guideShow: false,
guideList: ["1-1", "1-2", "1-3"],
}, },
lifetimes: { lifetimes: {
attached() { attached() {
app.waitLogin(true).then(() => {
this.getTake(); this.getTake();
this.getCase(); this.getCase();
this.getCooperate(); this.getCooperate();
this.getInvite(); this.getInvite();
this.getTips(); this.getTips();
this.getGuide();
});
}, },
}, },
/** /**
@ -184,6 +191,18 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.selectComponent(`#invite${index}`).handleDetail(); this.selectComponent(`#invite${index}`).handleDetail();
}, },
handleApplication() {
wx.navigateTo({
url: "/module1/pages/applicationRecords/index",
});
},
handleApplicationDoctor() {
wx.navigateTo({
url: "/module1/pages/setApplicationDoctor/index",
});
},
getTips() { getTips() {
wx.ajax({ wx.ajax({
method: "GET", method: "GET",
@ -195,6 +214,43 @@ Component({
}); });
}); });
}, },
getGuide() {
wx.ajax({
method: "GET",
url: "?r=takeda/account/get-guide",
data: {},
}).then((res) => {
this.setData({
guideShow: res.tipStatus === 2,
// guideShow: true,
});
});
},
touchmovePreview() {
return false;
},
handleTapPreview() {
if (this.data.guide === this.data.guideList.length - 1) {
this.setData({
guideShow: false,
});
this.handleGuideClose();
}
this.setData({
guide: Number(this.data.guide) + 1,
});
},
handleGuideClose() {
this.setData({
guideShow: false,
});
wx.ajax({
method: "POST",
url: "?r=takeda/account/close-guide",
data: {},
});
},
}, },
}); });

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

@ -162,11 +162,21 @@
</view> </view>
</view> </view>
<view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;"> <view id="fold1" class="doctor-list {{fold1 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight1}}px;">
<view class="cooperate-options">
<view class="co-item" bind:tap="handleApplication">
<image class="icon" src="{{imageUrl}}cooperate-icon1.png?t={{Timestamp}}"></image>
<view class="content {{tips.tipDoctorAudit===1 && '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}}"
wx:key="DoctorId" wx:key="DoctorId"
bind:tap="handleCooperateDetail" catch:tap="handleCooperateDetail"
data-index="{{index}}" data-index="{{index}}"
> >
<doctorAvatar <doctorAvatar
@ -208,6 +218,16 @@
<view class="name">我合作的医生</view> <view class="name">我合作的医生</view>
</view> </view>
<view class="none"> <view class="none">
<view class="cooperate-options">
<view class="co-item" bind:tap="handleApplication">
<image class="icon" src="{{imageUrl}}cooperate-icon1.png?t={{Timestamp}}"></image>
<view class="co-content {{tips.tipDoctorAudit===1 && 'dot'}}">申请记录</view>
</view>
<view class="co-item" bind:tap="handleApplicationDoctor">
<image class="icon" src="{{imageUrl}}cooperate-icon2.png?t={{Timestamp}}"></image>
<view class="co-content">绑定医生</view>
</view>
</view>
<image class="none-img" src="{{imageUrl}}empty-4.png?t={{Timestamp}}"></image> <image class="none-img" src="{{imageUrl}}empty-4.png?t={{Timestamp}}"></image>
<view class="content"> <view class="content">
还没有合作医生哦 还没有合作医生哦
@ -234,7 +254,7 @@
class="doctor" class="doctor"
wx:for="{{inviteList}}" wx:for="{{inviteList}}"
wx:key="DoctorId" wx:key="DoctorId"
bind:tap="handleInviteDetail" catch:tap="handleInviteDetail"
data-index="{{index}}" data-index="{{index}}"
> >
<doctorAvatar <doctorAvatar
@ -282,3 +302,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}}guide{{item}}.png?t={{Timestamp}}"
wx:for="{{guideList}}"
wx:key="*this"
mode="widthFix"
></image>
</view>

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

@ -262,3 +262,32 @@
} }
} }
} }
.preview {
position: fixed;
width: 100vw;
height: 100vh;
z-index: 1000000000;
top: 0;
left: 0;
overflow: hidden;
.img {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
min-height: 100vh;
opacity: 0;
display: block;
}
.close {
position: absolute;
left: 80%;
z-index: 1;
width: 64rpx;
height: 64rpx;
}
.show {
opacity: 1;
}
}

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

@ -19,13 +19,23 @@ Component({
take: {}, take: {},
case: {} as any, case: {} as any,
doctorCount: {}, doctorCount: {},
tips: {},
guide: 0,
guideShow: false,
guideList: ["3-1", "1-2", "3-3"],
}, },
lifetimes: { lifetimes: {
attached() { attached() {
app.waitLogin(true).then(() => {
this.getTake(); this.getTake();
this.getCase(); this.getCase();
this.getManageDoctor(); this.getManageDoctor();
this.getTips();
this.getGuide();
});
}, },
}, },
/** /**
@ -121,6 +131,54 @@ Component({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
}, },
getTips() {
wx.ajax({
method: "GET",
url: "?r=takeda/doctor/get-tips",
data: {},
}).then((res) => {
this.setData({
tips: res,
});
});
},
getGuide() {
wx.ajax({
method: "GET",
url: "?r=takeda/account/get-guide",
data: {},
}).then((res) => {
this.setData({
guideShow: res.tipStatus === 2,
});
});
},
touchmovePreview() {
return false;
},
handleTapPreview() {
if (this.data.guide === this.data.guideList.length - 1) {
this.setData({
guideShow: false,
});
this.handleGuideClose();
}
this.setData({
guide: Number(this.data.guide) + 1,
});
},
handleGuideClose() {
this.setData({
guideShow: false,
});
wx.ajax({
method: "POST",
url: "?r=takeda/account/close-guide",
data: {},
});
},
}, },
}); });

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

@ -46,7 +46,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.dealCaseCount*1 || '--'}} {{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{take.dealCaseCount*1}}"></view> <view class="dot" wx:if="{{tips.tipDealCase===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -55,7 +55,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}} {{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view> <view class="dot" wx:if="{{tips.tipCaseUpdate===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -64,7 +64,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}} {{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view> <view class="dot" wx:if="{{tips.tipChatRoom===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -73,7 +73,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}} {{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{take.toAuditDoctorCount*1}}"></view> <view class="dot" wx:if="{{tips.tipDoctorWaitAudit===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -170,3 +170,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}}guide{{item}}.png?t={{Timestamp}}"
wx:for="{{guideList}}"
wx:key="*this"
mode="widthFix"
></image>
</view>

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

@ -507,3 +507,32 @@
} }
} }
} }
.preview {
position: fixed;
width: 100vw;
height: 100vh;
z-index: 1000000000;
top: 0;
left: 0;
overflow: hidden;
.img {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
min-height: 100vh;
opacity: 0;
display: block;
}
.close {
position: absolute;
left: 80%;
z-index: 1;
width: 64rpx;
height: 64rpx;
}
.show {
opacity: 1;
}
}

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

@ -40,10 +40,17 @@ Component({
rankList: [], rankList: [],
newCaseShow: false, newCaseShow: false,
tips: {},
guide: 0,
guideShow: false,
guideList: ["4-1", "1-2", "3-3"],
}, },
lifetimes: { lifetimes: {
attached() { attached() {
app.waitLogin(true).then(() => {
const { DepartmentId, DepartmentName } = this.data.userInfo.Department[0]; const { DepartmentId, DepartmentName } = this.data.userInfo.Department[0];
this.setData({ this.setData({
Department: this.data.userInfo.Department, Department: this.data.userInfo.Department,
@ -54,6 +61,8 @@ Component({
this.getCase(); this.getCase();
this.getManageDoctor(); this.getManageDoctor();
this.getRankList(); this.getRankList();
this.getTips();
this.getGuide();
this.waitEchart(async () => { this.waitEchart(async () => {
this.getChat1(); this.getChat1();
@ -63,6 +72,7 @@ Component({
// const chart2: any = await this.initChart2(); // const chart2: any = await this.initChart2();
// const chart3: any = await this.initChart3(); // const chart3: any = await this.initChart3();
}); });
});
}, },
}, },
/** /**
@ -720,6 +730,53 @@ Component({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
}, },
getTips() {
wx.ajax({
method: "GET",
url: "?r=takeda/doctor/get-tips",
data: {},
}).then((res) => {
this.setData({
tips: res,
});
});
},
getGuide() {
wx.ajax({
method: "GET",
url: "?r=takeda/account/get-guide",
data: {},
}).then((res) => {
this.setData({
guideShow: res.tipStatus === 2,
});
});
},
touchmovePreview() {
return false;
},
handleTapPreview() {
if (this.data.guide === this.data.guideList.length - 1) {
this.setData({
guideShow: false,
});
this.handleGuideClose();
}
this.setData({
guide: Number(this.data.guide) + 1,
});
},
handleGuideClose() {
this.setData({
guideShow: false,
});
wx.ajax({
method: "POST",
url: "?r=takeda/account/close-guide",
data: {},
});
},
}, },
}); });

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

@ -41,7 +41,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.dealCaseCount*1 || '--'}} {{take.dealCaseCount*1 || '--'}}
<view class="dot" wx:if="{{take.dealCaseCount*1}}"></view> <view class="dot" wx:if="{{tips.tipDealCase===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -50,7 +50,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.notReadFeedBackCount*1 || '--'}} {{take.notReadFeedBackCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadFeedBackCount*1}}"></view> <view class="dot" wx:if="{{tips.tipCaseUpdate===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -59,7 +59,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.notReadChatRoomCount*1 || '--'}} {{take.notReadChatRoomCount*1 || '--'}}
<view class="dot" wx:if="{{take.notReadChatRoomCount*1}}"></view> <view class="dot" wx:if="{{tips.tipChatRoom===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -68,7 +68,7 @@
<view class="num"> <view class="num">
<view class="num-center"> <view class="num-center">
{{take.toAuditDoctorCount*1 || '--'}} {{take.toAuditDoctorCount*1 || '--'}}
<view class="dot" wx:if="{{take.toAuditDoctorCount*1}}"></view> <view class="dot" wx:if="{{tips.tipDoctorWaitAudit===1}}"></view>
</view> </view>
</view> </view>
</view> </view>
@ -288,3 +288,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}}guide{{item}}.png?t={{Timestamp}}"
wx:for="{{guideList}}"
wx:key="*this"
mode="widthFix"
></image>
</view>

BIN
src/images/guide1-4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

BIN
src/images/guide3-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
src/images/guide3-3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

BIN
src/images/guide4-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

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

@ -5,37 +5,13 @@ page {
.header { .header {
padding: 32rpx; padding: 32rpx;
background-color: #fff; background-color: #fff;
border-radius: 0 0 0 32rpx; border-radius: 0 0 0 64rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: flex-end;
gap: 48rpx; 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 { .status {
flex: 1; width: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 16rpx; gap: 16rpx;

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

@ -5,6 +5,22 @@ Page({
feedbackTimeBegin: "", feedbackTimeBegin: "",
feedbackTimeEnd: "", feedbackTimeEnd: "",
status: [
{
id: "0",
value: "待审核",
},
{
id: "1",
value: "审核通过",
},
{
id: "2",
value: "审核驳回",
},
],
auditStatus: "",
list: [], list: [],
pagination: { pagination: {
page: 1, page: 1,
@ -17,12 +33,25 @@ Page({
this.getList(); this.getList();
}); });
}, },
handleStatus(e) {
this.setData({
auditStatus: e.detail.value,
});
this.getList();
},
onClose() {
this.setData({
auditStatus: "",
});
this.getList();
},
getList(newPage = 1) { getList(newPage = 1) {
wx.ajax({ wx.ajax({
method: "GET", method: "GET",
url: "?r=takeda/doctor/apply-list", url: "?r=takeda/doctor/apply-list",
data: { data: {
page: newPage, page: newPage,
auditStatus: this.data.auditStatus || -1,
}, },
}).then((res) => { }).then((res) => {
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; const list = res.page === 1 ? res.list : [...this.data.list, ...res.list];

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

@ -1,36 +1,10 @@
<view class="page"> <view class="page">
<view class="header"> <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="status">
<view class="label">状态</view> <view class="label">状态</view>
<picker class="picker" mode="region" bindchange="onFinish" bindcancel="onClose" bind:tap="handleArea"> <picker class="picker" range="{{status}}" range-key="value" bind:change="handleStatus" bindcancel="onClose">
<view class="picker-content"> <view class="picker-content">
<view class="content">{{cityName + countyName || '全部'}}</view> <view class="content">{{status[auditStatus].value || '全部'}}</view>
<van-icon name="arrow-down" /> <van-icon name="arrow-down" />
</view> </view>
</picker> </picker>

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

@ -19,7 +19,7 @@
</view> </view>
<view class="card"> <view class="card">
<view class="user"> <view class="user">
<image class="avatar" src="{{detail.Img}}"></image> <image class="avatar" mode="aspectFill" src="{{detail.Img}}"></image>
</view> </view>
<view class="row"> <view class="row">
<view class="label">姓名</view> <view class="label">姓名</view>
@ -34,6 +34,7 @@
<view class="photo-wrap"> <view class="photo-wrap">
<image <image
class="photo" class="photo"
wx:if="{{detail.RegisterImg}}"
src="{{detail.RegisterImg}}" src="{{detail.RegisterImg}}"
mode="aspectFill" mode="aspectFill"
catch:tap="handlePreview" catch:tap="handlePreview"
@ -43,6 +44,7 @@
</image> </image>
<image <image
class="photo" class="photo"
wx:if="{{detail.QualificationImg}}"
src="{{detail.QualificationImg}}" src="{{detail.QualificationImg}}"
mode="aspectFill" mode="aspectFill"
catch:tap="handlePreview" catch:tap="handlePreview"
@ -52,6 +54,7 @@
</image> </image>
<image <image
class="photo" class="photo"
wx:if="{{detail.PositionImg}}"
src="{{detail.PositionImg}}" src="{{detail.PositionImg}}"
mode="aspectFill" mode="aspectFill"
catch:tap="handlePreview" catch:tap="handlePreview"

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

@ -35,12 +35,14 @@ page {
line-height: 44rpx; line-height: 44rpx;
.left { .left {
.name { .name {
display: inline;
margin-right: 16rpx; margin-right: 16rpx;
font-size: 32rpx; font-size: 32rpx;
color: rgba(20, 21, 21, 1); color: rgba(20, 21, 21, 1);
font-weight: bold; font-weight: bold;
} }
.label { .label {
display: inline-block;
font-size: 28rpx; font-size: 28rpx;
color: rgba(20, 21, 21, 1); color: rgba(20, 21, 21, 1);
} }
@ -56,6 +58,7 @@ page {
font-size: 28rpx; font-size: 28rpx;
color: rgba(133, 133, 133, 1); color: rgba(133, 133, 133, 1);
.content { .content {
display: inline;
margin-right: 16rpx; margin-right: 16rpx;
} }
.tag { .tag {

1
src/module1/pages/auditDoctorList/index.ts

@ -12,6 +12,7 @@ Page({
}, },
onShow() { onShow() {
app.waitLogin().then(() => { app.waitLogin().then(() => {
this.getDoctorDict()
this.getList(); this.getList();
}); });
}, },

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

@ -4,7 +4,7 @@
<view class="list"> <view class="list">
<view class="list-item" wx:for="{{list}}" wx:key="AuditId"> <view class="list-item" wx:for="{{list}}" wx:key="AuditId">
<view class="user"> <view class="user">
<image class="avatar" src="{{item.Img}}"></image> <image class="avatar" mode="aspectFill" src="{{item.Img}}"></image>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
<view class="left"> <view class="left">
@ -22,6 +22,7 @@
</view> </view>
<view class="photo-wrap"> <view class="photo-wrap">
<image <image
wx:if="{{item.RegisterImg}}"
class="photo" class="photo"
src="{{item.RegisterImg}}" src="{{item.RegisterImg}}"
mode="aspectFill" mode="aspectFill"
@ -29,6 +30,7 @@
data-url="{{item.RegisterImg}}" data-url="{{item.RegisterImg}}"
></image> ></image>
<image <image
wx:if="{{item.QualificationImg}}"
class="photo" class="photo"
src="{{item.QualificationImg}}" src="{{item.QualificationImg}}"
mode="aspectFill" mode="aspectFill"
@ -36,6 +38,7 @@
data-url="{{item.QualificationImg}}" data-url="{{item.QualificationImg}}"
></image> ></image>
<image <image
wx:if="{{item.PositionImg}}"
class="photo" class="photo"
src="{{item.PositionImg}}" src="{{item.PositionImg}}"
mode="aspectFill" mode="aspectFill"

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

@ -40,6 +40,8 @@ Page({
DoctorId: "", DoctorId: "",
show: false, show: false,
doctorRejectCount: 0,
}, },
onLoad(options) { onLoad(options) {
if (options.hid) { if (options.hid) {
@ -228,10 +230,11 @@ Page({
const { list } = this.data; const { list } = this.data;
this.setData({ this.setData({
DoctorId: (list as any)[index].doctorId, DoctorId: (list as any)[index].doctorId,
doctorRejectCount: (list as any)[index].doctorRejectCount,
}); });
}, },
handleSubmit() { handleSubmit({ exempt = false }) {
const { DoctorId } = this.data; const { DoctorId, doctorRejectCount } = this.data;
if (!DoctorId) { if (!DoctorId) {
wx.showToast({ wx.showToast({
title: "请选择医生", title: "请选择医生",
@ -239,7 +242,12 @@ Page({
}); });
return; return;
} }
if (doctorRejectCount > 0 && !exempt) {
this.setData({
show: true,
});
return;
}
wx.ajax({ wx.ajax({
method: "POST", method: "POST",
url: "?r=takeda/doctor/apply-binding", url: "?r=takeda/doctor/apply-binding",
@ -252,6 +260,16 @@ Page({
}); });
}); });
}, },
handleOk() {
this.handleCancel();
this.handleSubmit({ exempt: true });
},
handleCancel() {
this.setData({
show: false,
});
},
handleBack() { handleBack() {
wx.navigateBack(); wx.navigateBack();
}, },

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

@ -102,10 +102,10 @@
<image class="badge" src="{{imageUrl}}icon-reject.png?t={{Timestamp}}" mode="aspectFit"></image> <image class="badge" src="{{imageUrl}}icon-reject.png?t={{Timestamp}}" mode="aspectFit"></image>
<view class="p-container"> <view class="p-container">
<view class="title">该医生驳回过您的申请</view> <view class="title">该医生驳回过您的申请</view>
<view class="content">您选择的医生有驳回记录, 驳回3次后您将无法再次申请绑定此医生</view> <view class="content">您选择的医生有驳回记录,驳回3次后您将无法再次申请绑定此医生</view>
<view class="footer"> <view class="footer">
<view class="cancel" bind:tap="handleOk">取消申请</view> <view class="cancel" bind:tap="handleCancel">取消申请</view>
<view class="ok" bind:tap="handleCancel">继续申请</view> <view class="ok" bind:tap="handleOk">继续申请</view>
</view> </view>
</view> </view>
</view> </view>

3
src/pages/home/index.ts

@ -30,8 +30,9 @@ Page({
this.getDoctorDict(); this.getDoctorDict();
this.getHostipalDict(); this.getHostipalDict();
app.getUserInfo(this, (userInfo) => { app.getUserInfo(this, (userInfo) => {
const level = userInfo.IsSuper === 1 ? 4 : userInfo.DoctorLevel;
this.setData({ this.setData({
level: userInfo.IsSuper === 1 ? 4 : userInfo.DoctorLevel, level,
}); });
this.getTabBar().setData({ this.getTabBar().setData({
userInfo, userInfo,

Loading…
Cancel
Save