Browse Source

bug处理

main
kola-web 3 months ago
parent
commit
ad0340f3aa
  1. 8
      dist.ps1
  2. 1
      src/app.json
  3. 4
      src/components/doctorAvatar/index.json
  4. 66
      src/components/doctorAvatar/index.ts
  5. 9
      src/components/doctorAvatar/index.wxml
  6. 1
      src/components/popupDoctorDetail/index.json
  7. 16
      src/components/popupDoctorDetail/index.scss
  8. 26
      src/components/popupDoctorDetail/index.wxml
  9. 4
      src/echart/components/homeLevel1/index.wxml
  10. 41
      src/echart/components/homeLevel2/index.scss
  11. 16
      src/echart/components/homeLevel2/index.ts
  12. 27
      src/echart/components/homeLevel2/index.wxml
  13. 2
      src/echart/components/homeLevel3/index.wxml
  14. 41
      src/echart/components/homeLevel4/index.scss
  15. 23
      src/echart/components/homeLevel4/index.ts
  16. 14
      src/echart/components/homeLevel4/index.wxml
  17. BIN
      src/images/icon-keyboard.png
  18. 1
      src/module1/pages/casesDetail/index.scss
  19. 61
      src/module1/pages/casesDetail/index.ts
  20. 41
      src/module1/pages/casesDetail/index.wxml
  21. 3
      src/module1/pages/chatRoom/index.json
  22. 20
      src/module1/pages/chatRoom/index.scss
  23. 8
      src/module1/pages/chatRoom/index.ts
  24. 28
      src/module1/pages/chatRoom/index.wxml
  25. 2
      src/module1/pages/chatRoomInfo/index.wxml
  26. 28
      src/module1/pages/login/index.ts
  27. 6
      src/module1/pages/login/index.wxml
  28. 2
      src/module1/pages/loginProtool/index.ts
  29. 8
      src/module1/pages/org3/index.wxml
  30. 8
      src/module1/pages/org4/index.wxml
  31. 7
      src/module1/pages/setCaseDoctor/index.wxml
  32. 2
      src/module1/pages/setChatDoctor/index.wxml
  33. 7
      src/module1/pages/setDoctor/index.wxml
  34. 27
      src/module1/pages/setInfo/index.scss
  35. 32
      src/module1/pages/setInfo/index.ts
  36. 5
      src/module1/pages/setInfo/index.wxml
  37. 10
      src/module1/pages/setInfoDoctor/index.json
  38. 236
      src/module1/pages/setInfoDoctor/index.scss
  39. 77
      src/module1/pages/setInfoDoctor/index.ts
  40. 72
      src/module1/pages/setInfoDoctor/index.wxml
  41. 6
      src/module1/pages/setInfoResult/index.scss
  42. 21
      src/module1/pages/setInfoResult/index.ts
  43. 3
      src/module1/pages/setInfoResult/index.wxml
  44. 1
      src/module1/pages/userInfo/index.scss
  45. 7
      src/pages/cases/index.ts
  46. 1
      src/pages/cases/index.wxml
  47. 7
      src/pages/my/index.wxml

8
dist.ps1

@ -0,0 +1,8 @@
# Change to the src/images directory, or exit if the directory doesn't exist
Set-Location -Path ./src/images/ -ErrorAction Stop
# Add all files to svn, including ignored files and forced additions
svn add . --no-ignore --force
# Commit the changes with a message
svn ci -m "版本更新"

1
src/app.json

@ -13,6 +13,7 @@
"pages/loginProtool/index", "pages/loginProtool/index",
"pages/invite/index", "pages/invite/index",
"pages/setInfo/index", "pages/setInfo/index",
"pages/setInfoDoctor/index",
"pages/setInfoResult/index", "pages/setInfoResult/index",
"pages/sHostipal/index", "pages/sHostipal/index",
"pages/cHostipal/index", "pages/cHostipal/index",

4
src/components/doctorAvatar/index.json

@ -1,4 +1,6 @@
{ {
"component": true, "component": true,
"usingComponents": {} "usingComponents": {
"popupDoctorDetail": "/components/popupDoctorDetail/index"
}
} }

66
src/components/doctorAvatar/index.ts

@ -1,4 +1,4 @@
const _app = getApp<IAppOption>() const _app = getApp<IAppOption>();
// pages/story/a.ts // pages/story/a.ts
Component({ Component({
@ -9,21 +9,77 @@ Component({
properties: { properties: {
src: { src: {
type: String, type: String,
value: '', optionalTypes: [String, Number],
value: "",
}, },
level: { level: {
type: Number, type: Number,
optionalTypes: [String, Number],
value: 1, value: 1,
}, },
did: {
type: String,
optionalTypes: [String, Number],
value: "",
},
}, },
/** /**
* *
*/ */
data: {}, data: {
showDetail: false,
popupDoctorDetail: {},
DoctorTitleType: {},
hospitalClassification: {},
hospitalLevel: {},
},
/** /**
* *
*/ */
methods: {}, methods: {
}) async getDoctorDict(): Promise<any> {
return wx.ajax({
method: "GET",
url: "?r=takeda/reg/doctor-dict",
data: {},
});
},
async handleDetail() {
const did = this.data.did;
if (!did) return;
const { DoctorTitleType } = await this.getDoctorDict();
wx.ajax({
method: "GET",
url: "?r=takeda/doctor/detail",
data: {
DoctorId: did,
},
}).then((res) => {
this.setData({
showDetail: true,
popupDoctorDetail: {
DoctorLevel: res.DoctorLevel,
DoctorImg: res.Img,
DoctorName: res.Name,
DoctorTitleName: res.TitleType === "99" ? res.OtherTitle : DoctorTitleType[res.TitleType],
HospitalName: res.HospitalName,
HospitalClassificationName: res.HospitalClassificationName,
HospitalLevelName: res.HospitalLevelName,
CityName: res.CityName,
CountyName: res.CountyName,
Introduce: res.Introduce,
department: res.Department,
specialty: res.Specialty,
},
});
});
},
handlePopupClose() {
this.setData({
showDetail: false,
});
},
},
});

9
src/components/doctorAvatar/index.wxml

@ -1,4 +1,4 @@
<view class="avatar"> <view class="avatar" catch:tap="handleDetail">
<image class="a-img" mode="aspectFill" src="{{src}}"></image> <image class="a-img" mode="aspectFill" src="{{src}}"></image>
<image <image
class="mask" class="mask"
@ -19,3 +19,10 @@
src="{{imageUrl}}doctor-level4.png?t={{Timestamp}}" src="{{imageUrl}}doctor-level4.png?t={{Timestamp}}"
></image> ></image>
</view> </view>
<popupDoctorDetail
wx:if="{{did}}"
show="{{showDetail}}"
params="{{popupDoctorDetail}}"
bind:close="handlePopupClose"
></popupDoctorDetail>

1
src/components/popupDoctorDetail/index.json

@ -2,7 +2,6 @@
"component": true, "component": true,
"usingComponents": { "usingComponents": {
"van-popup": "@vant/weapp/popup/index", "van-popup": "@vant/weapp/popup/index",
"doctorAvatar": "/components/doctorAvatar/index",
"van-icon": "@vant/weapp/icon/index" "van-icon": "@vant/weapp/icon/index"
} }
} }

16
src/components/popupDoctorDetail/index.scss

@ -24,6 +24,19 @@
flex-shrink: 0; flex-shrink: 0;
width: 112rpx; width: 112rpx;
height: 112rpx; height: 112rpx;
position: relative;
.a-img {
width: 100%;
height: 100%;
border-radius: 50%;
}
.mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
} }
.wrap { .wrap {
.name { .name {
@ -105,6 +118,9 @@
} }
.brief-introduction { .brief-introduction {
flex: 1; flex: 1;
max-height: 20vh;
overflow-y: auto;
overflow-x: hidden;
font-size: 28rpx; font-size: 28rpx;
color: rgba(20, 21, 21, 1); color: rgba(20, 21, 21, 1);
line-height: 44rpx; line-height: 44rpx;

26
src/components/popupDoctorDetail/index.wxml

@ -3,7 +3,27 @@
<van-icon class="close" name="cross" bind:tap="onClose" /> <van-icon class="close" name="cross" bind:tap="onClose" />
<view class="title">医生详情</view> <view class="title">医生详情</view>
<view class="user"> <view class="user">
<doctorAvatar class="avatar" src="{{params.DoctorImg}}" level="{{params.DoctorLevel}}"></doctorAvatar> <view class="avatar">
<image class="a-img" mode="aspectFill" src="{{params.DoctorImg}}"></image>
<image
class="mask"
mode="aspectFill"
wx:if="{{params.DoctorLevel==3}}"
src="{{imageUrl}}doctor-level3.png?t={{Timestamp}}"
></image>
<image
class="mask"
mode="aspectFill"
wx:elif="{{params.DoctorLevel==2}}"
src="{{imageUrl}}doctor-level2.png?t={{Timestamp}}"
></image>
<image
class="mask"
mode="aspectFill"
wx:if="{{params.DoctorLevel==4}}"
src="{{imageUrl}}doctor-level4.png?t={{Timestamp}}"
></image>
</view>
<view class="wrap"> <view class="wrap">
<view class="name">{{params.DoctorName}}</view> <view class="name">{{params.DoctorName}}</view>
<view class="w-footer"> <view class="w-footer">
@ -20,7 +40,9 @@
<view class="hostipal"> <view class="hostipal">
<view class="h-name">{{params.HospitalName}}</view> <view class="h-name">{{params.HospitalName}}</view>
<view class="h-tag">{{params.HospitalClassificationName}}{{params.HospitalLevelName}}</view> <view class="h-tag">{{params.HospitalClassificationName}}{{params.HospitalLevelName}}</view>
<view class="h-site" wx:if="{{params.CityName}}">{{params.CityName}}{{params.CountyName?'/':''}}{{params.CountyName}}</view> <view class="h-site" wx:if="{{params.CityName}}">
{{params.CityName}}{{params.CountyName?'/':''}}{{params.CountyName}}
</view>
</view> </view>
</view> </view>
<view class="row"> <view class="row">

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

@ -1,6 +1,6 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar 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>
@ -102,7 +102,7 @@
</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="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId"> <view class="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId">
<doctorAvatar class="avatar" src="{{item.DoctorImg}}" level="{{item.DoctorLevel}}"></doctorAvatar> <doctorAvatar 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>

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

@ -185,6 +185,7 @@
.s-container { .s-container {
display: flex; display: flex;
.item { .item {
position: relative;
flex: 1; flex: 1;
text-align: center; text-align: center;
.name { .name {
@ -198,6 +199,46 @@
color: rgba(20, 21, 21, 1); color: rgba(20, 21, 21, 1);
line-height: 56rpx; line-height: 56rpx;
} }
.item-toast {
position: absolute;
left: -80rpx;
top: -20rpx;
transform: translate(0, -100%);
padding: 28rpx 0;
border-radius: 16rpx;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
display: flex;
align-items: center;
white-space: nowrap;
font-size: 28rpx;
color: #fff;
.i-row {
padding: 0 56rpx;
}
.i-line {
width: 2rpx;
height: 32rpx;
background-color: rgba(255, 255, 255, 0.29);
}
.i-clsoe {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 32rpx;
height: 32rpx;
}
&::after {
position: absolute;
left: 134rpx;
bottom: -10rpx;
content: "";
width: 0;
height: 0;
border-style: solid;
border-width: 18rpx 18rpx 0 18rpx;
border-color: #4abfc0 transparent transparent transparent;
}
}
} }
.line { .line {
flex-shrink: 0; flex-shrink: 0;

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

@ -24,6 +24,7 @@ Component({
case: {} as any, case: {} as any,
cooperateList: [], cooperateList: [],
inviteList: [], inviteList: [],
newCaseShow: false,
}, },
lifetimes: { lifetimes: {
@ -147,14 +148,15 @@ Component({
const { index } = e.currentTarget.dataset; const { index } = e.currentTarget.dataset;
this.triggerEvent("question", index); this.triggerEvent("question", index);
}, },
handleNewCase() { handleNewCase() {
const { case: cases } = this.data; this.setData({
wx.showModal({ newCaseShow: true,
confirmColor: "#00B4C5", });
cancelColor: "#141515", },
showCancel: false, handleNewCaseClose() {
confirmText: "关闭", this.setData({
content: `本人提交:${cases.newOneCaseCount}\r\n他人提交:${cases.newTwoCaseCount}`, newCaseShow: false,
}); });
}, },
}, },

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

@ -1,6 +1,11 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar class="avatar" src="{{userInfo.Img}}" level="{{userInfo.DoctorLevel}}"></doctorAvatar> <doctorAvatar
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> <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">
@ -81,6 +86,12 @@
<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>
<view class="num">{{case.newCaseCount}}</view> <view class="num">{{case.newCaseCount}}</view>
<view class="item-toast" wx:if="{{newCaseShow}}">
<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-line"></view>
<view class="i-row">他人提交:{{case.newTwoCaseCount}}</view>
</view>
</view> </view>
<view class="line"></view> <view class="line"></view>
<view class="item"> <view class="item">
@ -128,7 +139,12 @@
</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="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId"> <view class="doctor" wx:for="{{cooperateList}}" wx:key="DoctorId">
<doctorAvatar class="avatar" src="{{item.DoctorImg}}" level="{{item.DoctorLevel}}"></doctorAvatar> <doctorAvatar
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>
@ -184,7 +200,12 @@
</view> </view>
<view id="fold2" class="doctor-list {{fold2 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight2}}px;"> <view id="fold2" class="doctor-list {{fold2 && 'doctor-list-fold'}}" style="--fold-height: {{foldHeight2}}px;">
<view class="doctor" wx:for="{{inviteList}}" wx:key="DoctorId"> <view class="doctor" wx:for="{{inviteList}}" wx:key="DoctorId">
<doctorAvatar class="avatar" src="{{item.DoctorImg}}" level="{{item.DoctorLevel}}"></doctorAvatar> <doctorAvatar
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>

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

@ -1,6 +1,6 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar class="avatar" src="{{userInfo.Img}}" level="{{userInfo.DoctorLevel}}"></doctorAvatar> <doctorAvatar 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> <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">

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

@ -200,6 +200,7 @@
.s-container { .s-container {
display: flex; display: flex;
.item { .item {
position: relative;
flex: 1; flex: 1;
text-align: center; text-align: center;
.name { .name {
@ -213,6 +214,46 @@
color: rgba(20, 21, 21, 1); color: rgba(20, 21, 21, 1);
line-height: 56rpx; line-height: 56rpx;
} }
.item-toast {
position: absolute;
left: -80rpx;
top: -20rpx;
transform: translate(0, -100%);
padding: 28rpx 0;
border-radius: 16rpx;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
display: flex;
align-items: center;
white-space: nowrap;
font-size: 28rpx;
color: #fff;
.i-row {
padding: 0 56rpx;
}
.i-line {
width: 2rpx;
height: 32rpx;
background-color: rgba(255, 255, 255, 0.29);
}
.i-clsoe {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 32rpx;
height: 32rpx;
}
&::after {
position: absolute;
left: 134rpx;
bottom: -10rpx;
content: "";
width: 0;
height: 0;
border-style: solid;
border-width: 18rpx 18rpx 0 18rpx;
border-color: #4abfc0 transparent transparent transparent;
}
}
} }
.line { .line {
flex-shrink: 0; flex-shrink: 0;

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

@ -38,6 +38,8 @@ Component({
empty3: false, empty3: false,
rankList: [], rankList: [],
newCaseShow: false,
}, },
lifetimes: { lifetimes: {
@ -180,6 +182,7 @@ Component({
{ {
name: "质控医生", name: "质控医生",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -197,6 +200,7 @@ Component({
{ {
name: "核心医生", name: "核心医生",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -214,6 +218,7 @@ Component({
{ {
name: "一级医生", name: "一级医生",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -357,6 +362,7 @@ Component({
{ {
name: "核心医生提交", name: "核心医生提交",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -374,6 +380,7 @@ Component({
{ {
name: "一级医生提交", name: "一级医生提交",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -517,6 +524,7 @@ Component({
{ {
name: "核心医生提交", name: "核心医生提交",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -534,6 +542,7 @@ Component({
{ {
name: "一级医生提交", name: "一级医生提交",
type: "bar", type: "bar",
barMaxWidth: 40,
stack: "a", stack: "a",
label: { label: {
show: true, show: true,
@ -681,13 +690,13 @@ Component({
this.triggerEvent("question", index); this.triggerEvent("question", index);
}, },
handleNewCase() { handleNewCase() {
const { case: cases } = this.data; this.setData({
wx.showModal({ newCaseShow: true,
confirmColor: "#00B4C5", });
cancelColor: "#141515", },
showCancel: false, handleNewCaseClose() {
confirmText: "关闭", this.setData({
content: `本科室:${cases.newOneCaseCount}\r\n无科室:${cases.newTwoCaseCount}`, newCaseShow: false,
}); });
}, },
}, },

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

@ -1,6 +1,6 @@
<view class="page"> <view class="page">
<view class="user"> <view class="user">
<doctorAvatar class="avatar" src="{{userInfo.Img}}" level="4"></doctorAvatar> <doctorAvatar 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> <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">
@ -78,8 +78,18 @@
<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>
<view class="num">{{case.newCaseCount}}</view> <view class="num">{{case.newCaseCount}}</view>
<view class="item-toast" wx:if="{{newCaseShow}}">
<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-line"></view>
<view class="i-row">无科室:{{case.newTwoCaseCount}}</view>
</view> </view>
<view class="item" > </view>
<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)" />

BIN
src/images/icon-keyboard.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/module1/pages/casesDetail/index.scss

@ -967,6 +967,7 @@ page {
.select-wrap { .select-wrap {
margin-top: 32rpx; margin-top: 32rpx;
display: flex; display: flex;
flex-wrap: wrap;
gap: 16rpx; gap: 16rpx;
.select { .select {
padding: 4rpx 24rpx; padding: 4rpx 24rpx;

61
src/module1/pages/casesDetail/index.ts

@ -9,6 +9,8 @@ Page({
show5: false, // 取消归档 show5: false, // 取消归档
show6: false, // 创建学习窗 show6: false, // 创建学习窗
show7: false, // 更改标签 show7: false, // 更改标签
show8: false, // 公开
show9: false, // 取消公开
showRejectReason: false, showRejectReason: false,
more: false, more: false,
@ -78,6 +80,18 @@ Page({
} }
return true; return true;
}, },
beforeClose8: (e: any) => {
if (e === "confirm") {
this.handleOpenSubmit();
}
return true;
},
beforeClose9: (e: any) => {
if (e === "confirm") {
this.handleUnOpenSubmit();
}
return true;
},
}); });
}, },
onShow() { onShow() {
@ -174,9 +188,11 @@ Page({
}, },
handleImagePreview(e) { handleImagePreview(e) {
const { url } = e.currentTarget.dataset; const { url, parent } = e.currentTarget.dataset;
const urls = parent.map((item) => item.url);
wx.previewImage({ wx.previewImage({
urls: [url], urls,
current: url,
}); });
}, },
@ -393,14 +409,20 @@ Page({
}, },
handleOpen() { handleOpen() {
const { detail, id } = this.data; const { detail } = this.data;
const isOpen = detail.isOpen === "1"; const isOpen = detail.isOpen === "1";
wx.showModal({ if (isOpen) {
confirmColor: "#00B4C5", this.setData({
cancelColor: "#141515", show9: true,
title: `确认${isOpen ? "取消公开" : "公开"}?`, });
success: (res) => { } else {
if (res.confirm) { this.setData({
show8: true,
});
}
},
handleOpenSubmit() {
const { id } = this.data;
wx.ajax({ wx.ajax({
method: "POST", method: "POST",
url: "?r=takeda/case/set-open", url: "?r=takeda/case/set-open",
@ -410,8 +432,17 @@ Page({
}).then(() => { }).then(() => {
this.handleResoure(); this.handleResoure();
}); });
}
}, },
handleUnOpenSubmit() {
const { id } = this.data;
wx.ajax({
method: "POST",
url: "?r=takeda/case/set-open",
data: {
caseId: id,
},
}).then(() => {
this.handleResoure();
}); });
}, },
@ -516,9 +547,19 @@ Page({
remark, remark,
}, },
}).then(() => { }).then(() => {
wx.showToast({
icon: "none",
title: "驳回成功",
duration: 2000,
success() {
const time = setTimeout(() => {
clearInterval(time);
wx.reLaunch({ wx.reLaunch({
url: "/pages/cases/index", url: "/pages/cases/index",
}); });
}, 2000);
},
});
}); });
}, },

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

@ -24,6 +24,7 @@
class="avatar" class="avatar"
src="{{detail.createDoctorInfo.doctorImg}}" src="{{detail.createDoctorInfo.doctorImg}}"
level="{{detail.createDoctorInfo.doctorLevel}}" level="{{detail.createDoctorInfo.doctorLevel}}"
did="{{detail.createDoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
@ -61,6 +62,7 @@
mode="aspectFill" mode="aspectFill"
bind:tap="handleImagePreview" bind:tap="handleImagePreview"
data-url="{{item.url}}" data-url="{{item.url}}"
data-parent="{{detail.caseImages}}"
wx:for="{{detail.caseImages}}" wx:for="{{detail.caseImages}}"
wx:key="url" wx:key="url"
></image> ></image>
@ -129,6 +131,7 @@
class="avatar" class="avatar"
src="{{item.createDoctorInfo.doctorImg}}" src="{{item.createDoctorInfo.doctorImg}}"
level="{{item.createDoctorInfo.doctorLevel}}" level="{{item.createDoctorInfo.doctorLevel}}"
did="{{item.createDoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
@ -177,6 +180,7 @@
mode="aspectFill" mode="aspectFill"
bind:tap="handleImagePreview" bind:tap="handleImagePreview"
data-url="{{cItem.url}}" data-url="{{cItem.url}}"
data-parent="{{item.feedbackImages}}"
wx:for="{{item.feedbackImages}}" wx:for="{{item.feedbackImages}}"
wx:for-item="cItem" wx:for-item="cItem"
wx:key="url" wx:key="url"
@ -214,6 +218,7 @@
class="avatar" class="avatar"
src="{{dealDoctorInfo.doctorImg}}" src="{{dealDoctorInfo.doctorImg}}"
level="{{dealDoctorInfo.doctorLevel}}" level="{{dealDoctorInfo.doctorLevel}}"
did="{{dealDoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<view class="wrap"> <view class="wrap">
<view class="w-header"> <view class="w-header">
@ -362,6 +367,7 @@
use-slot use-slot
title="" title=""
show="{{ show1 }}" show="{{ show1 }}"
width="678rpx"
show-cancel-button show-cancel-button
confirm-button-color="rgba(0, 180, 197, 1)" confirm-button-color="rgba(0, 180, 197, 1)"
beforeClose="{{beforeClose1}}" beforeClose="{{beforeClose1}}"
@ -507,3 +513,38 @@
<view class="submit" bind:tap="handleLableSubmit">提交</view> <view class="submit" bind:tap="handleLableSubmit">提交</view>
</view> </view>
</van-dialog> </van-dialog>
<van-dialog
use-slot
title=""
show="{{ show8 }}"
show-cancel-button
confirm-button-color="rgba(0, 180, 197, 1)"
custom-style="background:transparent"
beforeClose="{{beforeClose8}}"
>
<view class="dialog2">
<image class="badge" src="{{imageUrl}}case-detail-dialog1.png?t={{Timestamp}}"></image>
<view class="container">
<view class="title">确认公开病历吗?</view>
<view class="content">您的病历配置为公开后,科室内医生均可查看</view>
</view>
</view>
</van-dialog>
<van-dialog
use-slot
title=""
show="{{ show9 }}"
show-cancel-button
confirm-button-color="rgba(0, 180, 197, 1)"
custom-style="background:transparent"
beforeClose="{{beforeClose9}}"
>
<view class="dialog4">
<image class="badge" src="{{imageUrl}}case-detail-dialog3.png?t={{Timestamp}}"></image>
<view class="container">
<view class="title">确认取消公开病历吗?</view>
<view class="content"></view>
</view>
</view>
</van-dialog>

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

@ -5,6 +5,7 @@
"van-icon": "@vant/weapp/icon/index", "van-icon": "@vant/weapp/icon/index",
"van-popup": "@vant/weapp/popup/index", "van-popup": "@vant/weapp/popup/index",
"customRecord": "/components/customRecord/index", "customRecord": "/components/customRecord/index",
"uploadFile": "/components/uploadFile/index" "uploadFile": "/components/uploadFile/index",
"doctorAvatar":"/components/doctorAvatar/index"
} }
} }

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

@ -121,6 +121,8 @@ page {
.avatar { .avatar {
padding-right: 16rpx; padding-right: 16rpx;
flex-shrink: 0; flex-shrink: 0;
width: 84rpx;
height: 84rpx;
.a-img { .a-img {
width: 84rpx; width: 84rpx;
height: 84rpx; height: 84rpx;
@ -216,6 +218,8 @@ page {
.avatar { .avatar {
padding-left: 16rpx; padding-left: 16rpx;
flex-shrink: 0; flex-shrink: 0;
width: 84rpx;
height: 84rpx;
.a-img { .a-img {
width: 84rpx; width: 84rpx;
height: 84rpx; height: 84rpx;
@ -306,10 +310,6 @@ page {
gap: 12rpx; gap: 12rpx;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.custom-record{
width: 48rpx;
height: 48rpx;
}
.icon { .icon {
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;
@ -333,10 +333,22 @@ page {
border-radius: 212rpx 212rpx 212rpx 212rpx; border-radius: 212rpx 212rpx 212rpx 212rpx;
font-size: 28rpx; font-size: 28rpx;
color: #000; color: #000;
line-height: 40rpx;
} }
.place-input { .place-input {
color: rgba(205, 205, 205, 1); color: rgba(205, 205, 205, 1);
} }
.custom-record {
padding: 16rpx 32rpx;
flex: 1;
background: #f6f6f6;
text-align: center;
border-radius: 212rpx 212rpx 212rpx 212rpx;
font-size: 28rpx;
line-height: 40rpx;
color: #141515;
}
.icon-add { .icon-add {
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;

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

@ -49,6 +49,8 @@ Page({
videoUrl: "", videoUrl: "",
protocol: `<p><span style="color: rgb(38, 38, 38); font-size: 14px;">罕心守护平台向用户提供了“学习窗”功能,基于此服务,我们在此特别声明:</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">罕心守护平台非常重视您的个人信息保护及平台信息的隐私性,您同意在学习窗功能使用时遵守以下规则:</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;"> </span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">1.严禁在学习窗内讨论或分享任何患者的个人身份信息,包括但不限于姓名、性别等。群内发送的任何素材内容,必须去除所有可能识别患者身份的敏感信息;</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">2.不以截图、录音或以任何形式将内容传播;</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">3.讨论内容仅限于专业交流,不得用于任何商业目的; </span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">4.保持讨论的专业性和尊重性,避免使用侮辱性或攻击性语言。</span></p><p><br></p>`, protocol: `<p><span style="color: rgb(38, 38, 38); font-size: 14px;">罕心守护平台向用户提供了“学习窗”功能,基于此服务,我们在此特别声明:</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">罕心守护平台非常重视您的个人信息保护及平台信息的隐私性,您同意在学习窗功能使用时遵守以下规则:</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;"> </span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">1.严禁在学习窗内讨论或分享任何患者的个人身份信息,包括但不限于姓名、性别等。群内发送的任何素材内容,必须去除所有可能识别患者身份的敏感信息;</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">2.不以截图、录音或以任何形式将内容传播;</span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">3.讨论内容仅限于专业交流,不得用于任何商业目的; </span></p><p><span style="color: rgb(38, 38, 38); font-size: 14px;">4.保持讨论的专业性和尊重性,避免使用侮辱性或攻击性语言。</span></p><p><br></p>`,
record: true,
}, },
innerAudioContext: null as WechatMiniprogram.InnerAudioContext | null, innerAudioContext: null as WechatMiniprogram.InnerAudioContext | null,
videoContext: null as WechatMiniprogram.VideoContext | null, videoContext: null as WechatMiniprogram.VideoContext | null,
@ -484,4 +486,10 @@ Page({
focus: false, focus: false,
}); });
}, },
handleToggleRecord() {
this.setData({
record: !this.data.record,
focus: !this.data.record,
});
},
}); });

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

@ -44,9 +44,7 @@
<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="doctor" wx:elif="{{message.isSelf===2}}"> <view class="doctor" wx:elif="{{message.isSelf===2}}">
<view class="avatar"> <doctorAvatar did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar>
<image class="a-img" mode="aspectFill" src="{{message.doctorImg}}"></image>
</view>
<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>
@ -64,6 +62,7 @@
></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> </view>
<view class="photo" wx:elif="{{message.contentType==='3'}}"> <view class="photo" wx:elif="{{message.contentType==='3'}}">
<image <image
@ -91,6 +90,7 @@
<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>
{{message.content.duration}}'' {{message.content.duration}}''
<image <image
class="icon" class="icon"
@ -120,9 +120,7 @@
<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 class="avatar"> <doctorAvatar did="{{message.fromDoctorId}}" class="avatar" src="{{message.doctorImg}}"></doctorAvatar>
<image class="a-img" mode="aspectFill" src="{{message.doctorImg}}"></image>
</view>
</view> </view>
</view> </view>
<view id="place" class="place"></view> <view id="place" class="place"></view>
@ -130,9 +128,19 @@
</view> </view>
<view class="page-footer" wx:if="{{case.caseStatus!=='4'}}"> <view class="page-footer" wx:if="{{case.caseStatus!=='4'}}">
<view class="header"> <view class="header">
<customRecord class="custom-record" bind:file="handleSendAudio" slotIcon> <image
<image class="icon" src="{{imageUrl}}icon-voice.png?t={{Timestamp}}"></image> wx:if="{{record}}"
</customRecord> class="icon"
src="{{imageUrl}}icon-voice.png?t={{Timestamp}}"
bind:tap="handleToggleRecord"
></image>
<image
wx:else
class="icon"
src="{{imageUrl}}icon-keyboard.png?t={{Timestamp}}"
bind:tap="handleToggleRecord"
></image>
<block wx:if="{{record}}">
<input <input
wx:if="{{focus}}" wx:if="{{focus}}"
class="input" class="input"
@ -150,6 +158,8 @@
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>
<customRecord wx:else class="custom-record" bind:file="handleSendAudio" slotIcon>按住说话</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}}"

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

@ -1,7 +1,7 @@
<view class="page"> <view class="page">
<view class="container"> <view class="container">
<view class="user" wx:for="{{list}}" wx:key="doctorId"> <view class="user" wx:for="{{list}}" wx:key="doctorId">
<doctorAvatar class="avatar" src="{{item.doctorImg}}" level="{{item.doctorLevel}}"></doctorAvatar> <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">

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

@ -8,13 +8,8 @@ Page({
code: "", code: "",
protool: false, protool: false,
codeText: "发送验证码", codeText: "发送验证码",
isProtocol: false,
},
onLoad() {
if(!this.data.isProtocol){
this.handleNavProtool()
}
}, },
onLoad() {},
getCode() { getCode() {
if (timer) return; if (timer) return;
const mobile = this.data.mobile; const mobile = this.data.mobile;
@ -63,10 +58,7 @@ Page({
handleSubmit() { handleSubmit() {
const { mobile, code, protool } = this.data; const { mobile, code, protool } = this.data;
if (!protool) { if (!protool) {
wx.showToast({ this.handleNavProtool();
title: "请先勾选协议",
icon: "none",
});
return; return;
} }
if (!mobile) { if (!mobile) {
@ -98,10 +90,6 @@ Page({
const { protool } = this.data; const { protool } = this.data;
const { iv, encryptedData } = e.detail; const { iv, encryptedData } = e.detail;
if (!protool) { if (!protool) {
wx.showToast({
title: "请先勾选协议",
icon: "none",
});
return; return;
} }
if (iv && encryptedData) { if (iv && encryptedData) {
@ -127,11 +115,21 @@ Page({
}); });
}, },
handleProtool() { handleProtool() {
if (this.data.protool) {
this.setData({ this.setData({
protool: !this.data.protool, protool: false,
});
} else {
this.setData({
protool: false,
}); });
wx.navigateTo({ url: "/module1/pages/loginProtool/index" });
}
}, },
handleNavProtool() { handleNavProtool() {
if (this.data.protool) {
return;
}
wx.navigateTo({ url: "/module1/pages/loginProtool/index" }); wx.navigateTo({ url: "/module1/pages/loginProtool/index" });
}, },
}); });

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

@ -32,7 +32,11 @@
或者 或者
</van-divider> </van-divider>
</view> </view>
<button class="tel-btn" open-type="getPhoneNumber" bindgetphonenumber="handleWxSubmit"> <button wx:if="{{protool}}" class="tel-btn" open-type="getPhoneNumber" bindgetphonenumber="handleWxSubmit">
<image class="icon" src="{{imageUrl}}icon-tel.png?t={{Timestamp}}"></image>
手机号快捷登录
</button>
<button wx:else class="tel-btn" bind:tap="handleNavProtool">
<image class="icon" src="{{imageUrl}}icon-tel.png?t={{Timestamp}}"></image> <image class="icon" src="{{imageUrl}}icon-tel.png?t={{Timestamp}}"></image>
手机号快捷登录 手机号快捷登录
</button> </button>

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

@ -22,7 +22,6 @@ Page({
const prevPage = pages[pages.length - 2]; const prevPage = pages[pages.length - 2];
prevPage.setData({ prevPage.setData({
protool: false, protool: false,
isProtocol: true,
}); });
wx.navigateBack(); wx.navigateBack();
}, },
@ -31,7 +30,6 @@ Page({
const prevPage = pages[pages.length - 2]; const prevPage = pages[pages.length - 2];
prevPage.setData({ prevPage.setData({
protool: true, protool: true,
isProtocol: true,
}); });
wx.navigateBack(); wx.navigateBack();
}, },

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

@ -40,6 +40,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.DoctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -91,6 +92,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -153,6 +155,7 @@
class="avatar" class="avatar"
src="{{subItem.DoctorInfo.doctorImg}}" src="{{subItem.DoctorInfo.doctorImg}}"
level="{{subItem.DoctorInfo.doctorLevel}}" level="{{subItem.DoctorInfo.doctorLevel}}"
did="{{subItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{subItem.Children.length}}"> <block wx:if="{{subItem.Children.length}}">
<view class="num">{{subItem.ChildCount}}人</view> <view class="num">{{subItem.ChildCount}}人</view>
@ -222,6 +225,7 @@
class="avatar" class="avatar"
src="{{subSubItem.DoctorInfo.doctorImg}}" src="{{subSubItem.DoctorInfo.doctorImg}}"
level="{{subSubItem.DoctorInfo.doctorLevel}}" level="{{subSubItem.DoctorInfo.doctorLevel}}"
did="{{subSubItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -276,6 +280,7 @@
class="avatar" class="avatar"
src="{{subItem.DoctorInfo.doctorImg}}" src="{{subItem.DoctorInfo.doctorImg}}"
level="{{subItem.DoctorInfo.doctorLevel}}" level="{{subItem.DoctorInfo.doctorLevel}}"
did="{{subItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -330,6 +335,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -390,6 +396,7 @@
class="avatar" class="avatar"
src="{{subSubItem.DoctorInfo.doctorImg}}" src="{{subSubItem.DoctorInfo.doctorImg}}"
level="{{subSubItem.DoctorInfo.doctorLevel}}" level="{{subSubItem.DoctorInfo.doctorLevel}}"
did="{{subSubItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -444,6 +451,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">

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

@ -53,6 +53,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -104,6 +105,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -166,6 +168,7 @@
class="avatar" class="avatar"
src="{{subItem.DoctorInfo.doctorImg}}" src="{{subItem.DoctorInfo.doctorImg}}"
level="{{subItem.DoctorInfo.doctorLevel}}" level="{{subItem.DoctorInfo.doctorLevel}}"
did="{{subItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{subItem.Children.length}}"> <block wx:if="{{subItem.Children.length}}">
<view class="num">{{subItem.ChildCount}}人</view> <view class="num">{{subItem.ChildCount}}人</view>
@ -235,6 +238,7 @@
class="avatar" class="avatar"
src="{{subSubItem.DoctorInfo.doctorImg}}" src="{{subSubItem.DoctorInfo.doctorImg}}"
level="{{subSubItem.DoctorInfo.doctorLevel}}" level="{{subSubItem.DoctorInfo.doctorLevel}}"
did="{{subSubItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -289,6 +293,7 @@
class="avatar" class="avatar"
src="{{subItem.DoctorInfo.doctorImg}}" src="{{subItem.DoctorInfo.doctorImg}}"
level="{{subItem.DoctorInfo.doctorLevel}}" level="{{subItem.DoctorInfo.doctorLevel}}"
did="{{subItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -343,6 +348,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
<block wx:if="{{item.Children.length}}"> <block wx:if="{{item.Children.length}}">
<view class="num">{{item.ChildCount}}人</view> <view class="num">{{item.ChildCount}}人</view>
@ -403,6 +409,7 @@
class="avatar" class="avatar"
src="{{subSubItem.DoctorInfo.doctorImg}}" src="{{subSubItem.DoctorInfo.doctorImg}}"
level="{{subSubItem.DoctorInfo.doctorLevel}}" level="{{subSubItem.DoctorInfo.doctorLevel}}"
did="{{subSubItem.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">
@ -457,6 +464,7 @@
class="avatar" class="avatar"
src="{{item.DoctorInfo.doctorImg}}" src="{{item.DoctorInfo.doctorImg}}"
level="{{item.DoctorInfo.doctorLevel}}" level="{{item.DoctorInfo.doctorLevel}}"
did="{{item.DoctorInfo.doctorId}}"
></doctorAvatar> ></doctorAvatar>
</view> </view>
<view class="wrap"> <view class="wrap">

7
src/module1/pages/setCaseDoctor/index.wxml

@ -51,7 +51,12 @@
data-index="{{index}}" data-index="{{index}}"
></radio> ></radio>
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}"> <view class="card" bind:tap="handlePopupDetail" data-index="{{index}}">
<doctorAvatar class="avatar" src="{{item.doctorImg}}" level="{{item.doctorLevel}}"></doctorAvatar> <doctorAvatar
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>

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

@ -51,7 +51,7 @@
color="#00B4C5" color="#00B4C5"
></radio> ></radio>
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}"> <view class="card" bind:tap="handlePopupDetail" data-index="{{index}}">
<doctorAvatar class="avatar" src="{{item.doctorImg}}" level="{{item.doctorLevel}}"></doctorAvatar> <doctorAvatar 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>

7
src/module1/pages/setDoctor/index.wxml

@ -55,7 +55,12 @@
color="#00B4C5" color="#00B4C5"
></radio> ></radio>
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}"> <view class="card" bind:tap="handlePopupDetail" data-index="{{index}}">
<doctorAvatar class="avatar" src="{{item.DoctorImg}}" level="{{item.DoctorLevel}}"></doctorAvatar> <doctorAvatar
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>

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

@ -24,16 +24,22 @@
.invite { .invite {
padding: 22rpx 28rpx; padding: 22rpx 28rpx;
border-radius: 16rpx; border-radius: 16rpx;
font-size: 32rpx; font-size: 28rpx;
color: #fff; color: #fff;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.icon{ .bind {
flex-shrink: 0; width: 128rpx;
width: 40rpx; height: 50rpx;
height: 40rpx; font-size: 28rpx;
color: #00B4C5;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
border-radius: 102rpx 102rpx 102rpx 102rpx;
} }
} }
.card { .card {
@ -208,6 +214,17 @@
justify-content: space-between; justify-content: space-between;
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);
gap: 24rpx;
.cancel {
flex: 1;
height: 84rpx;
border-radius: 96rpx 96rpx 96rpx 96rpx;
border: 1px solid #01b4c5;
font-size: 32rpx;
color: #01b4c5;
text-align: center;
line-height: 84rpx;
}
.submit { .submit {
flex: 1; flex: 1;
height: 88rpx; height: 88rpx;

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

@ -271,6 +271,38 @@ Page({
}, },
}); });
}, },
handleBindDoctor() {
wx.navigateTo({
url: "/module1/pages/setInfoDoctor/index",
events: {
acceptDataFromOpenedPage: (data) => {
this.setData({
InviteDoctorId: data.DoctorId,
inviteName: data.DoctorName,
});
},
},
});
},
handleLoginOut() {
wx.showModal({
confirmColor: "#00B4C5",
cancelColor: "#141515",
title: "确认退出登录?",
success(res) {
if (res.confirm) {
wx.ajax({
method: "POST",
url: "?r=takeda/account/reg-logout",
}).then(() => {
wx.reLaunch({
url: "/module1/pages/login/index",
});
});
}
},
});
},
}); });
export {}; export {};

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

@ -9,11 +9,11 @@
<view class="container"> <view class="container">
<view class="invite" wx:if="{{inviteName}}"> <view class="invite" wx:if="{{inviteName}}">
{{inviteName}}医生为您的邀约医生 {{inviteName}}医生为您的邀约医生
<image class="icon" src="{{imageUrl}}scan.png?r={{Timestamp}}" bind:tap="handleScan"></image> <view class="bind" bind:tap="handleBindDoctor">绑定</view>
</view> </view>
<view class="invite" wx:else> <view class="invite" wx:else>
您没有邀约医生,可能会影响您的审核 您没有邀约医生,可能会影响您的审核
<image class="icon" src="{{imageUrl}}scan.png?r={{Timestamp}}" bind:tap="handleScan"></image> <view class="bind" bind:tap="handleBindDoctor">绑定</view>
</view> </view>
<view class="card"> <view class="card">
<view class="row row-center"> <view class="row row-center">
@ -114,6 +114,7 @@
</view> </view>
</view> </view>
<view class="footer"> <view class="footer">
<view class="cancel" bind:tap="handleLoginOut">退出</view>
<view class="submit" bind:tap="handleSubmit">提交</view> <view class="submit" bind:tap="handleSubmit">提交</view>
</view> </view>
</view> </view>

10
src/module1/pages/setInfoDoctor/index.json

@ -0,0 +1,10 @@
{
"navigationBarTitleText": "指派医生",
"navigationStyle": "default",
"usingComponents": {
"popupDoctorDetail": "/components/popupDoctorDetail/index",
"doctorAvatar": "/components/doctorAvatar/index",
"van-popup": "@vant/weapp/popup/index",
"van-dialog": "@vant/weapp/dialog/index"
}
}

236
src/module1/pages/setInfoDoctor/index.scss

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

77
src/module1/pages/setInfoDoctor/index.ts

@ -0,0 +1,77 @@
const app = getApp<IAppOption>();
Page({
data: {
showDetail: false,
popupDoctorDetail: {},
Search: "",
list: [],
DoctorId: "",
DoctorName: "",
},
onLoad() {
app.waitLogin().then(() => {
this.getList();
});
},
handleSearch() {
this.setData({
list: [],
});
this.getList();
},
handleReset() {
this.setData({
Search: "",
});
this.handleSearch();
},
getList() {
const { Search } = this.data;
wx.ajax({
method: "GET",
url: "?r=takeda/reg/second-doctor-list",
data: {
Search,
},
}).then((res) => {
this.setData({
list: res.list,
});
});
},
handlePopupClose() {
this.setData({
showDetail: false,
});
},
handleRadio(e: any) {
const { index } = e.currentTarget.dataset;
const { list } = this.data;
this.setData({
DoctorId: (list as any)[index].DoctorId,
DoctorName: (list as any)[index].DoctorName,
});
},
handleResolve() {
const { DoctorId, DoctorName } = this.data;
if (!DoctorId) {
wx.showToast({
title: "请选择医生",
icon: "none",
});
return;
}
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit("acceptDataFromOpenedPage", { DoctorId, DoctorName });
this.handleBack()
},
handleBack() {
wx.navigateBack();
},
});
export {};

72
src/module1/pages/setInfoDoctor/index.wxml

@ -0,0 +1,72 @@
<view class="page">
<view class="header">
<view class="search-wrap">
<view class="search">
<image class="icon" src="{{imageUrl}}icon-search.png?t={{Timestamp}}"></image>
<input
model:value="{{Search}}"
class="input"
placeholder-class="place-input"
placeholder="搜索医生名"
type="text"
confirm-type="search"
bindconfirm="handleSearch"
/>
</view>
<view class="reset" bind:tap="handleReset">重置</view>
</view>
</view>
<view class="container">
<radio-group>
<view class="list">
<view class="list-item" wx:for="{{list}}" wx:key="DoctorId">
<radio
class="radio"
value="{{item.DoctorId}}"
bind:tap="handleRadio"
data-index="{{index}}"
color="#00B4C5"
></radio>
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}">
<doctorAvatar
did="{{item.DoctorId}}"
class="avatar"
src="{{item.DoctorImg}}"
level="{{item.DoctorLevel}}"
></doctorAvatar>
<view class="wrap">
<view class="w-header">
<view class="name">{{item.DoctorName}}</view>
<view class="label" wx:if="{{item.DoctorTitleType==='99'}}">{{item.DoctorOtherTitle}}</view>
<view class="label" wx:else>{{DoctorTitleType[item.DoctorTitleType]}}</view>
<block wx:for-item="depart" wx:for="{{item.department}}" wx:key="DepartmentId">
<view class="line"></view>
<view class="label">{{depart.DepartmentName}}</view>
</block>
</view>
<view class="w-container">
<text class="hostipal">{{item.HospitalName}}</text>
<view class="tag">
{{hospitalClassification[item.HospitalClassification]}}{{hospitalLevel[item.HospitalLevel]}}
</view>
<view class="site" wx:if="{{item.CityName}}">
{{item.CityName}}{{item.CountyName?'/':''}}{{item.CountyName}}
</view>
</view>
<view class="w-footer">
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image>
<view class="wf-tag" wx:for="{{item.specialty}}" wx:for-item="spec" wx:key="SpecialtyId">
{{spec.SpecialtyName}}
</view>
</view>
</view>
</view>
</view>
</view>
</radio-group>
</view>
<view class="footer">
<view class="cancel" bind:tap="handleBack">返回</view>
<view class="submit" bind:tap="handleResolve">确认</view>
</view>
</view>

6
src/module1/pages/setInfoResult/index.scss

@ -53,4 +53,10 @@
color: rgba(153, 153, 153, 1); color: rgba(153, 153, 153, 1);
} }
} }
.login-out{
margin-top: 42rpx;
font-size: 32rpx;
color: #fff;
text-align: center;
}
} }

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

@ -12,7 +12,7 @@ Page({
isFollow: Number(options.isf), isFollow: Number(options.isf),
InviteDoctorName: options.iname === "null" ? "" : options.iname, InviteDoctorName: options.iname === "null" ? "" : options.iname,
}); });
this.getCodeUrl() this.getCodeUrl();
if (!options.iname) { if (!options.iname) {
this.getApplyDoctor(); this.getApplyDoctor();
} }
@ -38,6 +38,25 @@ Page({
}); });
}); });
}, },
handleLoginOut() {
wx.showModal({
confirmColor: "#00B4C5",
cancelColor: "#141515",
title: "确认退出登录?",
success(res) {
if (res.confirm) {
wx.ajax({
method: "POST",
url: "?r=takeda/account/reg-logout",
}).then(() => {
wx.reLaunch({
url: "/module1/pages/login/index",
});
});
}
},
});
},
}); });
export {}; export {};

3
src/module1/pages/setInfoResult/index.wxml

@ -5,7 +5,7 @@
<image class="p-title" src="{{imageUrl}}set-info-result-title.png?r={{Timestamp}}"></image> <image class="p-title" src="{{imageUrl}}set-info-result-title.png?r={{Timestamp}}"></image>
<view class="container"> <view class="container">
<image class="result" src="{{imageUrl}}c-doctor-result.png?r={{Timestamp}}"></image> <image class="result" src="{{imageUrl}}c-doctor-result.png?r={{Timestamp}}"></image>
<view class="title">提交成功</view> <view class="title">提交成功待审核</view>
<view class="notice"> <view class="notice">
<view wx:if="{{InviteDoctorName}}"> <view wx:if="{{InviteDoctorName}}">
已将信息提交给 已将信息提交给
@ -19,4 +19,5 @@
<view>获取审核通知</view> <view>获取审核通知</view>
</view> </view>
</view> </view>
<view class="login-out" bind:tap="handleLoginOut">退出登录</view>
</view> </view>

1
src/module1/pages/userInfo/index.scss

@ -1,5 +1,6 @@
page { page {
background-color: rgba(246, 246, 246, 1); background-color: rgba(246, 246, 246, 1);
padding-bottom: 200rpx;
} }
.page { .page {
margin-bottom: 32rpx; margin-bottom: 32rpx;

7
src/pages/cases/index.ts

@ -143,6 +143,7 @@ Page({
nav, nav,
isOpen: nav === "1" ? "1" : "", isOpen: nav === "1" ? "1" : "",
isHighQuality: nav === "2" ? "1" : "", isHighQuality: nav === "2" ? "1" : "",
isReject: "",
}); });
if (noSearch) return; if (noSearch) return;
this.handleSearch(); this.handleSearch();
@ -273,9 +274,11 @@ Page({
} }
}, },
handleImagePreview(e) { handleImagePreview(e) {
const { url } = e.currentTarget.dataset; const { url, parent } = e.currentTarget.dataset;
const urls = parent.map((item) => item.url);
wx.previewImage({ wx.previewImage({
urls: [url], urls,
current: url,
}); });
}, },
handleDetail(e) { handleDetail(e) {

1
src/pages/cases/index.wxml

@ -242,6 +242,7 @@
src="{{photoItem.url}}" src="{{photoItem.url}}"
catch:tap="handleImagePreview" catch:tap="handleImagePreview"
data-url="{{photoItem.url}}" data-url="{{photoItem.url}}"
data-parent="{{item.caseImages}}"
wx:key="index" wx:key="index"
></image> ></image>
</view> </view>

7
src/pages/my/index.wxml

@ -3,7 +3,12 @@
style="background: url({{imageUrl}}my-bg.png?r={{Timestamp}}) no-repeat top center/100% 642rpx;padding-top:{{menuButtonInfo.bottom+30}}px;" style="background: url({{imageUrl}}my-bg.png?r={{Timestamp}}) no-repeat top center/100% 642rpx;padding-top:{{menuButtonInfo.bottom+30}}px;"
> >
<view class="user"> <view class="user">
<doctorAvatar 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>

Loading…
Cancel
Save