Browse Source

1v1沟通,页面开发

dev
kola-web 3 days ago
parent
commit
dff04274b7
  1. 11
      project.private.config.json
  2. 10
      src/components/pickerArea/index.scss
  3. 3
      src/components/pickerArea/index.wxml
  4. 30
      src/components/popup/index.scss
  5. 9
      src/components/popup/index.wxml
  6. 74
      src/custom-tab-bar/index.scss
  7. 68
      src/custom-tab-bar/index.ts
  8. 23
      src/custom-tab-bar/index.wxml
  9. 19
      src/gift/pages/dtpDurg/index.scss
  10. 6
      src/gift/pages/dtpDurg/index.wxml
  11. BIN
      src/images/bg33.png
  12. BIN
      src/images/bg34.png
  13. BIN
      src/images/bg35.png
  14. BIN
      src/images/icon100.png
  15. BIN
      src/images/icon90.png
  16. BIN
      src/images/icon92.png
  17. BIN
      src/images/icon93.png
  18. BIN
      src/images/icon94.png
  19. BIN
      src/images/icon97.png
  20. BIN
      src/images/icon98.png
  21. BIN
      src/images/icon99.png
  22. BIN
      src/images/za-images/3/icon-send-date.png
  23. BIN
      src/images/za-images/icon6.png
  24. 16
      src/pages/d_interactive/index.scss
  25. 2
      src/pages/d_interactive/index.wxml
  26. 104
      src/pages/d_interactiveDoctor/index.scss
  27. 38
      src/pages/d_interactiveDoctor/index.ts
  28. 39
      src/pages/d_interactiveDoctor/index.wxml
  29. 18
      src/pages/home/index.ts
  30. 2
      src/pages/home/index.wxml
  31. 2
      src/pages/message/index.wxml
  32. 1
      src/patient/pages/doctor/index.ts
  33. 72
      src/patient/pages/hospital/index.scss
  34. 31
      src/patient/pages/hospital/index.wxml
  35. 11
      src/patient/pages/infusionCenter/index.scss
  36. 6
      src/patient/pages/infusionCenter/index.wxml
  37. 3
      src/patient/pages/interactivePatient/index.json
  38. 143
      src/patient/pages/interactivePatient/index.scss
  39. 62
      src/patient/pages/interactivePatient/index.ts
  40. 117
      src/patient/pages/interactivePatient/index.wxml

11
project.private.config.json

@ -23,11 +23,18 @@ @@ -23,11 +23,18 @@
"miniprogram": {
"list": [
{
"name": "11",
"pathName": "patient/pages/certReslove/index",
"query": "",
"scene": null,
"launchMode": "default"
},
{
"name": "药房",
"pathName": "gift/pages/dtpDurg/index",
"query": "id=10",
"scene": null,
"launchMode": "default"
"launchMode": "default",
"scene": null
},
{
"name": "就诊地图",

10
src/components/pickerArea/index.scss

@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
padding: 18rpx 30rpx;
box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 0, 0, 0.11);
border-radius: 12rpx 12rpx 12rpx 12rpx;
border: 2rpx solid #e04775;
border: 2rpx solid #B982FF;
display: flex;
align-items: center;
justify-content: space-between;
@ -69,7 +69,7 @@ @@ -69,7 +69,7 @@
display: flex;
align-items: center;
justify-content: center;
background: #e04775;
background: linear-gradient( 197deg, #FFBCF9 0%, #B982FF 100%);
border-radius: 12rpx 12rpx 12rpx 12rpx;
}
}
@ -91,7 +91,7 @@ @@ -91,7 +91,7 @@
background: #f7f8f9;
&.active {
color: #fff;
background-color: rgba(224, 71, 117, 1);
background-color: #B982FF;
}
}
}
@ -118,9 +118,9 @@ @@ -118,9 +118,9 @@
height: 36rpx;
}
&.active {
color: rgba(224, 71, 117, 1);
color: #B982FF;
.word {
color: rgba(224, 71, 117, 1);
color: #B982FF;
}
}
}

3
src/components/pickerArea/index.wxml

@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
<view class="popup">
<van-icon catch:tap="handleClose" class="close" name="cross" />
<view class="p-header">
<view class="title">选择省份和地区</view>
<view class="title" wx:if="{{active===1}}">选择您的地区</view>
<view class="title" wx:else>选择您的省份</view>
<!-- <view class="tip">对方打开后自动定位此地区</view> -->
<view class="area">
<view class="item" bind:tap="handleProvince">

30
src/components/popup/index.scss

@ -207,6 +207,36 @@ @@ -207,6 +207,36 @@
}
}
.popup9 {
padding: 32rpx;
width: 530rpx;
height: 452rpx;
box-sizing: border-box;
background-color: #fff;
text-align: center;
.icon {
width: 128rpx;
height: 128rpx;
}
.title {
margin-top: 24rpx;
font-size: 32rpx;
color: #211d2e;
font-weight: bold;
line-height: 40rpx;
}
.btn {
margin: 36rpx auto 0;
width: 418rpx;
height: 88rpx;
line-height: 88rpx;
font-size: 32rpx;
color: #FFFFFF;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
}
}
.close {
margin: 48rpx auto 0;
display: block;

9
src/components/popup/index.wxml

@ -72,6 +72,15 @@ @@ -72,6 +72,15 @@
<image class="p-img" src="{{imageUrl}}bg23.png?t={{Timestamp}}"></image>
<image class="code" src="{{params.subscribe_img}}" show-menu-by-longpress></image>
</view>
<view class="popup9" wx:if="{{type==='popup9'}}">
<image class="icon" src="/images/icon100.png"></image>
<view class="title">
文字包含不合规内容
<view></view>
请修改后重新提交
</view>
<view class="btn">知道了</view>
</view>
<image
wx:if="{{params.close}}"

74
src/custom-tab-bar/index.scss

@ -4,76 +4,6 @@ @@ -4,76 +4,6 @@
justify-content: space-between;
background-color: #fff;
box-shadow: 0rpx 3rpx 27rpx 0rpx rgba(40, 48, 49, 0.1);
.custom {
flex-shrink: 0;
position: relative;
width: 94rpx;
height: 64rpx;
.add {
position: absolute;
top: -42rpx;
width: 94rpx;
height: 94rpx;
}
.popup-tip {
padding: 20rpx 34rpx 28rpx;
position: absolute;
top: -60rpx;
left: 50%;
transform: translate(-50%, -100%);
border-radius: 16rpx;
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%);
box-shadow: 0 4rpx 11rpx rgba(0, 0, 0, 0.08);
.close {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 40rpx;
height: 40rpx;
}
.content {
text-align: center;
font-size: 32rpx;
color: #fff;
white-space: nowrap;
line-height: 48rpx;
.plus {
color: #fff;
font-size: 48rpx;
font-weight: bold;
}
}
.pt-footer {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 24rpx;
white-space: nowrap;
.ok {
padding: 16rpx 42rpx;
font-size: 24rpx;
color: #00b4c5;
font-size: 32rpx;
line-height: 32rpx;
border-radius: 120rpx;
background: #fff;
}
}
&::after {
position: absolute;
content: "";
bottom: -10rpx;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-style: solid;
border-width: 12rpx 12rpx 0 12rpx;
border-color: #56cabb transparent transparent transparent;
}
}
}
.tab-item {
position: relative;
padding-top: 10rpx;
@ -110,7 +40,7 @@ @@ -110,7 +40,7 @@
.name {
margin-top: 8rpx;
font-size: 22rpx;
color: rgba(20, 21, 21, 1);
color: #69686E;
line-height: 21rpx;
}
&.active {
@ -123,7 +53,7 @@ @@ -123,7 +53,7 @@
}
}
.name {
color: rgba(0, 180, 197, 1);
color: #211D2E;
}
}
}

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

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
const _app = getApp<IAppOption>();
const _app = getApp<IAppOption>()
// pages/story/a.ts
Component({
@ -16,37 +16,33 @@ Component({ @@ -16,37 +16,33 @@ Component({
notice: false,
tabbar: [
{
path: "/pages/home/index",
name: "首页",
icon: "tab1.png",
iconActive: "tab-active1.png",
activeIndex: 1,
path: '/pages/home/index',
name: '首页',
icon: 'tab1.png',
iconActive: 'tab-active1.png',
activeIndex: 0,
},
{
path: "/pages/cases/index",
name: "病历",
icon: "tab2.png",
iconActive: "tab-active2.png",
activeIndex: 2,
path: '/pages/information/index',
name: '资料库',
icon: 'tab2.png',
iconActive: 'tab-active2.png',
activeIndex: 1,
},
{
custom: true,
path: "/module1/pages/entryCases/index",
path: '/pages/d_interactive/index',
name: '互动',
icon: 'tab3.png',
iconActive: 'tab-active3.png',
activeIndex: 2,
},
{
path: "/pages/chatRoomList/index",
name: "学习窗",
icon: "tab3.png",
iconActive: "tab-active3.png",
path: '/pages/my/index',
name: '我的',
icon: 'tab4.png',
iconActive: 'tab-active4.png',
activeIndex: 3,
},
{
path: "/pages/my/index",
name: "我的",
icon: "tab4.png",
iconActive: "tab-active4.png",
activeIndex: 4,
},
],
userInfo: {},
},
@ -55,20 +51,16 @@ Component({ @@ -55,20 +51,16 @@ Component({
*/
methods: {
handleTab(e: any) {
const { index } = e.currentTarget.dataset;
const tab = this.data.tabbar[index];
if (tab.custom) {
this.handleClsoeCaseTip();
wx.navigateTo({
url: tab.path,
});
} else {
wx.switchTab({
url: tab.path,
});
}
const { index } = e.currentTarget.dataset
const tab = this.data.tabbar[index]
this.setData({
active: tab.activeIndex,
})
wx.switchTab({
url: tab.path,
})
},
},
});
})
export {};
export {}

23
src/custom-tab-bar/index.wxml

@ -1,27 +1,6 @@ @@ -1,27 +1,6 @@
<view class="tabbar">
<block wx:for="{{tabbar}}" wx:key="index">
<view class="custom" wx:if="{{item.custom && userInfo.DoctorLevel<3}}" bind:tap="handleTab" data-index="{{index}}">
<image class="add" src="{{imageUrl}}tabbar/add.png?t={{Timestamp}}"></image>
<view class="popup-tip" wx:if="{{showEntryCase}}">
<image class="close" catch:tap="handleClsoeCaseTip" src="{{imageUrl}}icon-close-white.png?t={{Timestamp}}"></image>
<view class="content">
点击
<text class="plus">+</text>
,可录入病历
<view></view>
邀约合作医生一起讨论哦
</view>
<view class="pt-footer">
<view class="ok">去录入</view>
</view>
</view>
</view>
<view
class="tab-item {{active===item.activeIndex && 'active'}}"
wx:elif="{{!item.custom}}"
bind:tap="handleTab"
data-index="{{index}}"
>
<view class="tab-item {{active==item.activeIndex && 'active'}}" bind:tap="handleTab" data-index="{{index}}">
<view class="icon-wrap">
<view class="dot" wx:if="{{notice && index===3}}"></view>
<image class="icon" src="{{imageUrl}}tabbar/{{item.icon}}?t={{Timestamp}}"></image>

19
src/gift/pages/dtpDurg/index.scss

@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
width: 100%;
min-height: 100vh;
border-radius: 24rpx 24rpx 0 0;
background-color: #FFFFFF;
background-color: #ffffff;
box-sizing: border-box;
.title {
font-size: 36rpx;
@ -26,12 +26,12 @@ @@ -26,12 +26,12 @@
justify-content: space-between;
.inner {
.site {
font-size: 28rpx;
color: #adacb2;
font-size: 32rpx;
color: #211d2e;
}
.tel {
font-size: 28rpx;
color: #adacb2;
font-size: 32rpx;
color: #211d2e;
}
}
}
@ -50,6 +50,7 @@ @@ -50,6 +50,7 @@
border-radius: 60rpx 60rpx 60rpx 60rpx;
border: 1px solid #b982ff;
.icon {
margin-right: 8rpx;
display: inline-block;
width: 36rpx;
height: 36rpx;
@ -65,6 +66,7 @@ @@ -65,6 +66,7 @@
text-align: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
.icon {
margin-right: 8rpx;
display: inline-block;
width: 32rpx;
height: 32rpx;
@ -77,16 +79,17 @@ @@ -77,16 +79,17 @@
margin-top: 56rpx;
padding: 32rpx;
border-radius: 24rpx;
background-color: #FAFAFA;
background-color: #fafafa;
.r-title {
font-size: 32rpx;
color: #211D2E;
color: #211d2e;
font-weight: bold;
}
.r-content {
margin-top: 20rpx;
font-size: 28rpx;
color: #69686E;
color: #69686e;
word-break: break-all;
}
}
}

6
src/gift/pages/dtpDurg/index.wxml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<view class="page">
<image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image>
<image wx:else class="banner" mode="widthFix" src="{{imageUrl}}bg25.png?t={{Timestamp}}"></image>
<!-- <image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image> -->
<image class="banner" mode="widthFix" src="{{imageUrl}}bg34.png?t={{Timestamp}}"></image>
<view class="container">
<view class="title">{{detail.Name}}</view>
<view class="content">
@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
</view>
<view class="site" bind:tap="handleSite" wx:if="{{detail.Address}}">
<image class="icon" src="{{imageUrl}}icon96.png?t={{Timestamp}}"></image>
地址
地址{{detail.dist}}
</view>
</view>
<view class="remark" wx:if="{{detail.Remark}}">

BIN
src/images/bg33.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

BIN
src/images/bg34.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

BIN
src/images/bg35.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

BIN
src/images/icon100.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/images/icon90.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon92.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon93.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon94.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 810 B

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/images/icon97.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

After

Width:  |  Height:  |  Size: 566 B

BIN
src/images/icon98.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

BIN
src/images/icon99.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 B

BIN
src/images/za-images/3/icon-send-date.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/images/za-images/icon6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

After

Width:  |  Height:  |  Size: 308 B

16
src/pages/d_interactive/index.scss

@ -62,12 +62,18 @@ page { @@ -62,12 +62,18 @@ page {
.dot {
position: absolute;
top: 0;
right: 0;
width: 18rpx;
height: 18rpx;
right: 10rpx;
transform: translateX(50%);
padding: 0 5rpx;
min-width: 32rpx;
height: 32rpx;
text-align: center;
font-size: 20rpx;
color: #ffffff;
border: 2rpx solid #ffffff;
border-radius: 50%;
background: #d76c6c;
border-radius: 16rpx;
background: #ef3939;
box-sizing: border-box;
}
}
.wrap {

2
src/pages/d_interactive/index.wxml

@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
<view class="list-item" wx:for="{{list}}" wx:key="index" bind:tap="handleDetail" data-index="{{index}}">
<view class="avatar">
<image class="a-img" src="{{item.userAvatar}}"></image>
<view class="dot" wx:if="{{item.msgReadStatus==='2'}}"></view>
<view class="dot" wx:if="{{item.msgReadStatus==='2'}}">1</view>
</view>
<view class="wrap">
<view class="w-header">

104
src/pages/d_interactiveDoctor/index.scss

@ -468,26 +468,34 @@ page { @@ -468,26 +468,34 @@ page {
padding: 32rpx 30rpx calc(32rpx + env(safe-area-inset-bottom));
box-sizing: border-box;
display: flex;
gap: 28rpx;
gap: 10rpx;
border-radius: 32rpx 32rpx 0 0;
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(40, 48, 49, 0.04);
border: 2rpx solid #ffffff;
background-color: #fff;
.send {
padding: 0 12rpx 0 32rpx;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: rgba(40, 48, 49, 1);
height: 76rpx;
background: #ffffff;
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(40, 48, 49, 0.04);
border-radius: 140rpx 140rpx 140rpx 140rpx;
border: 2rpx solid #f2f4f5;
.icon {
width: 36rpx;
height: 36rpx;
justify-content: space-between;
border-radius: 98rpx;
background-color: #f6f8f9;
.content {
padding: 10rpx 0;
flex: 1;
color: #adacb2;
}
.btn {
flex-shrink: 0;
width: 188rpx;
height: 64rpx;
line-height: 64rpx;
font-size: 32rpx;
color: #ffffff;
text-align: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 111rpx 111rpx 111rpx 111rpx;
}
}
.send-date {
@ -503,6 +511,74 @@ page { @@ -503,6 +511,74 @@ page {
}
}
.custom-input {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
padding: 30rpx;
box-sizing: border-box;
border-radius: 32rpx 32rpx 0 0;
background-color: #fff;
.icon {
position: relative;
width: 36rpx;
height: 36rpx;
overflow: visible;
&::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
background-color: transparent;
}
}
.wrap {
margin-top: 14rpx;
position: relative;
padding: 32rpx 32rpx 24rpx;
border-radius: 24rpx;
background-color: #f6f8f9;
.textarea {
width: 100%;
display: block;
height: 300rpx;
box-sizing: border-box;
padding-bottom: 80rpx;
.ka-container {
padding: 30rpx 62rpx;
display: flex;
align-items: center;
justify-content: space-between;
.stat {
font-size: 28rpx;
color: #adacb2;
}
.send-btn {
width: 128rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
font-size: 32rpx;
color: #ffffff;
background: #b982ff linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 111rpx 111rpx 111rpx 111rpx;
}
}
}
}
&.custom-input-max {
.wrap {
.textarea {
height: 43vh;
}
}
}
}
.popup-message {
padding: 30rpx;
background-color: rgba(242, 244, 245, 1);
@ -526,7 +602,7 @@ page { @@ -526,7 +602,7 @@ page {
background-color: #fff;
&.active {
color: #fff;
background-color: #B982FF;
background-color: #b982ff;
}
}
}
@ -537,7 +613,7 @@ page { @@ -537,7 +613,7 @@ page {
font-size: 36rpx;
color: rgba(255, 255, 255, 1);
font-weight: bold;
background: linear-gradient( 197deg, #FFBCF9 0%, #B982FF 100%);
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
display: flex;
align-items: center;
justify-content: center;

38
src/pages/d_interactiveDoctor/index.ts

@ -28,6 +28,10 @@ Page({ @@ -28,6 +28,10 @@ Page({
messageListShow: false,
patientDetail: {},
inputShow: false,
maxTextArea: false,
focus: false,
isLoad: false,
isFinish: false,
scrollTop: 0,
@ -97,7 +101,8 @@ Page({ @@ -97,7 +101,8 @@ Page({
})
},
getMessageList() {
if (this.data.isLoad || this.data.isFinish) return
if (this.data.isLoad || this.data.isFinish)
return
this.setData({
isLoad: true,
})
@ -236,6 +241,17 @@ Page({ @@ -236,6 +241,17 @@ Page({
messageListShow: false,
})
},
handleInputShow() {
this.setData({
inputShow: true,
focus: true,
})
},
toggleMaxTextarea() {
this.setData({
maxTextArea: !this.data.maxTextArea,
})
},
handleWord(e) {
const { index } = e.currentTarget.dataset
this.setData({
@ -325,11 +341,14 @@ Page({ @@ -325,11 +341,14 @@ Page({
let msgCreateTimeName = ''
if (dayjs().format('YYYY-MM-DD') === dayjs(date).format('YYYY-MM-DD')) {
msgCreateTimeName = dayjs(date).format('HH:mm')
} else if (dayjs().format('YYYY-MM-DD') === dayjs(date).add(1, 'day').format('YYYY-MM-DD')) {
}
else if (dayjs().format('YYYY-MM-DD') === dayjs(date).add(1, 'day').format('YYYY-MM-DD')) {
msgCreateTimeName = `昨天 ${dayjs(date).format('HH:mm')}`
} else if (dayjs().diff(date, 'day') < 7) {
}
else if (dayjs().diff(date, 'day') < 7) {
msgCreateTimeName = dayjs(date).format(`dddd HH:mm`)
} else {
}
else {
msgCreateTimeName = dayjs(date).format('YYYY-MM-DD HH:mm')
}
return msgCreateTimeName
@ -344,7 +363,8 @@ Page({ @@ -344,7 +363,8 @@ Page({
item.showTime = true
preTime = dayjs(item.msgCreateTime).valueOf()
item.msgCreateTimeName = this.formatTime(item.msgCreateTime)
} else {
}
else {
const curTime = dayjs(item.msgCreateTime).valueOf()
if (curTime - preTime > gapTime) {
item.showTime = true
@ -443,6 +463,14 @@ Page({ @@ -443,6 +463,14 @@ Page({
},
})
},
handleHideKeyboard() {
if (this.data.inputShow) {
this.setData({
inputShow: false,
focus: false,
})
}
},
handleBack() {
wx.navigateBack()
},

39
src/pages/d_interactiveDoctor/index.wxml

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
<view
class="page"
style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx;padding-top:{{pageTop+21}}px;"
bind:tap="handleHideKeyboard"
>
<view class="page-header">
<view class="user">
@ -146,14 +147,48 @@ @@ -146,14 +147,48 @@
</scroll-view>
</view>
<view class="page-footer">
<view class="send" bind:tap="handleSendShow">发送消息</view>
<view class="send">
<view class="content" catch:tap="handleInputShow">输入文字</view>
<view class="btn" catch:tap="handleSendShow">发送消息</view>
</view>
<view class="send-date" bind:tap="handleSendDate">
<image class="icon" src="{{imageUrl}}za-images/3/icon-send-date.png?t={{Timestamp}}"></image>
<view>我的出诊时间</view>
<view>出诊时间</view>
</view>
</view>
</view>
<view wx:if="{{inputShow}}" class="custom-input {{maxTextArea && 'custom-input-max'}}">
<image
wx:if="{{maxTextArea}}"
class="icon"
src="{{imageUrl}}icon98.png?t={{Timestamp}}"
catch:tap="toggleMaxTextarea"
></image>
<image wx:else class="icon" src="{{imageUrl}}icon97.png?t={{Timestamp}}" catch:tap="toggleMaxTextarea"></image>
<view class="wrap" catch:tap="catchFooterInput">
<textarea
class="textarea"
focus="{{focus}}"
hold-keyboard
disable-default-padding
confirm-type="send"
adjust-keyboard-to="bottom"
maxlength="{{500}}"
placeholder="输入您的问题"
bind:blur="bindblur"
>
<keyboard-accessory class="ka" style="height: 50px;">
<cover-view class="ka-container">
<cover-view class="stat">0/500</cover-view>
<cover-view class="send-btn">发送</cover-view>
</cover-view>
</keyboard-accessory>
</textarea>
<view class="w-footer"></view>
</view>
</view>
<van-popup
show="{{ messageListShow }}"
style="--popup-close-icon-color: #283031"

18
src/pages/home/index.ts

@ -40,6 +40,10 @@ Page({ @@ -40,6 +40,10 @@ Page({
},
},
onShow() {
wx.setTabBarBadge({
index: 2,
text: '99',
})
app.waitLogin({ type: [2] }).then(() => {
app.mpBehavior({ doctor: true, PageName: 'PG_DoctorHome' })
this.getNotice()
@ -136,7 +140,8 @@ Page({ @@ -136,7 +140,8 @@ Page({
})
},
})
} else {
}
else {
this.handleNotice()
}
},
@ -167,7 +172,8 @@ Page({ @@ -167,7 +172,8 @@ Page({
handleBanner(e) {
const { index } = e.currentTarget.dataset
const { LinkUrl } = this.data.bannerList[index]
if (!LinkUrl) return
if (!LinkUrl)
return
wx.navigateTo({
url: LinkUrl,
fail() {
@ -267,7 +273,8 @@ Page({ @@ -267,7 +273,8 @@ Page({
if (params.ContentType === '5' && params.FileList[0]) {
app.oldMpBehavior({ PositionId: '1', OperateType: '1', OperateId: id as string })
this.handleFile(params.FileList[0])
} else {
}
else {
wx.navigateTo({
url: `/pages/informationDetail/index?id=${id}`,
})
@ -293,7 +300,8 @@ Page({ @@ -293,7 +300,8 @@ Page({
wx.hideLoading()
},
})
} else {
}
else {
wx.hideLoading()
wx.showToast({
title: '下载文件失败',
@ -357,7 +365,7 @@ Page({ @@ -357,7 +365,7 @@ Page({
4: '根据GO-QOL变化情况激素用量情况,判断筛选的不达标需干预的患者。',
}[question]
wx.showModal({
content: content,
content,
confirmColor: '#8c75d0',
showCancel: false,
confirmText: '知道了',

2
src/pages/home/index.wxml

@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
<view class="wrap">
<view class="num-line">
{{item.Composite}}
<view class="sub">入组</view>
<view class="sub">入组</view>
</view>
<image wx:if="{{item.Url}}" class="icon" src="{{imageUrl}}icon23.png?t={{Timestamp}}"></image>
</view>

2
src/pages/message/index.wxml

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<view class="num-wrap">
<view class="num-line">
{{item.Composite}}
<view class="sub">入组</view>
<view class="sub">入组</view>
</view>
<image wx:if="{{item.Url}}" class="icon" src="{{imageUrl}}icon23.png?t={{Timestamp}}"></image>
</view>

1
src/patient/pages/doctor/index.ts

@ -392,7 +392,6 @@ Page({ @@ -392,7 +392,6 @@ Page({
return {
title: '【就诊地图】帮您快速找到医生和医院',
imageUrl: `${app.globalData.imageUrl}5/share1.png?t=${app.globalData.Timestamp}`,
path,
}
},

72
src/patient/pages/hospital/index.scss

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
}
.page {
background-color: #fafafa;
min-height: 70vh;
.banner {
padding: 44rpx 30rpx 0;
display: flex;
@ -27,8 +28,9 @@ @@ -27,8 +28,9 @@
align-items: center;
.name {
font-size: 36rpx;
color: #211D2E;
color: #211d2e;
word-break: break-all;
font-weight: bold;
}
.tag {
flex-shrink: 0;
@ -37,23 +39,26 @@ @@ -37,23 +39,26 @@
font-size: 22rpx;
line-height: 1;
color: #ffffff;
background: #FFA300;
background: #ffa300;
border-radius: 8rpx;
}
}
.content {
margin-top: 28rpx;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 18rpx;
.inner {
.site {
font-size: 24rpx;
color: #ADACB2;
margin-bottom: 16rpx;
font-size: 32rpx;
color: #211d2e;
.icon {
width: 36rpx;
height: 36rpx;
vertical-align: -8rpx;
}
}
.site-num {
font-size: 24rpx;
color: #ADACB2;
color: #adacb2;
}
}
.options {
@ -70,6 +75,45 @@ @@ -70,6 +75,45 @@
}
}
}
.options {
margin: 60rpx 30rpx 0;
display: flex;
align-items: center;
justify-content: center;
gap: 30rpx;
.phone {
flex: 1;
line-height: 70rpx;
font-size: 32rpx;
color: #b982ff;
text-align: center;
border-radius: 60rpx 60rpx 60rpx 60rpx;
border: 1px solid #b982ff;
.icon {
margin-right: 8rpx;
display: inline-block;
width: 36rpx;
height: 36rpx;
vertical-align: middle;
}
}
.site {
flex: 1;
line-height: 76rpx;
font-size: 32rpx;
color: #ffffff;
border-radius: 60rpx;
text-align: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
.icon {
margin-right: 8rpx;
display: inline-block;
width: 32rpx;
height: 32rpx;
vertical-align: middle;
}
}
}
.module {
margin-top: 64rpx;
padding: 0 30rpx;
@ -105,13 +149,13 @@ @@ -105,13 +149,13 @@
padding-left: 20rpx;
.name {
font-size: 32rpx;
color: #211D2E;
color: #211d2e;
font-weight: bold;
}
.p {
margin-top: 8rpx;
font-size: 24rpx;
color: #ADACB2;
color: #adacb2;
&.ellipsis {
min-width: 0;
overflow: hidden;
@ -130,7 +174,7 @@ @@ -130,7 +174,7 @@
margin-bottom: 10rpx;
width: 120rpx;
height: 32rpx;
background: #FAF6FF;
background: #faf6ff;
border-radius: 8rpx;
display: flex;
.week {
@ -138,14 +182,14 @@ @@ -138,14 +182,14 @@
font-size: 20rpx;
line-height: 32rpx;
color: #ffffff;
background-color: #B982FF;
background-color: #b982ff;
text-align: center;
border-radius: 8rpx 0 8rpx 8rpx;
}
.value {
flex: 1;
font-size: 20rpx;
color: #B982FF;
color: #b982ff;
text-align: center;
line-height: 32rpx;
}

31
src/patient/pages/hospital/index.wxml

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
<scroll-view class="scroll-view" enhanced scroll-y show-scrollbar="{{false}}">
<view
class="page"
style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx"
>
<view class="page" style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx">
<navBar background="{{background}}" title="医院介绍" back bind:back="handleBack"></navBar>
<view class="banner">
<view class="hosttipat-img">
@ -17,17 +14,29 @@ @@ -17,17 +14,29 @@
</view>
<view class="content">
<view class="inner">
<view class="site">{{detail.ProvinceName}}{{detail.CityName}}{{detail.CountyName}}{{detail.Address}}</view>
<view class="site-num">{{detail.dist}}</view>
</view>
<view class="options">
<image class="icon" src="{{imageUrl}}icon91.png?t={{Timestamp}}" bind:tap="handleOpenMap"></image>
<image class="icon" src="{{imageUrl}}icon92.png?t={{Timestamp}}" bind:tap="handlePhone"></image>
<view class="site" bind:tap="handleOpenMap">
<image class="icon" src="{{imageUrl}}icon41.png?t={{Timestamp}}" bind:tap="handleOpenMap"></image>
{{detail.ProvinceName}}{{detail.CityName}}{{detail.CountyName}}{{detail.Address}}
</view>
<view class="site" bind:tap="handlePhone" wx:if="{{detail.Telephone}}">
<image class="icon" src="{{imageUrl}}icon42.png?t={{Timestamp}}" bind:tap="handleOpenMap"></image>
{{detail.Telephone}}
</view>
</view>
</view>
</view>
</view>
<view class="module">
<view class="options">
<view class="phone" bind:tap="handlePhone" wx:if="{{detail.Telephone}}">
<image class="icon" src="{{imageUrl}}icon95.png?t={{Timestamp}}"></image>
电话
</view>
<view class="site" bind:tap="handleSite" wx:if="{{detail.Address}}">
<image class="icon" src="{{imageUrl}}icon96.png?t={{Timestamp}}"></image>
地址{{detail.dist}}
</view>
</view>
<view class="module" wx:if="{{detail.doctors && detail.doctors.length}}">
<view class="module-container">
<view class="m-title">
<image class="m-title-img" src="{{imageUrl}}title10.png?t={{Timestamp}}"></image>

11
src/patient/pages/infusionCenter/index.scss

@ -26,12 +26,12 @@ @@ -26,12 +26,12 @@
justify-content: space-between;
.inner {
.site {
font-size: 28rpx;
color: #adacb2;
font-size: 32rpx;
color: #211D2E;
}
.tel {
font-size: 28rpx;
color: #adacb2;
font-size: 32rpx;
color: #211D2E;
}
}
}
@ -50,6 +50,7 @@ @@ -50,6 +50,7 @@
border-radius: 60rpx 60rpx 60rpx 60rpx;
border: 1px solid #b982ff;
.icon {
margin-right: 8rpx;
display: inline-block;
width: 36rpx;
height: 36rpx;
@ -65,6 +66,7 @@ @@ -65,6 +66,7 @@
text-align: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
.icon {
margin-right: 8rpx;
display: inline-block;
width: 32rpx;
height: 32rpx;
@ -87,6 +89,7 @@ @@ -87,6 +89,7 @@
margin-top: 20rpx;
font-size: 28rpx;
color: #69686e;
word-break: break-all;
}
}
}

6
src/patient/pages/infusionCenter/index.wxml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<view class="page">
<image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image>
<image wx:else class="banner" mode="widthFix" src="{{imageUrl}}bg25.png?t={{Timestamp}}"></image>
<!-- <image wx:if="{{detail.ImgUrl}}" class="banner" mode="widthFix" src="{{detail.ImgUrl}}"></image> -->
<image class="banner" mode="widthFix" src="{{imageUrl}}bg33.png?t={{Timestamp}}"></image>
<view class="container">
<view class="title">{{detail.Name}}</view>
<view class="content">
@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
</view>
<view class="site" bind:tap="handleSite" wx:if="{{detail.Address}}">
<image class="icon" src="{{imageUrl}}icon96.png?t={{Timestamp}}"></image>
地址
地址{{detail.dist}}
</view>
</view>
<view class="remark" wx:if="{{detail.Remark}}">

3
src/patient/pages/interactivePatient/index.json

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
"van-icon": "@vant/weapp/icon/index",
"van-loading": "@vant/weapp/loading/index",
"referralFrom": "/components/referralFrom/index",
"navbar": "/components/navbar/index"
"navbar": "/components/navbar/index",
"popup": "/components/popup/index"
}
}

143
src/patient/pages/interactivePatient/index.scss

@ -393,12 +393,22 @@ page { @@ -393,12 +393,22 @@ page {
}
.message {
margin-bottom: 32rpx;
padding: 26rpx 32rpx;
background: rgba(185, 130, 255, 1);
border-radius: 32rpx;
font-size: 32rpx;
color: #fff;
white-space: pre-line;
display: flex;
align-items: center;
gap: 16rpx;
.error {
flex-shrink: 0;
width: 36rpx;
height: 36rpx;
}
.content {
padding: 26rpx 32rpx;
background: rgba(185, 130, 255, 1);
border-radius: 32rpx;
font-size: 32rpx;
color: #fff;
white-space: pre-line;
}
}
.referral-replay {
margin-bottom: 32rpx;
@ -442,6 +452,12 @@ page { @@ -442,6 +452,12 @@ page {
}
}
}
.status {
margin-bottom: 32rpx;
text-align: center;
font-size: 28rpx;
color: #adacb2;
}
.place {
height: 10vh;
}
@ -469,9 +485,12 @@ page { @@ -469,9 +485,12 @@ page {
}
&.expend {
height: 45vh;
&.min-expend {
height: 32vh;
}
}
.line {
margin: 0 auto;
margin: 10rpx auto;
width: 52rpx;
height: 6rpx;
background: #f2f4f5;
@ -479,14 +498,42 @@ page { @@ -479,14 +498,42 @@ page {
}
.title {
margin-top: 26rpx;
font-size: 32rpx;
color: rgba(40, 48, 49, 1);
display: flex;
gap: 20rpx;
align-items: center;
justify-content: center;
.icon {
width: 36rpx;
height: 36rpx;
justify-content: space-between;
.custom-input {
text-indent: 40rpx;
flex: 1;
height: 72rpx;
background: #f6f8f9;
line-height: 72rpx;
border-radius: 98rpx;
font-size: 32rpx;
color: #adacb2;
&.active {
color: #211d2e;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.shortcut {
width: 244rpx;
height: 72rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.07);
border-radius: 98rpx 98rpx 98rpx 98rpx;
border: 2rpx solid #f6f8f9;
font-size: 32rpx;
color: rgba(40, 48, 49, 1);
display: flex;
align-items: center;
justify-content: center;
.icon {
width: 36rpx;
height: 36rpx;
}
}
}
.tabs {
@ -571,5 +618,75 @@ page { @@ -571,5 +618,75 @@ page {
}
}
}
.custom-input {
transition: all 0.3s;
.icon {
position: relative;
width: 36rpx;
height: 36rpx;
overflow: visible;
&::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
background-color: transparent;
}
}
.wrap {
margin-top: 14rpx;
position: relative;
padding: 32rpx 32rpx 24rpx;
border-radius: 24rpx;
background-color: #f6f8f9;
.textarea {
width: 100%;
display: block;
height: 300rpx;
box-sizing: border-box;
padding-bottom: 80rpx;
.ka-container {
padding: 30rpx 62rpx;
display: flex;
align-items: center;
justify-content: space-between;
.stat {
font-size: 28rpx;
color: #adacb2;
}
.send-btn {
width: 128rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
font-size: 32rpx;
color: #ffffff;
background: #b982ff linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 111rpx 111rpx 111rpx 111rpx;
}
}
}
}
}
&.custom-input-max {
.custom-input {
position: absolute;
top: -45vh;
left: 0;
width: 100%;
box-sizing: border-box;
padding: 30rpx;
border-radius: 32rpx 32rpx 0 0;
background-color: #fff;
.wrap {
.textarea {
height: 45vh;
}
}
}
}
}
}

62
src/patient/pages/interactivePatient/index.ts

@ -25,7 +25,14 @@ interface Item { @@ -25,7 +25,14 @@ interface Item {
Page({
data: {
popupShow: true,
popupType: 'popup9',
popupParams: {} as any,
expend: false,
expendType: 'shortcut',
maxTextArea: false,
focus: false,
scrollTop: 0,
scrollIntoView: '',
doctorDetail: {} as any,
@ -115,7 +122,8 @@ Page({ @@ -115,7 +122,8 @@ Page({
})
},
getMessageList() {
if (this.data.isLoad || this.data.isFinish) return
if (this.data.isLoad || this.data.isFinish)
return
this.setData({
isLoad: true,
})
@ -234,11 +242,14 @@ Page({ @@ -234,11 +242,14 @@ Page({
let msgCreateTimeName = ''
if (dayjs().format('YYYY-MM-DD') === dayjs(date).format('YYYY-MM-DD')) {
msgCreateTimeName = dayjs(date).format('HH:mm')
} else if (dayjs().format('YYYY-MM-DD') === dayjs(date).add(1, 'day').format('YYYY-MM-DD')) {
}
else if (dayjs().format('YYYY-MM-DD') === dayjs(date).add(1, 'day').format('YYYY-MM-DD')) {
msgCreateTimeName = `昨天 ${dayjs(date).format('HH:mm')}`
} else if (dayjs().diff(date, 'day') < 7) {
}
else if (dayjs().diff(date, 'day') < 7) {
msgCreateTimeName = dayjs(date).format(`dddd HH:mm`)
} else {
}
else {
msgCreateTimeName = dayjs(date).format('YYYY-MM-DD HH:mm')
}
return msgCreateTimeName
@ -253,7 +264,8 @@ Page({ @@ -253,7 +264,8 @@ Page({
item.showTime = true
preTime = dayjs(item.msgCreateTime).valueOf()
item.msgCreateTimeName = this.formatTime(item.msgCreateTime)
} else {
}
else {
const curTime = dayjs(item.msgCreateTime).valueOf()
if (curTime - preTime > gapTime) {
item.showTime = true
@ -281,7 +293,7 @@ Page({ @@ -281,7 +293,7 @@ Page({
},
handleRead() {
const { firstNotReadMsgId, messageList } = this.data
const index = messageList.findIndex((item) => `${item.msgId}` === `${firstNotReadMsgId}`)
const index = messageList.findIndex(item => `${item.msgId}` === `${firstNotReadMsgId}`)
this.handleView(index)
this.setData({
unReadCount: 0,
@ -291,6 +303,7 @@ Page({ @@ -291,6 +303,7 @@ Page({
app.mpBehavior({ PageName: 'BTN_PatientImAsk' })
this.setData({
expend: !this.data.expend,
maxTextArea: false,
})
if (this.data.expend) {
setTimeout(() => {
@ -298,6 +311,33 @@ Page({ @@ -298,6 +311,33 @@ Page({
}, 300)
}
},
handleFooterInput() {
this.setData({
expendType: 'custom-input',
focus: true,
})
this.handleFooter()
},
handleFooterShortcut() {
this.setData({
expendType: 'shortcut',
})
this.handleFooter()
},
catchFooterInput() {
return false
},
toggleMaxTextarea() {
this.setData({
maxTextArea: !this.data.maxTextArea,
})
},
bindblur() {
this.setData({
focus: false,
})
},
handleAdl() {
wx.navigateTo({
url: '/patient/pages/adl/index',
@ -367,6 +407,16 @@ Page({ @@ -367,6 +407,16 @@ Page({
url: '/patient/pages/qol/index',
})
},
handlePopupOk() {
this.setData({
popupShow: false,
})
},
handlePopupCancel() {
this.setData({
popupShow: false,
})
},
handleBack() {
wx.navigateBack({
fail() {

117
src/patient/pages/interactivePatient/index.wxml

@ -113,7 +113,12 @@ @@ -113,7 +113,12 @@
</view>
<view class="patient" wx:if="{{message.msgFromType==='1'}}">
<view class="p-container">
<view class="message" wx:if="{{message.msgContentType==='1'}}">{{message.msgContent}}</view>
<block wx:if="{{message.msgContentType==='1'}}">
<view class="message">
<image class="error" src="/images/icon99.png"></image>
<view class="content">{{message.msgContent}}</view>
</view>
</block>
<view class="referral-replay" wx:if="{{message.msgContentType==='9'}}">
<view class="title">我最近一次复诊时间是{{message.ReVisitInfo.visitDateName}}</view>
<view class="sub-title">我的方案是</view>
@ -140,47 +145,103 @@ @@ -140,47 +145,103 @@
<image class="a-img" mode="aspectFill" src="{{zdUserInfo.UserImg}}"></image>
</view>
</view>
<view class="status">医生回复您之前,24小时内最多只能发1条文字消息</view>
</view>
<view id="place" class="place"></view>
</scroll-view>
</view>
<view class="page-footer {{expend && 'expend'}}" catch:tap="handleFooter">
<view
class="page-footer {{expend && 'expend'}} {{maxTextArea && 'custom-input-max'}} {{expendType=='custom-input' && 'min-expend'}}"
catch:tap="handleFooter"
>
<view class="unread" catch:tap="handleRead" wx:if="{{unReadCount}}">
您有{{unReadCount}}条新消息
<van-icon name="arrow-down" />
</view>
<view class="line"></view>
<view class="title" wx:if="{{!expend}}">
<image class="icon" src="{{imageUrl}}za-images//doctor/icon-message.png?t={{Timestamp}}"></image>
请选择您要咨询的问题
</view>
<view class="tabs" wx:if="{{expend}}">
<view
class="tab {{questionActive === index && 'active'}}"
wx:for="{{questionList}}"
wx:key="typeId"
catch:tap="handleQuestionTab"
data-index="{{index}}"
>
{{item.typeName}}
<view class="custom-input" catch:tap="handleFooterInput">输入您的问题</view>
<view class="shortcut" catch:tap="handleFooterShortcut">
<image class="icon" src="{{imageUrl}}za-images//doctor/icon-message.png?t={{Timestamp}}"></image>
快捷提问
</view>
</view>
<view class="list" wx:if="{{expend}}">
<view
class="l-item"
wx:for="{{questionActiveList}}"
wx:key="questionId"
bind:tap="handleQuestion"
data-index="{{index}}"
>
<view class="order">{{index+1}}</view>
<view class="content">{{item.question}}</view>
<view class="icon-wrap">
<image class="icon" src="{{imageUrl}}icon38.png?t={{Timestamp}}"></image>
<block wx:if="{{expend}}">
<block wx:if="{{expendType=='shortcut'}}">
<view class="tabs">
<view
class="tab {{questionActive === index && 'active'}}"
wx:for="{{questionList}}"
wx:key="typeId"
catch:tap="handleQuestionTab"
data-index="{{index}}"
>
{{item.typeName}}
</view>
</view>
</view>
</view>
<view class="list">
<view
class="l-item"
wx:for="{{questionActiveList}}"
wx:key="questionId"
bind:tap="handleQuestion"
data-index="{{index}}"
>
<view class="order">{{index+1}}</view>
<view class="content">{{item.question}}</view>
<view class="icon-wrap">
<image class="icon" src="{{imageUrl}}icon38.png?t={{Timestamp}}"></image>
</view>
</view>
</view>
</block>
<block wx:elif="{{expendType=='custom-input'}}">
<view class="custom-input {{maxTextArea && 'custom-input-max'}}">
<image
wx:if="{{maxTextArea}}"
class="icon"
src="{{imageUrl}}icon98.png?t={{Timestamp}}"
catch:tap="toggleMaxTextarea"
></image>
<image
wx:else
class="icon"
src="{{imageUrl}}icon97.png?t={{Timestamp}}"
catch:tap="toggleMaxTextarea"
></image>
<view class="wrap" catch:tap="catchFooterInput">
<textarea
class="textarea"
focus="{{focus}}"
hold-keyboard
disable-default-padding
confirm-type="send"
adjust-keyboard-to="bottom"
maxlength="{{500}}"
placeholder="输入您的问题"
bind:blur="bindblur"
>
<keyboard-accessory class="ka" style="height: 50px;">
<cover-view class="ka-container">
<cover-view class="stat">0/500</cover-view>
<cover-view class="send-btn">发送</cover-view>
</cover-view>
</keyboard-accessory>
</textarea>
<view class="w-footer"></view>
</view>
</view>
</block>
</block>
</view>
</view>
<referralFrom model:show="{{referralFromShow}}" bind:refresh="handleReferralReplay"></referralFrom>
<popup
show="{{popupShow}}"
type="{{popupType}}"
params="{{popupParams}}"
bind:ok="handlePopupOk"
bind:cancel="handlePopupCancel"
></popup>

Loading…
Cancel
Save