Browse Source

删除大量无用页面

dev
kola-web 2 months ago
parent
commit
f0ad8bde23
  1. 32
      src/app.json
  2. 6
      src/components/referralFrom/index.json
  3. 95
      src/components/referralFrom/index.scss
  4. 139
      src/components/referralFrom/index.ts
  5. 52
      src/components/referralFrom/index.wxml
  6. 6
      src/gift/pages/conformOrder/index.json
  7. 184
      src/gift/pages/conformOrder/index.scss
  8. 86
      src/gift/pages/conformOrder/index.ts
  9. 56
      src/gift/pages/conformOrder/index.wxml
  10. 4
      src/gift/pages/cutaneous/index.json
  11. 63
      src/gift/pages/cutaneous/index.scss
  12. 65
      src/gift/pages/cutaneous/index.ts
  13. 82
      src/gift/pages/cutaneous/index.wxml
  14. 4
      src/gift/pages/cutaneousDetail/index.json
  15. 11
      src/gift/pages/cutaneousDetail/index.scss
  16. 26
      src/gift/pages/cutaneousDetail/index.ts
  17. 9
      src/gift/pages/cutaneousDetail/index.wxml
  18. 4
      src/gift/pages/cutaneousVideo/index.json
  19. 36
      src/gift/pages/cutaneousVideo/index.scss
  20. 29
      src/gift/pages/cutaneousVideo/index.ts
  21. 16
      src/gift/pages/cutaneousVideo/index.wxml
  22. 7
      src/gift/pages/giftDetail/index.json
  23. 185
      src/gift/pages/giftDetail/index.scss
  24. 150
      src/gift/pages/giftDetail/index.ts
  25. 80
      src/gift/pages/giftDetail/index.wxml
  26. 8
      src/gift/pages/giftList/index.json
  27. 185
      src/gift/pages/giftList/index.scss
  28. 114
      src/gift/pages/giftList/index.ts
  29. 51
      src/gift/pages/giftList/index.wxml
  30. 4
      src/gift/pages/myGift/index.json
  31. 110
      src/gift/pages/myGift/index.scss
  32. 48
      src/gift/pages/myGift/index.ts
  33. 28
      src/gift/pages/myGift/index.wxml
  34. 11
      src/gift/pages/myHealthRecord/index.json
  35. 741
      src/gift/pages/myHealthRecord/index.scss
  36. 1072
      src/gift/pages/myHealthRecord/index.ts
  37. 392
      src/gift/pages/myHealthRecord/index.wxml
  38. 11
      src/gift/pages/myHealthRecordChart/index.json
  39. 14
      src/gift/pages/myHealthRecordChart/index.scss
  40. 287
      src/gift/pages/myHealthRecordChart/index.ts
  41. 4
      src/gift/pages/myHealthRecordChart/index.wxml
  42. 4
      src/gift/pages/orderDetail/index.json
  43. 129
      src/gift/pages/orderDetail/index.scss
  44. 29
      src/gift/pages/orderDetail/index.ts
  45. 54
      src/gift/pages/orderDetail/index.wxml
  46. 4
      src/gift/pages/orderEnd/index.json
  47. 40
      src/gift/pages/orderEnd/index.scss
  48. 39
      src/gift/pages/orderEnd/index.ts
  49. 7
      src/gift/pages/orderEnd/index.wxml
  50. 4
      src/gift/pages/priceDetail/index.json
  51. 78
      src/gift/pages/priceDetail/index.scss
  52. 53
      src/gift/pages/priceDetail/index.ts
  53. 26
      src/gift/pages/priceDetail/index.wxml
  54. 7
      src/gift/pages/scoreRule/index.json
  55. 139
      src/gift/pages/scoreRule/index.scss
  56. 33
      src/gift/pages/scoreRule/index.ts
  57. 59
      src/gift/pages/scoreRule/index.wxml
  58. 8
      src/gift/pages/siteEdit/index.json
  59. 96
      src/gift/pages/siteEdit/index.scss
  60. 272
      src/gift/pages/siteEdit/index.ts
  61. 80
      src/gift/pages/siteEdit/index.wxml
  62. 4
      src/gift/pages/siteList/index.json
  63. 73
      src/gift/pages/siteList/index.scss
  64. 64
      src/gift/pages/siteList/index.ts
  65. 17
      src/gift/pages/siteList/index.wxml
  66. 11
      src/gift/pages/vipCert/index.json
  67. 189
      src/gift/pages/vipCert/index.scss
  68. 134
      src/gift/pages/vipCert/index.ts
  69. 45
      src/gift/pages/vipCert/index.wxml
  70. 10
      src/gift/pages/vipPending/index.json
  71. 100
      src/gift/pages/vipPending/index.scss
  72. 34
      src/gift/pages/vipPending/index.ts
  73. 22
      src/gift/pages/vipPending/index.wxml
  74. 10
      src/gift/pages/vipReject/index.json
  75. 142
      src/gift/pages/vipReject/index.scss
  76. 25
      src/gift/pages/vipReject/index.ts
  77. 25
      src/gift/pages/vipReject/index.wxml
  78. 10
      src/gift/pages/vipStartPending/index.json
  79. 77
      src/gift/pages/vipStartPending/index.scss
  80. 14
      src/gift/pages/vipStartPending/index.ts
  81. 15
      src/gift/pages/vipStartPending/index.wxml
  82. 34
      src/pages/d_interactiveDoctor/index.ts
  83. 9
      src/patient/pages/doctorDetailBak/index.json
  84. 116
      src/patient/pages/doctorDetailBak/index.scss
  85. 144
      src/patient/pages/doctorDetailBak/index.ts
  86. 45
      src/patient/pages/doctorDetailBak/index.wxml
  87. 1
      src/patient/pages/index/index.json
  88. 198
      src/patient/pages/index/index.ts
  89. 48
      src/patient/pages/index/index.wxml
  90. 1
      src/patient/pages/interactivePatient/index.json
  91. 25
      src/patient/pages/interactivePatient/index.ts
  92. 13
      src/patient/pages/interactivePatient/index.wxml
  93. 25
      src/patient/pages/my/index.ts
  94. 7
      src/patient/pages/referral/index.json
  95. 82
      src/patient/pages/referral/index.scss
  96. 118
      src/patient/pages/referral/index.ts
  97. 40
      src/patient/pages/referral/index.wxml
  98. 8
      src/patient/pages/story/index.json
  99. 105
      src/patient/pages/story/index.scss
  100. 99
      src/patient/pages/story/index.ts
  101. Some files were not shown because too many files have changed in this diff Show More

32
src/app.json

@ -26,13 +26,7 @@
"pages/vipLoginReject/index", "pages/vipLoginReject/index",
"pages/startReject/index", "pages/startReject/index",
"pages/startPending/index", "pages/startPending/index",
"pages/story/index",
"pages/publishStoryDetail/index", "pages/publishStoryDetail/index",
"pages/storyEnter/index",
"pages/storyEnterResult/index",
"pages/storyList/index",
"pages/storyGuide/index",
"pages/storyDetail/index",
"pages/my/index", "pages/my/index",
"pages/mySave/index", "pages/mySave/index",
"pages/myLive/index", "pages/myLive/index",
@ -74,36 +68,16 @@
"pages/infusionCenter/index", "pages/infusionCenter/index",
"pages/nrdlTable/index", "pages/nrdlTable/index",
"pages/interactivePatient/index", "pages/interactivePatient/index",
"pages/referral/index",
"pages/qol/index", "pages/qol/index",
"pages/qolAdd/index", "pages/qolAdd/index",
"pages/qolResult/index", "pages/qolResult/index",
"pages/qolReport/index" "pages/qolReport/index",
"pages/hormones/index"
] ]
}, },
{ {
"root": "gift", "root": "gift",
"pages": [ "pages": ["pages/dtpDurg/index"]
"pages/giftList/index",
"pages/conformOrder/index",
"pages/siteList/index",
"pages/siteEdit/index",
"pages/orderEnd/index",
"pages/orderDetail/index",
"pages/myGift/index",
"pages/priceDetail/index",
"pages/scoreRule/index",
"pages/dtpDurg/index",
"pages/vipCert/index",
"pages/vipReject/index",
"pages/vipPending/index",
"pages/vipStartPending/index",
"pages/myHealthRecord/index",
"pages/myHealthRecordChart/index",
"pages/cutaneous/index",
"pages/cutaneousDetail/index",
"pages/cutaneousVideo/index"
]
}, },
{ {
"root": "doc", "root": "doc",

6
src/components/referralFrom/index.json

@ -1,6 +0,0 @@
{
"component": true,
"usingComponents": {
"van-popup": "@vant/weapp/popup/index"
}
}

95
src/components/referralFrom/index.scss

@ -1,95 +0,0 @@
.from {
padding: 48rpx 40rpx;
width: 650rpx;
box-sizing: border-box;
background: linear-gradient(349deg, #ffffff 0%, #e2f1f4 100%);
border-radius: 24rpx 24rpx 24rpx 24rpx;
border: 2rpx solid #ffffff;
.title {
font-size: 32rpx;
color: #283031;
font-weight: bold;
}
.date {
margin-top: 24rpx;
padding: 14rpx 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #f2f4f5;
border-radius: 16rpx;
.conetent {
font-size: 32rpx;
color: #283031;
}
.tril {
width: 0;
height: 0;
border-style: solid;
border-width: 10rpx 10rpx 0 10rpx;
border-color: #aeb3b4 transparent transparent transparent;
}
}
.select-title {
margin-top: 48rpx;
font-size: 32rpx;
color: #283031;
font-weight: bold;
.sub {
font-weight: normal;
}
}
.list {
margin-top: 26rpx;
max-height: 55vh;
overflow-y: auto;
&::-webkit-scrollbar{
display: none;
}
.item {
margin-bottom: 16rpx;
padding: 14rpx 32rpx;
font-size: 32rpx;
color: #283031;
line-height: 48rpx;
background-color: #f2f4f5;
border: 1px solid #f2f4f5;
border-radius: 16rpx;
&.active {
border-color: #67baca;
background-color: #e7f5f8;
color: #67baca;
}
}
}
.footer {
margin-top: 32rpx;
display: flex;
justify-content: space-between;
align-items: center;
gap: 26rpx;
text-align: center;
.cancel {
flex: 1;
height: 80rpx;
font-size: 36rpx;
color: #67BACA;
line-height: 80rpx;
background: #ffffff;
border-radius: 98rpx 98rpx 98rpx 98rpx;
border: 2rpx solid #67baca;
}
.submit {
flex: 1;
height: 80rpx;
font-size: 36rpx;
color: #FFFFFF;
line-height: 80rpx;
background: #67baca;
border-radius: 98rpx 98rpx 98rpx 98rpx;
border: 2rpx solid #67baca;
}
}
}

139
src/components/referralFrom/index.ts

@ -1,139 +0,0 @@
import dayjs from 'dayjs'
const _app = getApp<IAppOption>()
// pages/story/a.ts
Component({
/**
*
*/
properties: {
show: {
type: Boolean,
value: false,
},
params: {
type: Object,
value: undefined,
},
},
observers: {
show() {
if (this.data.params) {
this.setData({
...this.data.params,
})
this.handleDateChange()
} else {
this.setData({
visitDateName: '',
visitDate: '',
hormone: 2,
traditionalInhibitor: 2,
gammaGlobulin: 2,
plasmaExchange: 2,
bCellInhibitor: 2,
fcRnAntagonists: 2,
c5ComplementInhibitor: 2,
chineseMedicine: 2,
other: 2,
recordId: '',
})
}
},
},
data: {
currentDate: dayjs().format('YYYY-MM-DD'),
visitDateName: '',
visitDate: '',
hormone: 2,
traditionalInhibitor: 2,
gammaGlobulin: 2,
plasmaExchange: 2,
bCellInhibitor: 2,
fcRnAntagonists: 2,
c5ComplementInhibitor: 2,
chineseMedicine: 2,
other: 2,
recordId: '',
},
methods: {
handleDateChange() {
this.setData({
visitDateName: dayjs(this.data.visitDate).format('YYYY年MM月DD日'),
})
},
handleSelect(e) {
const { name } = e.currentTarget.dataset
const value = this.data[name]
this.setData({
[name]: value === 2 ? 1 : 2,
})
},
submit() {
const { visitDate, recordId } = this.data
const params = {
visitDate,
recordId,
}
if(!visitDate){
wx.showToast({
title: '请选择复诊日期',
icon: 'none',
})
return
}
const selectKeys = [
'hormone',
'traditionalInhibitor',
'gammaGlobulin',
'plasmaExchange',
'bCellInhibitor',
'fcRnAntagonists',
'c5ComplementInhibitor',
'chineseMedicine',
'other',
]
selectKeys.forEach((item) => {
params[item] = this.data[item]
})
const onlySelect = selectKeys.some((item) => {
return this.data[item] === 1
})
if (!onlySelect) {
wx.showToast({
title: '请至少选择一种复诊后的方案',
icon: 'none',
})
return
}
wx.ajax({
method: 'POST',
url: '?r=xd/re-visit/save-record',
data: params,
}).then(() => {
if (recordId) {
wx.showToast({
icon: 'none',
title: '编辑成功',
})
} else {
wx.showToast({
icon: 'none',
title: '添加成功',
})
}
this.handleCancel()
this.triggerEvent('refresh', params)
})
},
handleCancel() {
this.setData({
show: false,
})
},
},
})

52
src/components/referralFrom/index.wxml

@ -1,52 +0,0 @@
<van-popup custom-style="background: transparent;" round z-index="{{100000}}" show="{{ show }}">
<view class="from">
<view class="title">您上一次复诊时间?</view>
<picker mode="date" model:value="{{visitDate}}" end="{{currentDate}}" bind:change="handleDateChange">
<view class="date">
<view class="content">{{visitDateName||'请选择'}}</view>
<view class="tril"></view>
</view>
</picker>
<view class="select-title">
您复诊后的方案是?
<text class="sub">(多选)</text>
</view>
<view class="list">
<view bind:tap="handleSelect" data-name="hormone" class="item {{hormone===1 && 'active'}}">1.激素</view>
<view
bind:tap="handleSelect"
data-name="traditionalInhibitor"
class="item {{traditionalInhibitor===1 && 'active'}}"
>
2.传统免疫抑制剂(如他克莫司、吗 替麦考酚酯等)
</view>
<view bind:tap="handleSelect" data-name="gammaGlobulin" class="item {{gammaGlobulin===1 && 'active'}}">
3.静脉输注丙种球蛋白
</view>
<view bind:tap="handleSelect" data-name="plasmaExchange" class="item {{plasmaExchange===1 && 'active'}}">
4.血浆置换
</view>
<view bind:tap="handleSelect" data-name="bCellInhibitor" class="item {{bCellInhibitor===1 && 'active'}}">
5.B细胞抑制剂(如:利妥昔单抗、泰 它西普、伊奈利珠单抗)
</view>
<view bind:tap="handleSelect" data-name="fcRnAntagonists" class="item {{fcRnAntagonists===1 && 'active'}}">
6.FcRn拮抗剂(如:艾加莫德)
</view>
<view
bind:tap="handleSelect"
data-name="c5ComplementInhibitor"
class="item {{c5ComplementInhibitor===1 && 'active'}}"
>
7.C5补体抑制剂(如:依库珠单抗)
</view>
<view bind:tap="handleSelect" data-name="chineseMedicine" class="item {{chineseMedicine===1 && 'active'}}">
8.中药或中成药
</view>
<view bind:tap="handleSelect" data-name="other" class="item {{other===1 && 'active'}}">9.其他</view>
</view>
<view class="footer">
<view class="cancel" bind:tap="handleCancel">取消</view>
<view class="submit" bind:tap="submit">确定</view>
</view>
</view>
</van-popup>

6
src/gift/pages/conformOrder/index.json

@ -1,6 +0,0 @@
{
"navigationBarTitleText": "确认订单",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index"
}
}

184
src/gift/pages/conformOrder/index.scss

@ -1,184 +0,0 @@
.page {
padding: 34rpx 40rpx;
.site {
padding: 40rpx 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
.wrap {
.title {
.label {
width: 72rpx;
height: 36rpx;
border: 1rpx solid #e04775;
font-size: 24rpx;
color: #e04775;
text-align: center;
border-radius: 10rpx;
box-sizing: border-box;
}
.name {
margin-top: -42rpx;
text-indent: 80rpx;
font-size: 36rpx;
line-height: 46rpx;
color: #3f3f3f;
font-weight: bold;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
&.no-indent {
margin-top: 0;
text-indent: 0;
}
}
}
.content {
margin-top: 0;
margin-top: 12rpx;
font-size: 28rpx;
color: #b6b7ba;
}
}
.more {
flex-shrink: 0;
}
}
.shop {
margin-top: 16px;
padding: 40rpx 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
.shop-header {
padding-bottom: 10px;
display: flex;
.shop-img {
flex-shrink: 0;
width: 204rpx;
height: 204rpx;
border-radius: 24rpx;
}
.wrap {
padding-top: 8rpx;
flex: 1;
padding-left: 24rpx;
.name {
font-size: 32rpx;
font-weight: bold;
color: #3f3f3f;
line-height: 44rpx;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.specification {
margin-top: 8rpx;
font-size: 28rpx;
color: #b6b7ba;
}
.price {
margin-top: 14rpx;
display: flex;
align-items: center;
justify-content: space-between;
.num {
font-size: 32rpx;
color: #3f3f3f;
}
.sub {
font-size: 22rpx;
}
.val {
font-size: 28rpx;
color: #b6b7ba;
}
}
}
}
.row {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
.label {
font-size: 32rpx;
color: #3f3f3f;
}
.content {
font-size: 32rpx;
color: #3f3f3f;
&.yellow {
color: #e04775;
}
.sub {
font-size: 22rpx;
}
}
}
}
.remark {
margin-top: 16px;
padding: 40rpx 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
.title {
font-size: 32rpx;
color: #3f3f3f;
font-weight: bold;
}
.textarea {
margin-top: 10rpx;
padding: 24rpx 32rpx;
background-color: #fafafa;
min-height: 196rpx;
border-radius: 16rpx;
box-sizing: border-box;
}
}
.footer {
padding: 24rpx 48rpx 48rpx;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
height: 168rpx;
background: #ffffff;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 0, 0, 0.26);
.price {
font-size: 28rpx;
color: #b6b7ba;
.num {
font-size: 40rpx;
color: #e04775;
}
.sub {
font-size: 24rpx;
}
}
.submit {
width: 260rpx;
height: 96rpx;
background: #e04775;
border-radius: 48rpx;
text-align: center;
line-height: 96rpx;
color: #fff;
font-weight: bold;
}
}
}

86
src/gift/pages/conformOrder/index.ts

@ -1,86 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {},
select: false,
addressDetail: {} as any,
remark: "",
},
onLoad(options) {
this.setData({
id: options.id,
});
},
onShow() {
app.waitLogin().then(() => {
this.getDetail();
if (!this.data.select) {
this.getDefaultAddress();
} else {
this.setData({
select: false,
});
}
});
},
getDefaultAddress() {
wx.ajax({
method: "GET",
url: "?r=zd/patient-address/get-default-address",
data: {},
}).then((res) => {
this.setData({
addressDetail: res,
});
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/gift-order/get-order-detail",
data: {
orderId: this.data.id,
},
}).then((res) => {
this.setData({
detail: res,
});
});
},
handleSite() {
if (this.data.addressDetail) {
wx.navigateTo({
url: "/gift/pages/siteList/index",
});
} else {
wx.navigateTo({
url: "/gift/pages/siteEdit/index",
});
}
},
handleSubmit() {
if (!this.data.addressDetail?.addressId) {
wx.showToast({
icon: "none",
title: "请选择地址",
});
return;
}
wx.ajax({
method: "POST",
url: "?r=zd/gift-order/confirm-order",
data: {
orderId: this.data.id,
addressId: this.data.addressDetail.addressId,
remark: this.data.remark,
},
loading: true,
}).then(() => {
wx.reLaunch({
url: `/gift/pages/orderEnd/index?id=${this.data.id}`,
});
});
},
});

56
src/gift/pages/conformOrder/index.wxml

@ -1,56 +0,0 @@
<view class="page">
<view class="site" bind:tap="handleSite">
<view class="wrap">
<block wx:if="{{addressDetail}}">
<view class="title">
<view class="label" wx:if="{{addressDetail.isDefault==1}}">默认</view>
<view class="name {{addressDetail.isDefault!=1 && 'no-indent'}}">
{{addressDetail.provinceName}}{{addressDetail.cityName}}{{addressDetail.countyName}}{{addressDetail.address}}
</view>
</view>
<view class="content">{{addressDetail.receiveUserName}} {{addressDetail.receiveTelephone}}</view>
</block>
<view class="title" wx:else>请添加收货地址</view>
</view>
<van-icon class="more" name="arrow" />
</view>
<view class="shop">
<view class="shop-header">
<image class="shop-img" src="{{detail.giftBigImg}}"></image>
<view class="wrap">
<view class="name">{{detail.giftName}}</view>
<view class="specification" wx:if="{{detail.specName}}">规格:{{detail.specName}}</view>
<view class="price">
<view class="num">{{detail.giftScore}}<text class="sub">能量</text></view>
<view class="val">x{{detail.orderCount}}</view>
</view>
</view>
</view>
<view class="row">
<view class="label">礼品总价</view>
<view class="content yellow">{{detail.orderScore}}<text class="sub">能量</text></view>
</view>
<view class="row" >
<view class="label">配送方式</view>
<view class="content" style="font-weight:normal">快递配送</view>
</view>
<view class="row" >
<view class="label">商家电话</view>
<view class="content" style="font-weight:normal">{{detail.serviceTel}}</view>
</view>
</view>
<view class="remark">
<view class="title">留言</view>
<textarea class="textarea" model:value="{{remark}}" placeholder="请输入留言" auto-height></textarea>
</view>
<view class="footer">
<view class="price">
共{{detail.orderCount}}件
<view>
合计消耗
<text class="num">{{detail.orderScore}}<text class="sub">能量</text></text>
</view>
</view>
<view class="submit" bind:tap="handleSubmit">提交订单</view>
</view>
</view>

4
src/gift/pages/cutaneous/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "皮下剂型",
"usingComponents": {}
}

63
src/gift/pages/cutaneous/index.scss

@ -1,63 +0,0 @@
page {
background-color: #f7f6f7;
}
.page {
.page1 {
height: 869rpx;
}
.page2 {
position: relative;
height: 630rpx;
.mg-video {
position: absolute;
top: 290rpx;
right: 60rpx;
width: 600rpx;
height: 288rpx;
}
}
.page3 {
position: relative;
height: 782rpx;
.cidp-mask {
position: absolute;
top: 174rpx;
right: 30rpx;
z-index: 1;
width: 74rpx;
height: 304rpx;
}
.cidp-list {
position: absolute;
top: 184rpx;
right: 30rpx;
width: 632rpx;
height: 288rpx;
overflow-x: auto;
overflow-y: hidden;
display: flex;
gap: 16rpx;
.cidp-item {
flex-shrink: 0;
width: 216rpx;
height: 288rpx;
}
}
}
.page4 {
height: 302rpx;
}
.page5 {
height: 306rpx;
}
.page6 {
display: block;
width: 100%;
height: 574rpx;
}
}
#video {
width: 0;
height: 0;
}

65
src/gift/pages/cutaneous/index.ts

@ -1,65 +0,0 @@
const _app = getApp<IAppOption>()
Page({
data: {
mg: [
{
url: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241129469_MG%E4%B8%93%E5%8C%BA%E8%A7%86%E9%A2%9101.mp4',
},
],
cidp: [
{
url: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241129233_CIDP%E4%B8%93%E5%8C%BA%E8%A7%86%E9%A2%9101.mp4',
},
{
url: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241129667_CIDP%E4%B8%93%E5%8C%BA%E8%A7%86%E9%A2%9103.mp4',
},
{
url: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241129630_CIDP%E8%A7%86%E9%A2%91%E4%B8%93%E5%8C%BA02.mp4',
},
{
url: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241129281_CIDP%E4%B8%93%E5%8C%BA%E8%A7%86%E9%A2%9104.mp4',
},
],
},
videoContext: null as WechatMiniprogram.VideoContext | null,
onLoad() {
this.videoContext = wx.createVideoContext('video')
},
onUnload() {
if (this.videoContext) {
this.videoContext.stop()
}
},
handleVideo(e: any) {
const { key, index } = e.currentTarget.dataset
const url = this.data[key][index].url
if (this.videoContext) {
this.setData({
videoUrl: url,
})
this.videoContext.play()
this.videoContext.requestFullScreen({
direction: 0,
})
}
},
handleFullScreen(e) {
if (!e.detail.fullScreen && this.videoContext) {
this.videoContext.stop()
}
},
handleDetail(e: any) {
const { id } = e.currentTarget.dataset
wx.navigateTo({
url: `/gift/pages/cutaneousDetail/index?id=${id}`,
})
},
handleVideoDetail() {
wx.navigateTo({
url: `/gift/pages/cutaneousVideo/index`,
})
},
})
export {}

82
src/gift/pages/cutaneous/index.wxml

@ -1,82 +0,0 @@
<view class="page">
<view
class="page1"
style="background: url({{imageUrl}}za-images//cutaneous/home1.png?t={{Timestamp}}) no-repeat top center/100%;"
></view>
<view
class="page2"
style="background: url({{imageUrl}}za-images//cutaneous/home2.png?t={{Timestamp}}) no-repeat top center/100%;"
bind:tap="handleDetail"
data-id="2"
>
<image
class="mg-video"
src="{{imageUrl}}za-images//cutaneous/video1-1.png?t={{Timestamp}}"
data-key="mg"
data-index="0"
catch:tap="handleVideo"
></image>
</view>
<view
class="page3"
style="background: url({{imageUrl}}za-images//cutaneous/home3.png?t={{Timestamp}}) no-repeat top center/100%;"
bind:tap="handleDetail"
data-id="3"
>
<image class="cidp-mask" src="{{imageUrl}}za-images//cutaneous/cidp-mask.png?t={{Timestamp}}"></image>
<view class="cidp-list">
<image
class="cidp-item"
src="{{imageUrl}}za-images//cutaneous/video2-1.png?t={{Timestamp}}"
data-key="cidp"
data-index="0"
catch:tap="handleVideo"
></image>
<image
class="cidp-item"
src="{{imageUrl}}za-images//cutaneous/video2-2.png?t={{Timestamp}}"
data-key="cidp"
data-index="1"
catch:tap="handleVideo"
></image>
<image
class="cidp-item"
src="{{imageUrl}}za-images//cutaneous/video2-3.png?t={{Timestamp}}"
data-key="cidp"
data-index="2"
catch:tap="handleVideo"
></image>
<image
class="cidp-item"
src="{{imageUrl}}za-images//cutaneous/video2-4.png?t={{Timestamp}}"
data-key="cidp"
data-index="3"
catch:tap="handleVideo"
></image>
</view>
</view>
<view
class="page4"
style="background: url({{imageUrl}}za-images//cutaneous/home4.png?t={{Timestamp}}) no-repeat top center/100%;"
bind:tap="handleDetail"
data-id="4"
></view>
<view
class="page5"
style="background: url({{imageUrl}}za-images//cutaneous/home5.png?t={{Timestamp}}) no-repeat top center/100%;"
bind:tap="handleDetail"
data-id="5"
></view>
<image class="page6" bind:tap="handleVideoDetail" src="{{imageUrl}}za-images//cutaneous/home6.png?t={{Timestamp}}"></image>
</view>
<video
id="video"
src="{{videoUrl}}"
loop
show-play-btn
play-btn-position="center"
enable-play-gesture
bindfullscreenchange="handleFullScreen"
></video>

4
src/gift/pages/cutaneousDetail/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "皮下剂型",
"usingComponents": {}
}

11
src/gift/pages/cutaneousDetail/index.scss

@ -1,11 +0,0 @@
.page {
.card {
width: 100%;
display: block;
}
}
#video {
width: 0;
height: 0;
}

26
src/gift/pages/cutaneousDetail/index.ts

@ -1,26 +0,0 @@
const _app = getApp<IAppOption>()
Page({
data: {
list: {
2: ['2-1', '2-2', '2-3', '2-4'],
3: ['3-1', '3-2', '3-3', '3-4', '3-5'],
4: ['4-1', '4-2'],
5: ['5-1', '5-2', '5-3', '5-4', '5-5'],
},
curentList: [] as any,
},
onLoad(e) {
if (e.id) {
this.setData({
curentList: this.data.list[e.id],
})
} else {
this.setData({
curentList: this.data.list[2],
})
}
},
})
export {}

9
src/gift/pages/cutaneousDetail/index.wxml

@ -1,9 +0,0 @@
<view class="page">
<image
class="card"
mode="widthFix"
wx:for="{{curentList}}"
wx:key="index"
src="{{imageUrl}}za-images//cutaneous/{{item}}.png?t={{Timestamp}}"
></image>
</view>

4
src/gift/pages/cutaneousVideo/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "皮下剂型",
"usingComponents": {}
}

36
src/gift/pages/cutaneousVideo/index.scss

@ -1,36 +0,0 @@
page {
background: linear-gradient(218deg, #e8bbe7 0%, #ffedf6 26%, #ffedf6 100%);
}
.page {
padding: 408rpx 40rpx 0;
.container {
padding: 40rpx 32rpx 42rpx;
background-color: #fff;
border-radius: 32rpx;
.content {
font-size: 32rpx;
line-height: 2;
color: #002b48;
}
.tip {
margin-top: 28rpx;
font-size: 32rpx;
color: rgba(87,87,87,0.5);
}
}
.btn {
margin-top: 42rpx;
height: 92rpx;
font-size: 32rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(90deg, #dd406a 0%, #9039b0 100%);
border-radius: 112rpx 112rpx 112rpx 112rpx;
}
}
#video {
width: 0;
height: 0;
}

29
src/gift/pages/cutaneousVideo/index.ts

@ -1,29 +0,0 @@
Page({
data: {
videoUrl: 'https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20241214185_1.mp4',
},
videoContext: null as WechatMiniprogram.VideoContext | null,
onLoad() {
this.videoContext = wx.createVideoContext('video')
},
onUnload() {
if (this.videoContext) {
this.videoContext.stop()
}
},
handleVideo() {
if (this.videoContext) {
this.videoContext.play()
this.videoContext.requestFullScreen({
direction: 0,
})
}
},
handleFullScreen(e) {
if (!e.detail.fullScreen && this.videoContext) {
this.videoContext.stop()
}
},
})
export {}

16
src/gift/pages/cutaneousVideo/index.wxml

@ -1,16 +0,0 @@
<view
class="page"
style="background: url({{imageUrl}}za-images/cutaneous/video-bg.png?t={{Timestamp}}) no-repeat 0 60rpx/100% 648rpx;"
>
<view class="container">
<view class="content">
本视频仅用于专业医护人员或艾加莫德a注射液(皮下注射)已处方患者(或其护理者)在接受充分的皮下注射技术培训后自行注射艾加莫德a注射液(皮下注射);
本指导视频并不构成专业医疗建议、诊断或治疗的依据,请按照说明书并遵医嘱使用,切勿仅依赖本视频内容。
</view>
<view class="tip">*在观看视频前请阅读声明并确认您的身份</view>
</view>
<view class="btn btn1" bind:tap="handleVideo">我是专业医护人员</view>
<view class="btn btn2" bind:tap="handleVideo">我是卫力迦已处方患者(或其护理者)</view>
</view>
<video id="video" src="{{videoUrl}}" loop show-play-btn play-btn-position="center" enable-play-gesture bindfullscreenchange="handleFullScreen"></video>

7
src/gift/pages/giftDetail/index.json

@ -1,7 +0,0 @@
{
"navigationBarTitleText": "礼品详情",
"usingComponents": {
"van-stepper": "@vant/weapp/stepper/index",
"toast": "/components/toast/index"
}
}

185
src/gift/pages/giftDetail/index.scss

@ -1,185 +0,0 @@
.page {
background-color: #f9f9f9;
padding-bottom: 400rpx;
.banner {
width: 100%;
.banner-img {
display: block;
width: 100%;
height: 562rpx;
}
}
.container {
padding: 30rpx 40rpx;
.price {
display: flex;
align-items: baseline;
.num {
font-size: 56rpx;
color: #e04775;
font-weight: bold;
}
.sub {
font-size: 32rpx;
color: #e04775;
}
}
.title {
margin-top: 22rpx;
font-size: 36rpx;
color: #3f3f3f;
line-height: 48rpx;
font-weight: bold;
}
.list {
margin-top: 24rpx;
padding: 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
.list-title {
padding-bottom: 16rpx;
position: relative;
font-size: 36rpx;
color: #3f3f3f;
font-weight: bold;
&::before {
content: "";
position: absolute;
top: 0;
left: -32rpx;
width: 12rpx;
height: 44rpx;
background: #e04775;
border-radius: 0rpx 8rpx 8rpx 0rpx;
}
}
.list-img {
display: block;
width: 100%;
}
}
}
.footer {
padding: 30rpx 40rpx 40rpx;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
box-sizing: border-box;
background: #ffffff;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 0, 0, 0.26);
.options {
padding-bottom: 25rpx;
.row {
display: flex;
align-items: center;
.label {
margin-right: 24rpx;
flex-shrink: 0;
font-size: 32rpx;
color: #b6b7ba;
}
.radios {
display: flex;
overflow: auto;
&::-webkit-scrollbar {
display: none;
}
.radio {
margin-right: 16rpx;
border-radius: 8rpx;
border: 1px solid #d0d0d0;
line-height: 40rpx;
padding: 0 20rpx;
font-size: 28rpx;
color: #aaaaaa;
white-space: nowrap;
&.active {
background-color: #e04775;
border-color: #e04775;
color: #fff;
}
}
}
.stepper {
display: flex;
align-items: center;
.custom-class {
border: 1px solid #e5e5e5;
border-radius: 8rpx;
}
.input-class {
color: #3f3f3f;
font-weight: bold;
background-color: #ffffff;
margin: 0;
}
.plus-class,
.minus-class {
margin: 0;
background-color: #f8f8f8;
}
.minus-class {
border-right: 1px solid #d7d7d7;
}
.plus-class {
border-left: 1px solid #d7d7d7;
}
.status {
margin-left: 8rpx;
font-size: 32rpx;
color: #e1e1e1;
}
}
}
.row:not(:first-of-type) {
margin-top: 24rpx;
}
}
.module {
border-top: 1px solid #f2f2f2;
padding-top: 25rpx;
display: flex;
align-items: center;
justify-content: space-between;
.wrap {
.price {
display: flex;
align-items: baseline;
.sub {
font-size: 28rpx;
color: #e04775;
}
.num {
font-size: 40rpx;
color: #e04775;
font-weight: bold;
}
}
.doc {
display: flex;
align-items: center;
font-size: 24rpx;
color: #999999;
.checkbox {
transform: scale(0.7);
}
.a {
color: #e04775;
}
}
}
.submit {
width: 298rpx;
height: 96rpx;
background: #e04775;
border-radius: 48rpx;
font-size: 36rpx;
color: #ffffff;
line-height: 96rpx;
text-align: center;
}
}
}
}

150
src/gift/pages/giftDetail/index.ts

@ -1,150 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {},
specVecItem: {} as any,
num: 1,
allPrice: "",
toastShow: false,
toastType: "giftEnter",
toastParams: {
doc: "",
},
protocol: false,
},
onLoad(options) {
this.setData({
id: options.id,
toastParams: {
doc: `<p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">为让用户更好的享受再鼎gMG给力加油站的服务,gMG给力加油站平台向用户提供了能量兑换服务,并提供了丰富的礼品,平台注册用户可使用有效的能量兑换礼品。</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">gMG给力加油站的礼品库将提供:</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">1) </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">查看用户在能量商城选择兑换的商品信息;</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">2) </span><span style="color: rgb(89, 89, 8 ... (very long line, trimmed to 1000 chars)
// doc:` <p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">为让用户更好的享受再鼎gMG给力加油站的服务,gMG给力加油站平台向用户提供了能量兑换服务,并提供了丰富的礼品,平台注册用户可使用有效的能量兑换礼品。</span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">gMG给力加油站的礼品库将提供:</span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">1) </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">查看用户在能量商城选择兑换的商品信息;</span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">2) </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">确认兑换商品的订单信 ... (very long line, trimmed to 1000 chars)
},
});
app.waitLogin().then(() => {
this.setView();
this.getDetail();
this.getProtocol();
});
},
setView() {
wx.ajax({
method: "POST",
url: "?r=zd/gift-spu/set-visit-num",
data: { spuId: this.data.id },
showMsg: false,
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/gift-spu/get-detail",
data: {
spuId: this.data.id,
},
}).then((res) => {
this.setData({
detail: {
...res,
detailList: JSON.parse(res.detail),
},
specVecItem: res.specVec[0],
allPrice: res.specVec[0].score,
num: res.specVec[0].stock >= 1 ? 1 : 0,
});
});
},
getProtocol() {
wx.ajax({
method: "GET",
url: "?r=zd/agreement/get-user-agreement",
data: {},
}).then((res) => {
this.setData({
protocol: res,
});
});
},
setProtocol() {
wx.ajax({
method: "POST",
url: "?r=zd/agreement/set-user-agreement",
data: {},
});
},
handleSpec(e: any) {
const { index } = e.currentTarget.dataset;
const specVecItem: any = this.data.detail.specVec[index];
console.log(specVecItem.stock>=1)
this.setData({
specVecItem: specVecItem,
allPrice: specVecItem.score,
num: specVecItem.stock >= 1 ? 1 : 0,
});
},
onChangeNumber(e: any) {
this.setData({
num: e.detail,
allPrice: this.data.specVecItem.score * e.detail,
});
},
handleDoc() {
this.setData({
toastShow: true,
toastType: "giftEnter",
});
},
handleToastOk(e) {
if (!e.detail.protocol) {
wx.showToast({
title: "请先勾选《用户须知》",
icon: "none",
});
return;
}
this.setProtocol();
this.setData({
protocol: e.detail.protocol,
});
this.handleToastCancel();
},
handleToastCancel() {
this.setData({
toastShow: false,
toastType: "",
});
},
handleProtocol() {
if (!this.data.protocol) {
this.setProtocol();
}
this.setData({
protocol: !this.data.protocol,
});
},
handleSubmit() {
if (!this.data.protocol) {
wx.showToast({
icon: "none",
title: "请先同意《用户须知》",
});
return;
}
wx.ajax({
method: "POST",
url: "?r=zd/gift-order/place-order",
data: {
giftId: this.data.specVecItem.giftId,
count: this.data.num,
},
loading: true,
}).then((res) => {
wx.navigateTo({
url: `/gift/pages/conformOrder/index?id=${res}`,
});
});
},
});

80
src/gift/pages/giftDetail/index.wxml

@ -1,80 +0,0 @@
<view class="page">
<view class="banner">
<image class="banner-img" mode="aspectFill" src="{{detail.bigImg}}"></image>
</view>
<view class="container">
<view class="price">
<view class="num">{{specVecItem.score}}</view>
<view class="sub">能量</view>
</view>
<view class="title">{{detail.giftName}}</view>
<view class="list">
<view class="list-title">礼品详情</view>
<image class="list-img" mode="widthFix" wx:for="{{detail.detailList}}" wx:key="index" src="{{item.url}}"></image>
</view>
</view>
<view class="footer">
<view class="options">
<view class="row" wx:if="{{detail.specVec.length > 0 && detail.specVec[0].specName}}">
<view class="label">规格</view>
<view class="radios">
<view
class="radio {{specVecItem.giftId==item.giftId && 'active'}}"
wx:for="{{detail.specVec}}"
wx:key="index"
data-index="{{index}}"
bind:tap="handleSpec"
>
{{item.specName }}
</view>
</view>
</view>
<view class="row">
<view class="label">数量</view>
<view class="stepper">
<van-stepper
custom-class="custom-class"
value="{{ num }}"
min="{{0}}"
input-width="{{48}}"
input-class="input-class"
plus-class="plus-class"
minus-class="minus-class"
integer
disable-input
bind:change="onChangeNumber"
disable-plus="{{num>=specVecItem.stock}}"
/>
<view class="status" wx:if="{{num<=specVecItem.stock && specVecItem.stock>0 }}">有库存</view>
<view class="status" wx:else>无库存</view>
</view>
</view>
</view>
<view class="module">
<view class="wrap">
<view class="price">
<view class="sub">
合计
<text decode="true">&nbsp;</text>
</view>
<view class="num">{{allPrice}}</view>
</view>
<view class="doc">
<checkbox class="checkbox" checked="{{protocol}}" color="#DB3E6A" bind:tap="handleProtocol"></checkbox>
已阅读
<view class="a" bind:tap="handleDoc">《用户须知》</view>
</view>
</view>
<view class="submit" bind:tap="handleSubmit">立即兑换</view>
</view>
</view>
</view>
<toast
show="{{toastShow}}"
type="{{toastType}}"
params="{{toastParams}}"
bind:ok="handleToastOk"
bind:cancel="handleToastCancel"
></toast>

8
src/gift/pages/giftList/index.json

@ -1,8 +0,0 @@
{
"navigationBarTitleText": "礼品中心",
"navigationStyle": "custom",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index",
"navBar": "/components/zd-navBar/navBar"
}
}

185
src/gift/pages/giftList/index.scss

@ -1,185 +0,0 @@
page {
background-color: #f9f9f9;
}
.page {
.bg {
width: 100%;
height: 902rpx;
}
.page-container {
position: absolute;
left: 0;
top: 0;
width: 100%;
padding: 0 40rpx;
box-sizing: border-box;
padding-bottom: 200rpx;
.notice {
height: 44rpx;
background: linear-gradient(90deg, rgba(241, 241, 241, 0) 0%, #f1f1f1 52%, rgba(241, 241, 241, 0) 100%);
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
color: #3f3f3f;
.icon {
margin-right: 5rpx;
width: 30rpx;
height: 24rpx;
}
}
.banner {
margin-top: 16rpx;
background: #fafafa;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
border: 2rpx solid rgba(151, 151, 151, 0.14);
.banner-header {
padding: 32rpx 0 32rpx 32rpx;
display: flex;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
border-bottom: 2rpx solid rgba(151, 151, 151, 0.14);
display: flex;
.user {
width: 106rpx;
height: 106rpx;
border-radius: 50%;
}
.wrap {
flex: 1;
padding: 0 150rpx 0 22rpx;
.title {
font-size: 24rpx;
color: #3f3f3f;
}
.price {
font-size: 48rpx;
color: #3f3f3f;
font-weight: bold;
}
}
.rule {
font-size: 24rpx;
color: #ffffff;
width: 136rpx;
height: 44rpx;
background: #f5ab1f;
border-radius: 24rpx 0 0 24rpx;
text-align: center;
line-height: 44rpx;
font-weight: bold;
}
}
.banner-footer {
padding: 20rpx 0 28rpx;
display: flex;
justify-content: space-between;
align-items: center;
.ver-line {
width: 2rpx;
height: 40rpx;
background-color: rgba(221, 221, 221, 0.6);
}
.option {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
color: #484848;
font-weight: bold;
.icon {
margin-right: 22rpx;
width: 50rpx;
height: 50rpx;
}
}
}
}
.list {
margin-top: 48rpx;
.list-title {
margin-bottom: 20rpx;
width: 180rpx;
height: 40rpx;
}
.list-cate {
padding: 20rpx 0;
display: flex;
flex-wrap: nowrap;
max-width: 100vw;
box-sizing: border-box;
overflow-x: auto;
&::-webkit-scrollbar {
display: none;
}
.cate {
margin-right: 20rpx;
padding: 10rpx 24rpx;
white-space: nowrap;
line-height: 1;
font-size: 28rpx;
color: #484848;
background-color: #f2f2f2;
border-radius: 24rpx;
&.active {
color: #fff;
background-color: #e04775;
}
}
}
.list-container {
display: flex;
flex-wrap: wrap;
gap: 16rpx 22rpx;
.list-item {
margin-bottom: 16rpx;
width: 324rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
.photo {
border-radius: 24rpx 24rpx 0 0;
width: 100%;
height: 324rpx;
}
.content {
padding: 18rpx 20rpx 22rpx;
.title {
margin-top: 18rpx;
font-size: 32rpx;
color: #484848;
font-weight: bold;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.footer {
margin-top: 6rpx;
display: flex;
justify-content: space-between;
.price {
font-size: 28rpx;
color: #e04775;
}
.btn {
width: 100rpx;
height: 44rpx;
text-align: center;
line-height: 44rpx;
font-size: 24rpx;
color: #ffffff;
background: #e04775;
border-radius: 24rpx;
font-weight: bold;
}
}
}
}
}
}
}
}

114
src/gift/pages/giftList/index.ts

@ -1,114 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
bottom: 0,
selfScore: {
expire: {},
},
cateList: [],
cateId: "",
list: [],
pagination: {
page: 1,
pages: 1,
count: 1,
},
},
onLoad() {
const SystemInfo = app.globalSystemInfo;
if (SystemInfo) {
const { bottom } = SystemInfo.capsulePosition;
this.setData({
bottom: bottom,
});
}
app.waitLogin().then(() => {
app.getZdUserInfo(this, true);
this.getScore();
this.getList();
this.getCateList();
});
},
getScore() {
wx.ajax({
method: "GET",
url: "?r=zd/patient-score/get-self-score",
data: {},
}).then((res) => {
this.setData({
selfScore: res,
});
});
},
getCateList() {
wx.ajax({
method: "GET",
url: "?r=zd/gift-spu/get-cate-all-list",
data: {},
}).then((res) => {
this.setData({
cateList: res,
});
});
},
handleCate(e) {
const { id } = e.currentTarget.dataset;
this.setData({
cateId: id,
});
this.getList();
},
getList(newPage = 1) {
wx.ajax({
method: "POST",
url: `?r=zd/gift-spu/get-list&page=${newPage}`,
data: {
cateId: this.data.cateId ? [this.data.cateId] : [],
},
}).then((res) => {
let list = res.page == 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list: list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
handlePirceDetail() {
wx.navigateTo({
url: "/gift/pages/priceDetail/index",
});
},
handleMyGift() {
wx.navigateTo({
url: "/gift/pages/myGift/index",
});
},
handleDetail(e) {
const { id } = e.currentTarget.dataset;
wx.navigateTo({
url: `/gift/pages/giftDetail/index?id=${id}`,
});
},
handleRule() {
wx.navigateTo({
url: `/gift/pages/scoreRule/index`,
});
},
handleBack() {
wx.reLaunch({
url: "/patient/pages/my/index",
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
});

51
src/gift/pages/giftList/index.wxml

@ -1,51 +0,0 @@
<view class="page">
<navBar color="#222222" background="{{background}}" fixed title="礼品中心" back bind:back="handleBack"></navBar>
<image class="bg" src="{{imageUrl}}za-images/1/my-bg.png?t={{Timestamp}}"></image>
<view class="page-container" style="padding-top:{{bottom+26}}px">
<view class="notice" wx:if="{{selfScore.expire.expireStatus==1}}">
<image class="icon" src="{{imageUrl}}za-images/2/notice.png?t={{Timestamp}}"></image>
你有{{selfScore.expire.expireScore}}能量将于7月1日过期
</view>
<view class="banner">
<view class="banner-header">
<image class="user" src="{{zdUserInfo.UserImg}}"></image>
<view class="wrap">
<view class="title">我的能量</view>
<view class="price">{{selfScore.score}}</view>
</view>
<view class="rule" bind:tap="handleRule">能量规则</view>
</view>
<view class="banner-footer">
<view class="option" bind:tap="handlePirceDetail">
<image class="icon" style="width:52rpx;height: 50rpx;" src="{{imageUrl}}za-images/2/money.png?t={{Timestamp}}"></image>
能量明细
</view>
<view class="ver-line"></view>
<view class="option" bind:tap="handleMyGift">
<image class="icon" style="width:48rpx;height: 54rpx;" src="{{imageUrl}}za-images/2/gift.png?t={{Timestamp}}"></image>
我的礼品
</view>
</view>
</view>
<view class="list">
<image class="list-title" src="{{imageUrl}}za-images/2/gift-list-title.png?t={{Timestamp}}"></image>
<view class="list-cate">
<view class="cate {{!cateId && 'active'}}" data-id="" bind:tap="handleCate">全部</view>
<view class="cate {{cateId == item.cateId && 'active'}}" wx:for="{{cateList}}" wx:key="cateId" data-id="{{item.cateId}}" bind:tap="handleCate">{{item.cateName}}</view>
</view>
<view class="list-container">
<view class="list-item" wx:for="{{list}}" wx:key="index" data-id="{{item.spuId}}" bind:tap="handleDetail">
<image class="photo" src="{{item.bigImg}}"></image>
<view class="content">
<view class="title">{{item.giftName}}</view>
<view class="footer">
<view class="price">{{item.lowestScore}}能量</view>
<view class="btn">兑换</view>
</view>
</view>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>
</view>
</view>

4
src/gift/pages/myGift/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "我的礼品",
"usingComponents": {}
}

110
src/gift/pages/myGift/index.scss

@ -1,110 +0,0 @@
page {
background-color: #f7f7f7;
}
.page {
padding: 32rpx 40rpx;
.card {
margin-bottom: 16rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx;
.header {
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 32rpx;
border-bottom: 1px solid #ebebeb;
.on {
font-size: 28rpx;
color: #bbbcbe;
}
.status {
font-size: 28rpx;
color: #e04775;
}
.suc {
color: #24d8c8;
}
}
.shop {
padding: 32rpx 0;
display: flex;
align-items: center;
.shop-img {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
border-radius: 24rpx;
}
.wrap {
flex: 1;
padding-left: 24rpx;
.name {
font-size: 32rpx;
font-weight: bold;
color: #3f3f3f;
line-height: 44rpx;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.specification {
display: inline-block;
margin-top: 8rpx;
font-size: 28rpx;
color: #b6b7ba;
border-radius: 10rpx;
}
.price {
margin-top: 14rpx;
display: flex;
align-items: center;
justify-content: space-between;
.num {
font-size: 32rpx;
color: #e04775;
font-weight: bold;
.sub {
font-size: 22rpx;
}
}
.val {
font-size: 28rpx;
color: #b6b7ba;
}
}
}
}
.footer {
border-top: 1px solid #ebebeb;
padding-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
.content {
font-size: 28rpx;
color: #bbbcbe;
display: flex;
align-items: baseline;
.num {
font-size: 42rpx;
color: #e04775;
font-weight: bold;
}
}
.btn {
width: 152rpx;
height: 52rpx;
border-radius: 8rpx;
border: 1rpx solid rgba(158, 158, 158, 0.42);
font-size: 28rpx;
color: #3f3f3f;
text-align: center;
line-height: 52rpx;
}
}
}
}

48
src/gift/pages/myGift/index.ts

@ -1,48 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
list: [],
pagination: {
page: 1,
pages: 1,
count: 1,
},
},
onLoad() {
app.waitLogin().then(() => {
this.getList();
});
},
getList(newPage = 1) {
wx.ajax({
method: "POST",
url: "?r=zd/gift-order/get-order-list",
data: {
page: newPage,
},
}).then((res) => {
let list = res.page == 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list: list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
handleDetail(e: any) {
const { id } = e.currentTarget.dataset;
wx.navigateTo({
url: `/gift/pages/orderDetail/index?id=${id}`,
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
});

28
src/gift/pages/myGift/index.wxml

@ -1,28 +0,0 @@
<view class="page">
<view class="card" wx:for="{{list}}" wx:key="index" bind:tap="handleDetail" data-id="{{item.orderId}}">
<view class="header">
<view class="on">订单号:{{item.orderNo}}</view>
<view class="status" wx:if="{{item.status==2}}">{{item.statusName}}</view>
<view class="status suc" wx:else>{{item.statusName}}</view>
</view>
<view class="shop">
<image class="shop-img" src="{{item.giftBigImg}}"></image>
<view class="wrap">
<view class="name">{{item.giftName}}</view>
<view class="specification" wx:if="{{item.specName}}">规格:{{item.specName}}</view>
<view class="price">
<view class="num">{{item.giftScore}}<text class="sub">能量</text></view>
<view class="val">x{{item.orderCount}}</view>
</view>
</view>
</view>
<view class="footer">
<view class="content">
共{{item.orderCount}}件 消耗能量:
<view class="num">{{item.orderScore}}</view>
</view>
<view class="btn" wx:if="{{item.status==3}}">查看物流</view>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>

11
src/gift/pages/myHealthRecord/index.json

@ -1,11 +0,0 @@
{
"navigationBarTitleText": "我的健康记录",
"navigationStyle": "custom",
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"calendar": "/components/calendar/index",
"toast": "/components/toast/index",
"ec-canvas": "/components/ec-canvas/ec-canvas"
}
}

741
src/gift/pages/myHealthRecord/index.scss

@ -1,741 +0,0 @@
page {
background-color: rgba(250, 250, 250, 1);
min-height: 100vh;
padding-bottom: 200rpx;
}
.page {
padding: 0 40rpx 33rpx;
.calendar-wrap {
height: 80rpx;
overflow: hidden;
transition: all 0.5s;
.calendar {
margin: 0;
}
.legend {
margin-top: 30rpx;
display: flex;
> view:not(:last-of-type),
> image {
margin-right: 38rpx;
}
justify-content: flex-end;
.item {
display: flex;
align-items: center;
> view:not(:last-of-type),
> image {
margin-right: 11rpx;
}
font-size: 24rpx;
color: rgba(79, 79, 79, 1);
&::before {
margin-right: 10rpx;
content: "";
width: 16rpx;
height: 16rpx;
border-radius: 50%;
}
}
.drugs {
.icon {
width: 17rpx;
height: 24rpx;
}
font-size: 24rpx;
color: rgba(79, 79, 79, 1);
}
.item1 {
&::before {
background-color: rgba(207, 83, 117, 1);
}
}
.item2 {
&::before {
background-color: rgba(37, 217, 200, 1);
}
}
}
&.expend {
height: 600rpx;
}
}
.p-fold {
padding: 20rpx;
text-align: center;
}
.chart {
margin-top: 34rpx;
.c-header {
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 32rpx;
color: rgba(71, 71, 71, 1);
font-weight: bold;
}
.more {
font-size: 24rpx;
color: rgba(204, 204, 204, 1);
}
}
.c-container {
margin-top: 24rpx;
background-color: #fff;
border-radius: 24rpx;
border: 1rpx solid rgba(0, 0, 0, 0.1);
.c-header {
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
.c-nav {
overflow: hidden;
flex: 1;
display: flex;
.nav-item {
padding: 16rpx 0;
width: 80rpx;
text-align: center;
line-height: 42rpx;
font-size: 24rpx;
color: #666666;
font-weight: bold;
&.active {
position: relative;
color: #cf5375;
&::after {
position: absolute;
bottom: 0;
left: -5rpx;
content: "";
width: 90rpx;
height: 4rpx;
background: #cf5375;
}
}
}
}
.fill {
margin-right: 40rpx;
width: 24rpx;
height: 24rpx;
}
}
.c-content {
padding: 16rpx 0;
.search-num {
padding: 0 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
.col {
display: flex;
align-items: center;
.input {
font-size: 24rpx;
color: #666666;
border: 1px solid #ccc;
padding-left: 1em;
border-radius: 12rpx;
}
.btn {
margin-left: 20rpx;
padding: 4rpx 10rpx;
font-size: 24rpx;
color: #fff;
border-radius: 12rpx;
background-color: #e04775;
}
}
.all {
font-size: 24rpx;
color: rgba(79, 79, 79, 1);
}
}
.search {
padding: 0 36rpx 16rpx;
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
.date {
display: flex;
align-items: center;
font-size: 24rpx;
color: #666666;
.line {
margin: 0 10rpx;
}
.icon {
transform: rotate(90deg);
color: #666666;
}
}
.result {
font-size: 24rpx;
color: #666666;
display: flex;
align-items: center;
.icon {
margin-right: 9rpx;
width: 26rpx;
height: 30rpx;
}
.question {
width: 24rpx;
height: 24rpx;
}
}
}
.wrap {
padding: 0 36rpx;
.w-header {
padding-top: 32rpx;
display: flex;
justify-content: space-between;
.title {
font-size: 32rpx;
color: #484848;
}
.legend {
display: flex;
align-items: center;
gap: 25rpx;
.item {
font-size: 20rpx;
color: #4f4f4f;
display: flex;
align-items: center;
.logo {
margin-right: 8rpx;
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: #cf5375;
&.hormone {
background-color: #3192A1;
}
}
.icon {
margin-right: 8rpx;
width: 17rpx;
height: 24rpx;
}
}
}
}
.unit {
font-size: 22rpx;
color: #ccc;
margin-bottom: -40rpx;
}
.w-chart {
position: relative;
padding-top: 20rpx;
height: 500rpx;
.touch {
position: absolute;
z-index: 100;
width: 100%;
height: 250rpx;
}
.left {
position: absolute;
top: 180rpx;
left: -65rpx;
width: 56rpx;
height: 56rpx;
background: #ffffff;
box-shadow: 0rpx 6rpx 28rpx 0rpx rgba(0, 0, 0, 0.18);
border: 1rpx solid #e8e8e8;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
.icon {
width: 18rpx;
height: 28rpx;
}
}
.right {
position: absolute;
top: 180rpx;
right: -65rpx;
width: 56rpx;
height: 56rpx;
background: #ffffff;
box-shadow: 0rpx 6rpx 28rpx 0rpx rgba(0, 0, 0, 0.18);
border: 1rpx solid #e8e8e8;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
.icon {
width: 18rpx;
height: 28rpx;
}
}
}
}
.share {
padding: 40rpx 0 10rpx;
font-size: 24rpx;
color: #e04775;
display: flex;
justify-content: center;
align-items: center;
.icon {
margin-right: 8rpx;
width: 22rpx;
height: 22rpx;
}
}
}
}
}
.banner {
margin: 36rpx 0 0;
padding: 20rpx;
border-radius: 24rpx;
background-color: #e04775;
display: flex;
align-items: center;
justify-content: space-between;
.inner {
flex: 1;
font-size: 28rpx;
color: #fafafa;
}
.btn {
flex-shrink: 0;
width: 152rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
font-size: 28rpx;
color: #e04775;
background: #ffffff;
border-radius: 12rpx;
}
}
.tabs {
margin-top: 36rpx;
display: inline-flex;
background-color: #fff;
box-shadow: 0rpx 8rpx 32rpx 0rpx rgba(0, 0, 0, 0.13);
border-radius: 12rpx;
overflow: hidden;
.tab {
padding: 10rpx 20rpx;
line-height: 40rpx;
font-size: 28rpx;
color: #666666;
background-color: #fff;
&.active {
background-color: #e04775;
color: #fff;
}
&:nth-of-type(2) {
border: 1px solid #dddddd;
border-top: none;
border-bottom: none;
}
}
}
.detail {
margin-top: 34rpx;
.d-header {
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 32rpx;
color: rgba(71, 71, 71, 1);
font-weight: bold;
}
.more {
font-size: 24rpx;
color: rgba(204, 204, 204, 1);
}
}
.module {
margin-top: 30rpx;
.module-header {
display: flex;
.date {
flex-shrink: 0;
font-size: 24rpx;
color: #333333;
}
.tags {
margin-left: 14rpx;
flex: 1;
display: flex;
flex-wrap: nowrap;
overflow-x: scroll;
white-space: nowrap;
&::-webkit-scrollbar {
display: none;
}
.tag1 {
margin-left: 14rpx;
padding: 0 12rpx;
background: #d86687;
border-radius: 6rpx;
font-size: 24rpx;
line-height: 36rpx;
text-align: center;
color: #ffffff;
}
.tag2 {
margin-left: 14rpx;
padding: 0 12rpx;
background: #0b184f;
border-radius: 6rpx;
font-size: 24rpx;
line-height: 36rpx;
text-align: center;
color: #ffffff;
}
.tag3 {
margin-left: 14rpx;
padding: 0 12rpx;
background: #24d8c8;
border-radius: 6rpx;
font-size: 24rpx;
line-height: 36rpx;
text-align: center;
color: #ffffff;
}
}
}
.module-container {
margin-top: 24rpx;
display: flex;
.aside {
margin-right: 30rpx;
padding-left: 14rpx;
border-right: 1px dashed #dddddd;
}
.card {
flex: 1;
box-shadow: 0 4rpx 29rpx 0rpx rgba(207, 83, 116, 0.25);
border-radius: 24rpx;
.card-header {
padding: 20rpx 18rpx 4rpx 48rpx;
border-radius: 24rpx 24rpx 0 0;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 8rpx 8rpx 16rpx 0rpx rgba(143, 217, 226, 0.1);
&.grade1 {
background: linear-gradient(90deg, #26dac9 7%, rgba(143, 217, 226, 0) 70%, rgba(143, 217, 226, 0) 100%);
}
&.grade2 {
background: linear-gradient(
90deg,
rgba(235, 111, 87, 1) 7%,
rgba(143, 217, 226, 0) 70%,
rgba(143, 217, 226, 0) 100%
);
}
&.grade3 {
background: linear-gradient(
90deg,
rgba(207, 83, 117, 1) 7%,
rgba(143, 217, 226, 0) 70%,
rgba(143, 217, 226, 0) 100%
);
}
.num {
display: flex;
align-items: baseline;
font-size: 96rpx;
line-height: 1;
color: #ffffff;
letter-spacing: 4rpx;
.sub {
font-size: 24rpx;
color: #fff;
}
}
.num-detail {
display: flex;
.n-item {
width: 73rpx;
&.active {
.box {
background-color: #cf5375;
}
}
.box {
width: 45rpx;
height: 45rpx;
width: 45rpx;
height: 45rpx;
font-size: 32rpx;
color: #fff;
text-align: center;
line-height: 45rpx;
background: #333333;
border-radius: 12rpx 12rpx 12rpx 12rpx;
}
.name {
font-size: 24rpx;
line-height: 48rpx;
color: rgba(51, 51, 51, 0.5);
}
}
}
.status {
font-size: 24rpx;
color: #989898;
text-align: right;
.s-num {
font-size: 32rpx;
}
.s-core {
font-size: 24rpx;
color: #989898;
// background: #484848;
border-radius: 6rpx;
}
}
}
.card-container {
padding: 8rpx 23rpx 20rpx;
border-radius: 0 0 24rpx 24rpx;
background-color: #fff;
.cc-title {
text-indent: 22rpx;
font-size: 24rpx;
color: rgba(79, 79, 79, 1);
}
.cc-content {
margin-top: 12rpx;
padding: 16rpx 20rpx;
border-radius: 24rpx;
background-color: rgba(249, 249, 249, 1);
.line {
font-size: 24rpx;
color: #666666;
line-height: 36rpx;
.dot {
color: #666666;
font-weight: bold;
}
.red {
color: #cf5375;
}
.green {
color: #25d9c8;
}
}
}
.fold {
margin-top: 16rpx;
.fold-header {
display: flex;
justify-content: flex-end;
font-size: 24rpx;
color: rgba(204, 204, 204, 1);
}
.fold-container {
padding-top: 10rpx;
height: 500rpx;
overflow: hidden;
transition: all 0.5s;
&.hide {
padding: 0;
height: 0;
}
.fold-img {
width: 100%;
}
.scurt {
width: 100%;
border: 1px solid rgba(0, 0, 0, 0.1);
box-sizing: border-box;
.s-header {
display: flex;
height: 40rpx;
margin-bottom: -1px;
border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
.none {
flex-shrink: 0;
width: 226rpx;
background-color: rgba(228, 228, 228, 1);
}
.bar {
flex: 1;
display: flex;
.num {
flex: 1;
text-align: center;
font-size: 24rpx;
color: #fff;
line-height: 40rpx;
}
}
}
.s-body {
display: flex;
.s-aside {
width: 28rpx;
background-color: rgba(102, 102, 102, 0.15);
flex-shrink: 0;
.sa-item {
display: flex;
text-align: center;
justify-content: center;
align-items: center;
font-size: 18rpx;
color: rgba(102, 102, 102, 1);
line-height: 1;
overflow: hidden;
&:not(:last-of-type) {
margin-bottom: -1px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
}
.sa-item1 {
height: 158rpx;
}
.sa-item2 {
height: 54rpx;
}
.sa-item3 {
height: 106rpx;
}
.sa-item4 {
height: 108rpx;
}
}
.s-container {
flex: 1;
.sc-row {
display: flex;
height: 54rpx;
overflow: hidden;
.sc-title {
width: 198rpx;
font-size: 18rpx;
color: rgba(102, 102, 102, 1);
text-align: center;
line-height: 53rpx;
}
.sc-col {
margin-left: -1px;
border-left: 1px solid rgba(0, 0, 0, 0.1);
flex: 1;
text-align: center;
.icon {
margin-top: 11rpx;
width: 32rpx;
height: 32rpx;
}
}
}
.sc-row:not(:last-of-type) {
margin-bottom: -1px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.sc-row:nth-of-type(2n-1) {
background-color: rgba(217, 217, 217, 0.2);
}
}
}
}
}
}
}
}
.sub-card {
flex: 1;
padding: 14rpx 24rpx 14rpx 48rpx;
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(110deg, #2280d5 0%, #ffffff 60%, #ffffff 100%);
box-shadow: 0 4rpx 29rpx 0rpx rgba(207, 83, 116, 0.25);
border-radius: 24rpx;
.left {
font-size: 96rpx;
color: #fff;
line-height: 1;
.sub {
font-size: 24rpx;
}
}
.inner {
text-align: right;
.i-title {
font-size: 24rpx;
color: #989898;
.num {
font-size: 32rpx;
}
}
.sign {
font-size: 32rpx;
.num {
font-size: 40rpx;
}
}
.i-content {
font-size: 24rpx;
color: #989898;
}
}
}
.drug-card {
margin-top: 30rpx;
flex: 1;
box-shadow: 0 4rpx 29rpx 0rpx rgba(207, 83, 116, 0.25);
border-radius: 24rpx;
.d-header {
border-radius: 24rpx 0 0 0;
padding: 20rpx 50rpx;
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(95deg, #26dac9 7%, rgba(143, 217, 226, 0) 100%);
.name {
font-size: 28rpx;
color: #ffffff;
}
.status {
font-size: 22rpx;
color: #5b6363;
.num {
font-size: 22rpx;
color: #cf5375;
}
}
}
.content {
padding: 20rpx 50rpx;
font-size: 22rpx;
color: #666666;
}
}
}
}
}
.add {
position: fixed;
left: 50%;
bottom: 45rpx;
transform: translateX(-50%);
width: 152rpx;
height: 152rpx;
z-index: 10000;
}
}

1072
src/gift/pages/myHealthRecord/index.ts

File diff suppressed because it is too large Load Diff

392
src/gift/pages/myHealthRecord/index.wxml

@ -1,392 +0,0 @@
<view class="page">
<navBar back background="{{background}}" bind:back="handleBack" title="健康报告"></navBar>
<view class="calendar-wrap {{!fold && 'expend'}}">
<view class="calendar">
<calendar
bind:whenChangeMonth="handleWhenChangeMonth"
config="{{calendarConfig}}"
id="calendar"
bind:jumpToToday="toggleFold"
></calendar>
</view>
<view class="legend">
<view class="drugs" wx:if="{{theme === 'DRUG'}}">
<image class="icon" src="{{imageUrl}}za-images/double-standard/adl-cure.png?t={{Timestamp}}"></image>
用药
</view>
<view class="item item1">ADL评分异常</view>
<view class="item item2">正常测评</view>
</view>
</view>
<!-- <view class="p-fold" bind:tap="toggleFold"> -->
<!-- {{fold?'点击展开':'点击折叠'}} -->
<!-- <van-icon wx:if="{{fold}}" name="arrow-down" /> -->
<!-- <van-icon wx:else name="arrow-up" /> -->
<!-- </view> -->
<view class="chart">
<view class="c-container">
<view class="c-header">
<view class="c-nav">
<view class="nav-item {{Type==1 && 'active'}}" bind:tap="handleChangeType" data-type="1">日</view>
<view class="nav-item {{Type==2 && 'active'}}" bind:tap="handleChangeType" data-type="2">月度</view>
<view class="nav-item {{Type==3 && 'active'}}" bind:tap="handleChangeType" data-type="3">年度</view>
<view class="nav-item {{Type==4 && 'active'}}" bind:tap="handleChangeType" data-type="4">次数</view>
</view>
<image class="fill" bind:tap="handleChartDetail" src="{{imageUrl}}za-images/1/fillscreen.png?t={{Timestamp}}"></image>
</view>
<view class="c-content">
<view class="search-num" wx:if="{{Type==4}}">
<view class="col">
<input
class="input"
type="number"
maxlength="3"
model:value="{{Num}}"
placeholder="请输入评测次数"
confirm-type="search"
bind:input="handleChangeInput"
/>
<view class="btn" bind:tap="handleTabCallBack">搜索</view>
</view>
<view class="all">评测次数:{{count}}次</view>
</view>
<view class="search" wx:else>
<view class="date">
<picker
bindchange="handleChange"
class="start"
end="{{EndMonth}}"
fields="day"
mode="date"
model:value="{{BeginMonth}}"
>
{{BeginMonth}}
</picker>
<view class="line">-</view>
<picker
bindchange="handleChange"
class="end"
fields="day"
mode="date"
model:value="{{EndMonth}}"
start="{{BeginMonth}}"
>
{{EndMonth}}
</picker>
<van-icon class="icon" name="play" />
</view>
<view class="result" wx:if="{{defaultListLast.TotalScore <=1 && defaultListLast.SteroidDailyDose <=5}}">
<image class="icon" src="{{imageUrl}}za-images/double-standard/adl-success.png?t={{Timestamp}}"></image>
双达标达成!
</view>
</view>
<view class="wrap">
<view class="w-header">
<view class="title">ADL评分记录曲线</view>
<view class="legend">
<view class="item">
<view class="logo"></view>
ADL分数
</view>
<view class="item" wx:if="{{theme === 'DRUG'}}">
<image class="icon" src="{{imageUrl}}za-images/double-standard/adl-cure.png?t={{Timestamp}}"></image>
用药时间
</view>
</view>
</view>
<view class="w-chart">
<!-- <view class="left" bind:tap="touchend" data-type="left" wx:if="{{page>0}}"> -->
<!-- <image class="icon" src="{{imageUrl}}za-images/1/left.png?t={{Timestamp}}"></image> -->
<!-- </view> -->
<!-- <view class="right" bind:tap="touchend" data-type="right" wx:if="{{page < defaultList.length / 5 - 1}}"> -->
<!-- <image class="icon" src="{{imageUrl}}za-images/1/right.png?t={{Timestamp}}"></image> -->
<!-- </view> -->
<ec-canvas id="mychart-dom-bar" ec="{{ ec }}"></ec-canvas>
</view>
</view>
<view class="wrap">
<view class="w-header">
<view class="title">激素日用量记录曲线</view>
<view class="legend">
<view class="item">
<view class="logo hormone"></view>
激素用量
</view>
</view>
</view>
<view class="unit">单位(mg)</view>
<view class="w-chart">
<!-- <view class="left" bind:tap="touchend" data-type="left" wx:if="{{page>0}}"> -->
<!-- <image class="icon" src="{{imageUrl}}za-images/1/left.png?t={{Timestamp}}"></image> -->
<!-- </view> -->
<!-- <view class="right" bind:tap="touchend" data-type="right" wx:if="{{page < defaultList.length / 5 - 1}}"> -->
<!-- <image class="icon" src="{{imageUrl}}za-images/1/right.png?t={{Timestamp}}"></image> -->
<!-- </view> -->
<ec-canvas id="mychart-hormone" ec="{{ ec }}"></ec-canvas>
</view>
</view>
<view class="share" bind:tap="handleShare">
<image class="icon" src="{{imageUrl}}za-images/double-standard/adl-share.png?t={{Timestamp}}"></image>
分享“双达标”海报
</view>
</view>
</view>
<view class="banner" wx:if="{{alertAdl.days>=6 && alertAdl.days<=8 && (alertAdl.adl == 0 || alertAdl.days==6)}}">
<view class="inner" wx:if="{{alertAdl.days==6}}">
<view>今天是您用药后的第6天,</view>
<view>提醒您明天做1次MG-ADL测评</view>
</view>
<view class="inner" wx:if="{{alertAdl.days==7}}">
<view>今天是您用药后的第7天,</view>
<view>提醒您做1次MG-ADL测评</view>
</view>
<view class="inner" wx:if="{{alertAdl.days==8}}">
<view>用药后建议第7天完成MG-ADL测评</view>
<view>跟踪身体变化;</view>
<view>今天是用药后第8天,</view>
<view>提醒您做1次MG-ADL测评</view>
</view>
<view class="btn" wx:if="{{alertAdl.days==7}}" bind:tap="handleAdd">立即测评</view>
<view class="btn" wx:if="{{alertAdl.days==8}}" bind:tap="handleAdd">立即测评</view>
</view>
<view class="tabs" wx:if="{{theme === 'DRUG'}}">
<view class="tab {{tab==1 && 'active'}}" bind:tap="handleTab" data-index="1">综合报告</view>
<view class="tab {{tab==2 && 'active'}}" bind:tap="handleTab" data-index="2">双达标笔记</view>
<view class="tab {{tab==3 && 'active'}}" bind:tap="handleTab" data-index="3">用药记录</view>
</view>
<view class="detail">
<view class="d-header">
<view class="title" wx:if="{{tab==3}}">我的既往用药记录</view>
<view class="title" wx:else>我的既往评测报告</view>
<view class="more" bind:tap="handleFoldAll">
全部{{foldAll ? '展开':'收起'}}
<van-icon wx:if="{{foldAll}}" name="arrow-down" />
<van-icon wx:else name="arrow-up" />
</view>
</view>
<view class="module" wx:for="{{list}}" wx:key="index">
<view class="module-header">
<view class="date">{{item.CreateTime || item.InjectionDate}}</view>
<view class="tags">
<view class="tag1" wx:if="{{tab==1 && item.Type==1}}">MG-ADL</view>
<view class="tag2" wx:if="{{tab==1 && item.Type==2}}">用药记录</view>
<view class="tag3" wx:if="{{item.IsInsuranceProject==1}}">商保项目记录</view>
</view>
</view>
<view class="module-container">
<view class="aside"></view>
<view wx:if="{{tab!=3 && item.Type==1}}" style="flex: 1">
<view
class="card"
bind:tap="handleDetail"
bind:longpress="handleDel"
data-id="{{item.Id}}"
data-isi="{{item.IsInsuranceProject}}"
data-index="{{index}}"
>
<view class="card-header grade{{item.grade}}">
<view class="num">
{{item.TotalScore}}
<view class="sub">分</view>
</view>
<view class="num-detail" wx:if="{{tab==2}}">
<view class="n-item {{item.MedullaTypeScore >=7 && 'active'}}">
<view class="box">{{item.MedullaTypeScore}}</view>
<view class="name">延髓</view>
</view>
<view class="n-item {{item.BreathTypeScore>=3 && 'active'}}">
<view class="box">{{item.BreathTypeScore}}</view>
<view class="name">呼吸</view>
</view>
<view class="n-item {{item.LimbsTypeScore>=5 && 'active'}}">
<view class="box">{{item.LimbsTypeScore}}</view>
<view class="name">四肢</view>
</view>
<view class="n-item {{item.EyeTypeScore >=5 && 'active'}}">
<view class="box">{{item.EyeTypeScore}}</view>
<view class="name">眼睛</view>
</view>
</view>
<view class="status" wx:elif="{{item.UseDrugDays}}">
<view class="s-title">
用药后第
<text class="s-num">{{item.UseDrugDays}}</text>
天MG-ADL报告
</view>
<view class="s-core" wx:if="{{item.UseDrugSocreChange<0}}">身体状态有提升,继续关注哦~</view>
<view class="s-core" wx:if="{{item.UseDrugSocreChange==0}}">请持续观察,了解身体变化情况!</view>
<view class="s-core" wx:if="{{item.UseDrugSocreChange>0}}">请持续观察,了解身体变化情况!</view>
</view>
</view>
<view class="card-container">
<view class="cc-title">注意事项</view>
<view class="cc-content">
<view class="line" wx:if="{{item.TotalScore < 5}}">
1 总分
<text decode="true ">&lt;</text>
<text class="red">5分</text>
,日常请注意观察
</view>
<view class="line" wx:elif="{{item.TotalScore >= 5}}">
1 总分
<text decode="true ">&gt;=</text>
<text class="red">5分</text>
,您的症状控制欠佳,建议必要时就医
</view>
<block wx:if="{{item.LastTotalScore !== null}}">
<view class="line" wx:if="{{item.TotalScore - item.LastTotalScore < 0 }}">
2 较上次得分变化
<text class="green">{{item.TotalScore - item.LastTotalScore }},有进步,加油!</text>
</view>
<view class="line" wx:elif="{{item.TotalScore - item.LastTotalScore == 0 }}">
2 与上次得分一致,请继续保持
</view>
<view class="line" wx:elif="{{item.TotalScore - item.LastTotalScore == 1 }}">
2 较上次得分变化
<text class="red">+{{item.TotalScore - item.LastTotalScore }},请继续关注!</text>
</view>
<view class="line" wx:elif="{{item.TotalScore - item.LastTotalScore >= 0 }}">
2 较上次得分变化
<text class="red">+{{item.TotalScore - item.LastTotalScore }},需要重点关注!</text>
</view>
</block>
<view class="line" wx:if="{{item.EyeTypeScore / item.TotalScore < 0.5}}">
{{item.LastTotalScore === null ? 2 : 3}} 您的眼肌类占比
<text decode="true ">&lt;</text>
50%,以全身症状为主,应注意休息警惕病情加重
</view>
<view class="line" wx:elif="{{item.EyeTypeScore / item.TotalScore > 0.5}}">
{{item.LastTotalScore === null ? 2 : 3}} 您的眼肌类占比
<text decode="true ">&gt;</text>
50%,危象风险不高,请继续关注
</view>
<view class="line" wx:elif="{{item.EyeTypeScore / item.TotalScore == 0.5}}">
{{item.LastTotalScore === null ? 2 : 3}} 您的眼肌类占比=50%,危象风险不高,请继续关注
</view>
</view>
<view class="fold" wx:if="{{item.ResultsImgUrl}}">
<view class="fold-header" catch:tap="handleFold" data-index="{{index}}">
{{item.fold ? '展开':'收起'}}详细评测报告
<van-icon name="arrow-{{!item.fold ? 'up' : 'down'}}" />
</view>
<view class="fold-container {{item.fold && 'hide'}}">
<!-- <image class="fold-img" mode="widthFix" src="{{item.ResultsImgUrl}}" show-menu-by-longpress></image> -->
<view class="scurt">
<view class="s-header">
<view class="none"></view>
<view
class="bar"
style="background: url({{imageUrl}}za-images//1/adl-scurt.png?t={{Timestamp}}) no-repeat center / 100% 100% ;"
>
<view class="num">0分</view>
<view class="num">1分</view>
<view class="num">2分</view>
<view class="num">3分</view>
</view>
</view>
<view class="s-body">
<view class="s-aside">
<view class="sa-item sa-item1">延髓</view>
<view class="sa-item sa-item2">呼吸</view>
<view class="sa-item sa-item3">四肢</view>
<view class="sa-item sa-item4">眼肌</view>
</view>
<view class="s-container">
<view class="sc-row" wx:for="{{tableData}}" wx:for-item="subItem" wx:key="index">
<view class="sc-title">{{subItem.title}}</view>
<view class="sc-col">
<image
wx:if="{{item[subItem.key] == 0}}"
class="icon"
src="{{imageUrl}}za-images/1/adl-scurt-icon.png?t={{Timestamp}}"
></image>
</view>
<view class="sc-col">
<image
wx:if="{{item[subItem.key] == 1}}"
class="icon"
src="{{imageUrl}}za-images/1/adl-scurt-icon.png?t={{Timestamp}}"
></image>
</view>
<view class="sc-col">
<image
wx:if="{{item[subItem.key] == 2}}"
class="icon"
src="{{imageUrl}}za-images/1/adl-scurt-icon.png?t={{Timestamp}}"
></image>
</view>
<view class="sc-col">
<image
wx:if="{{item[subItem.key] == 3}}"
class="icon"
src="{{imageUrl}}za-images/1/adl-scurt-icon.png?t={{Timestamp}}"
></image>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view
class="drug-card"
wx:if="{{item.SteroidDailyDose}}"
bind:tap="handleDetail"
bind:longpress="handleDel"
data-id="{{item.Id}}"
data-isi="{{item.IsInsuranceProject}}"
data-index="{{index}}"
>
<view class="d-header">
<view class="name">激素用量</view>
<view class="status">
本次激素用量为
<text class="num">{{item.SteroidDailyDose}}mg</text>
/天
</view>
</view>
<view class="content" wx:if="{{item.SteroidDailyDose>5}}">距离达标还需努力,请遵医嘱规律治疗</view>
<view class="content" wx:else>恭喜达标,您的激素用量已少于95% 的患友</view>
</view>
</view>
<view
class="sub-card"
wx:elif="{{tab!=2 && item.Type==2}}"
bind:tap="handleDetailDrug"
bind:longpress="handleDelDrug"
data-id="{{item.Id}}"
data-isi="{{item.IsInsuranceProject}}"
data-index="{{index}}"
>
<view class="left">
{{item.InjectionBottles}}
<text class="sub">瓶</text>
</view>
<view class="inner">
<view class="i-title {{!item.DaysSinceLastInjection && 'sign'}}">
您的第
<text class="num" wx:if="{{item.Times}}">{{item.Times}}</text>
次用药
</view>
<view class="i-content" wx:if="{{item.DaysSinceLastInjection}}">
距离上次用药间隔:{{item.DaysSinceLastInjection}}天
</view>
</view>
</view>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>
</view>
<image class="add" bind:tap="handleAdd" src="{{imageUrl}}za-images/1/adl-add.png?t={{Timestamp}}"></image>
<!-- <image -->
<!-- class="add" -->
<!-- wx:if="{{tab==3}}" -->
<!-- bind:tap="handleAddDrug" -->
<!-- src="{{imageUrl}}za-images/1.5/adl-add.png?t={{Timestamp}}" -->
<!-- ></image> -->
<!-- <image class="add" wx:else bind:tap="handleAdd" src="{{imageUrl}}za-images/1/adl-add.png?t={{Timestamp}}"></image> -->
</view>

11
src/gift/pages/myHealthRecordChart/index.json

@ -1,11 +0,0 @@
{
"navigationBarTitleText": "我的健康记录",
"pageOrientation":"landscape",
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"calendar": "/components/calendar/index",
"toast": "/components/toast/index",
"ec-canvas": "/components/ec-canvas/ec-canvas"
}
}

14
src/gift/pages/myHealthRecordChart/index.scss

@ -1,14 +0,0 @@
page {
min-height: 100vh;
}
.page {
width: 100vw;
height: 100vh;
box-sizing: border-box;
padding: 20rpx;
#mychart-dom-bar {
width: 100%;
height: 100%;
}
}

287
src/gift/pages/myHealthRecordChart/index.ts

@ -1,287 +0,0 @@
/* eslint-disable */
const app = getApp<IAppOption>()
const licia = require('miniprogram-licia')
import dayjs from 'dayjs'
let echarts: any = null
Page({
data: {
ec: {
lazyLoad: true,
},
foldAll: true,
BeginMonth: '',
EndMonth: '',
Type: '1',
Num: '' as string | number,
fields: {
1: 'day',
2: 'month',
3: 'year',
},
detail: {},
partNameList: app.globalData.partNameList,
list: [],
defaultList: [],
count: 0,
zdUserInfo: {},
todayBg: '',
selectLegends: {},
page: 0,
safeAreaLeft: 20,
theme: '',
},
ecDataTrendComponent: null as any,
async onLoad() {
app.zdGetTheme().then((res) => {
this.setData({
theme: res,
})
})
const that = this
that.getSystemInfo()
echarts = await require.async('../../compontnts/echart/echarts.js')
that.ecDataTrendComponent = that.selectComponent('#mychart-dom-bar')
const eventChannel = that.getOpenerEventChannel()
eventChannel.on('acceptDataFromOpenerPage', function (data) {
console.log(data)
that.setData({
defaultList: data.list,
selectLegends: { ...data.selectLegends },
zdUserInfo: app.globalData.zdUserInfo,
})
that.initChart(data.list)
})
that.initChart(that.data.defaultList as any)
},
initChart(defaultList = []) {
const { selectLegends, theme } = this.data
// const list = defaultList.slice(page * 15, (page + 1) * 8);
const list = defaultList
this.ecDataTrendComponent.init((canvas, width, height, dpr) => {
let chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr, // new
})
canvas.setChart(chart)
var option = {
dataZoom: [
{
type: 'inside', // 内置于坐标系中
// start: 0,
// end: 15,
startValue: 0,
endValue: 15,
xAxisIndex: [0],
},
],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
confine: true,
backgroundColor: 'rgba(0, 0, 0, 0.5)',
textStyle: {
color: '#fff',
fontSize: 10,
},
order: 'seriesDesc',
},
legend: {
bottom: 0,
padding: 0,
itemGap: 5,
itemWidth: 8,
itemHeight: 8,
icon: 'circle',
selected: selectLegends,
},
grid: {
top: '5',
left: '0',
right: '0',
bottom: '15',
containLabel: true,
},
xAxis: [
{
type: 'category',
axisTick: {
show: false,
},
axisLine: {
lineStyle: {
color: '#8C8C8C',
type: 'dashed',
},
},
axisLabel: {
//x轴文字的配置
show: true,
interval: 0, //使x轴文字显示全
rotate: -20,
},
data: list.map((item) => item.Date),
},
],
yAxis: [
{
type: 'value',
},
],
series: [
{
name: '延髓',
type: 'bar',
stack: 'Ad',
emphasis: {
disabled: true,
focus: 'none',
},
data: list.map((item) => item.MedullaTypeScore * 1),
barWidth: '16',
itemStyle: {
// borderColor: "#fff",
// borderWidth: 2,
color: '#7FBDA6',
},
},
{
name: '呼吸',
type: 'bar',
stack: 'Ad',
emphasis: {
disabled: true,
focus: 'none',
},
data: list.map((item) => item.BreathTypeScore * 1),
itemStyle: {
// borderColor: "#fff",
// borderWidth: 2,
color: '#F1CE8F',
},
},
{
name: '肢体',
type: 'bar',
stack: 'Ad',
emphasis: {
disabled: true,
focus: 'none',
},
data: list.map((item) => item.LimbsTypeScore * 1),
itemStyle: {
// borderColor: "#fff",
// borderWidth: 2,
color: '#9ED0DE',
},
},
{
name: '眼肌',
type: 'bar',
stack: 'Ad',
emphasis: {
disabled: true,
focus: 'none',
},
data: list.map((item) => item.EyeTypeScore * 1),
itemStyle: {
// borderColor: "#fff",
// borderWidth: 2,
color: '#D37862',
},
},
{
name: '总分',
data: list.map((item) => item.TotalScore),
type: 'line',
symbol: 'circle',
connectNulls: true,
itemStyle: {
color: '#CF5375',
},
},
],
// dataZoom: {
// show: true, // 为true 滚动条出现
// realtime: true,
// type: "slider", // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。
// height: 20, // 表示滚动条的高度,也就是粗细
// start: 20, // 表示默认展示20%~80%这一段。
// end: 80,
// },
}
if (theme === 'DRUG') {
let markLineData = list
.filter((item) => item.InjectionBottles)
.map((item) => {
return {
name: '',
xAxis: item.Date,
lineStyle: {
color: '#25D9C8',
cap: '',
type: 'solid',
},
label: {
formatter: '',
position: 'insideEndBottom',
rotate: 0,
color: '#25D9C8',
offset: [60, 0],
},
}
})
option.series.push({
name: '用药',
data: list.map((item) => item.InjectionBottles),
type: 'line',
symbol: 'none',
itemStyle: {
color: '#25D9C8',
},
lineStyle: {
width: 0,
},
markLine: {
symbol: ['none', 'none'],
data: markLineData,
},
})
}
chart.setOption(option)
return chart
})
},
getSystemInfo() {
wx.getSystemInfo({
success: (res) => {
this.setData({
safeAreaLeft: res.safeArea.left || 20,
})
},
})
},
onShareAppMessage() {
return {
title: 'MG-ADL测评表:评估重症肌无力患者症状对生活质量的影响',
path: '/patient/pages/adl/index',
}
},
})

4
src/gift/pages/myHealthRecordChart/index.wxml

@ -1,4 +0,0 @@
<view class="page" style="padding-left: {{safeAreaLeft}}px;">
<!-- <navBar back background="transparent" bind:back="handleBack" title="" fixed></navBar> -->
<ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</view>

4
src/gift/pages/orderDetail/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "订单详情",
"usingComponents": {}
}

129
src/gift/pages/orderDetail/index.scss

@ -1,129 +0,0 @@
page {
background-color: #f7f7f7;
}
.page {
padding: 40rpx;
.status-line {
display: flex;
align-items: center;
justify-content: center;
font-size: 40rpx;
color: #e04775;
font-weight: bold;
.icon {
margin-right: 16rpx;
width: 48rpx;
height: 50rpx;
}
}
.site {
margin-top: 26rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx;
display: flex;
align-items: center;
.icon {
margin-right: 16rpx;
flex-shrink: 0;
width: 44rpx;
height: 44rpx;
}
.wrap {
.title {
font-size: 32rpx;
font-weight: bold;
color: #3f3f3f;
}
.content {
margin-top: 12rpx;
font-size: 28rpx;
color: #bebfc1;
}
}
}
.shop {
margin-top: 16rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx;
display: flex;
align-items: center;
.shop-img {
flex-shrink: 0;
width: 204rpx;
height: 204rpx;
border-radius: 24rpx;
}
.wrap {
flex: 1;
padding-left: 24rpx;
.name {
font-size: 32rpx;
font-weight: bold;
color: #3f3f3f;
line-height: 44rpx;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.specification {
display: inline-block;
margin-top: 8rpx;
font-size: 28rpx;
color: #b6b7ba;
border-radius: 10rpx;
}
.price {
margin-top: 14rpx;
display: flex;
align-items: center;
justify-content: space-between;
.num {
font-size: 32rpx;
color: #e04775;
font-weight: bold;
.sub {
font-size: 22rpx;
}
}
.val {
font-size: 28rpx;
color: #b6b7ba;
}
}
}
}
.detail {
margin-top: 16rpx;
padding: 8rpx 32rpx;
background: #ffffff;
border-radius: 24rpx;
.row {
padding: 24rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
.label {
font-size: 28rpx;
color: #bbbcbe;
}
.content {
padding-left: 46rpx;
flex: 1;
font-size: 28rpx;
color: #3f3f3f;
font-weight: bold;
&.yellow {
color: #f5ad1d;
}
}
}
.row:not(:first-of-type) {
border-top: 1rpx solid #ebebeb;
}
}
}

29
src/gift/pages/orderDetail/index.ts

@ -1,29 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {},
},
onLoad(options) {
this.setData({
id: options.id,
});
app.waitLogin().then(() => {
this.getDetail();
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/gift-order/get-order-detail",
data: {
orderId: this.data.id,
},
}).then((res) => {
this.setData({
detail: res,
});
});
},
});

54
src/gift/pages/orderDetail/index.wxml

@ -1,54 +0,0 @@
<view class="page">
<view class="status-line">
<image class="icon" src="{{imageUrl}}za-images/2/order-status1.png?t={{Timestamp}}"></image>
{{detail.statusName}}
</view>
<view class="site">
<image class="icon" src="{{imageUrl}}za-images/2/order-site.png?t={{Timestamp}}"></image>
<view class="wrap">
<view class="title">{{detail.receiveUserName}} {{detail.receiveTelephone}}</view>
<view class="content">{{detail.receiveAddress}}</view>
</view>
</view>
<view class="shop">
<image class="shop-img" src="{{detail.giftBigImg}}"></image>
<view class="wrap">
<view class="name">{{detail.giftName}}</view>
<view class="specification" wx:if="{{detail.specName}}">规格:{{detail.specName}}</view>
<view class="price">
<view class="num">{{detail.giftScore}}<text class="sub">能量</text></view>
<view class="val">x{{detail.orderCount}}</view>
</view>
</view>
</view>
<view class="detail">
<view class="row">
<view class="label">消耗能量</view>
<view class="content">{{detail.orderScore}}</view>
</view>
<view class="row">
<view class="label">订单编号</view>
<view class="content">{{detail.orderNo}}</view>
</view>
<view class="row">
<view class="label">客服电话</view>
<view class="content">{{detail.serviceTel}}</view>
</view>
<view class="row">
<view class="label">创建时间</view>
<view class="content">{{detail.orderTime}}</view>
</view>
<view class="row" wx:if="{{detail.status==3}}">
<view class="label">发货时间</view>
<view class="content">{{detail.sendTime}}</view>
</view>
<view class="row" wx:if="{{detail.status==3}}">
<view class="label">物流公司</view>
<view class="content">{{detail.logisticsCompany}}</view>
</view>
<view class="row" wx:if="{{detail.status==3}}">
<view class="label">物流单号</view>
<view class="content">{{detail.logisticsOrderNo}}</view>
</view>
</view>
</view>

4
src/gift/pages/orderEnd/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "下单成功",
"usingComponents": {}
}

40
src/gift/pages/orderEnd/index.scss

@ -1,40 +0,0 @@
.page {
text-align: center;
.content-img {
margin-top: 196rpx;
width: 454rpx;
height: 356rpx;
}
.title {
margin-top: -80rpx;
font-size: 44rpx;
color: #e04775;
font-weight: bold;
}
.order-no {
margin-top: 16rpx;
font-size: 28rpx;
color: #9b9ea6;
}
.detail-btn-bd {
margin: 64rpx auto 0;
width: 422rpx;
height: 96rpx;
background: #fff;
border-radius: 48rpx;
line-height: 96rpx;
font-size: 36rpx;
color: #e04775;
border: 4rpx solid #e04775;
}
.detail-btn {
margin: 64rpx auto 0;
width: 422rpx;
height: 96rpx;
background: #e04775;
border-radius: 48rpx;
line-height: 96rpx;
font-size: 36rpx;
color: #ffffff;
}
}

39
src/gift/pages/orderEnd/index.ts

@ -1,39 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {},
},
onLoad(options) {
this.setData({
id: options.id,
});
app.waitLogin().then(() => {
this.getDetail();
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/gift-order/get-order-detail",
data: {
orderId: this.data.id,
},
}).then((res) => {
this.setData({
detail: res,
});
});
},
handleDetail() {
wx.navigateTo({
url: `/gift/pages/orderDetail/index?id=${this.data.id}`,
});
},
handleGift() {
wx.navigateTo({
url: `/gift/pages/giftList/index`,
});
},
});

7
src/gift/pages/orderEnd/index.wxml

@ -1,7 +0,0 @@
<view class="page">
<image class="content-img" src="{{imageUrl}}za-images/2/order-end.png?t={{Timestamp}}"></image>
<view class="title">下单成功</view>
<view class="order-no">订单号:{{detail.orderNo}}</view>
<view class="detail-btn-bd" bind:tap="handleDetail">查看订单详情</view>
<view class="detail-btn" bind:tap="handleGift">返回礼品中心</view>
</view>

4
src/gift/pages/priceDetail/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "能量明细",
"usingComponents": {}
}

78
src/gift/pages/priceDetail/index.scss

@ -1,78 +0,0 @@
page {
background-color: #fafafa;
}
.page {
padding: 48rpx 40rpx 120rpx;
.banner {
position: relative;
padding: 46rpx 48rpx;
background-color: #e6658d;
border-radius: 24rpx;
.title {
font-size: 28rpx;
color: #ffffff;
}
.num {
font-size: 64rpx;
color: 1897;
font-weight: bold;
color: #fff;
}
.icon{
position: absolute;
top: 40rpx;
right: 40rpx;
width: 124rpx;
height: 122rpx;
}
}
.list {
margin-top: 48rpx;
.list-title {
font-size: 36rpx;
color: #3f3f3f;
&::before {
margin-right: 16rpx;
display: inline-block;
content: "";
width: 12rpx;
height: 44rpx;
background: #e04775;
vertical-align: middle;
border-radius: 0rpx 8rpx 8rpx 0rpx;
}
}
.list-container {
padding: 0 30rpx;
margin-top: 20rpx;
background: #ffffff;
border-radius: 24rpx;
.row {
padding: 30rpx 0;
display: flex;
justify-content: space-between;
.wrap {
.title {
font-size: 32rpx;
color: #3f3f3f;
}
.date {
font-size: 28rpx;
color: #bbbcbe;
}
}
.price {
margin-left: 10rpx;
flex-shrink: 0;
font-size: 40rpx;
color: #f5ad1d;
}
}
.row:not(:last-of-type) {
border-bottom: 1px solid #ebebeb;
}
}
}
}

53
src/gift/pages/priceDetail/index.ts

@ -1,53 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
score: 0,
list: [],
pagination: {
page: 1,
pages: 1,
count: 1,
},
},
onLoad() {
app.waitLogin().then(() => {
this.getList();
this.getDetail()
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/patient-score/get-self-score",
data: {},
}).then((res) => {
this.setData({
score: res.score,
});
});
},
getList(newPage = 1) {
wx.ajax({
method: "GET",
url: "?r=zd/patient-score/get-self-record-list",
data: { page: newPage },
}).then((res) => {
let list = res.page == 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list: list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
});

26
src/gift/pages/priceDetail/index.wxml

@ -1,26 +0,0 @@
<view class="page">
<view
class="banner"
style="background: url({{imageUrl}}za-images//2/price-detail-banner-bg.png?t={{Timestamp}}) no-repeat top center / 100%;"
>
<view class="title">当前能量</view>
<view class="num">{{score}}</view>
<image class="icon" src="{{imageUrl}}za-images/2/big-money.png?t={{Timestamp}}"></image>
</view>
<view class="list">
<view class="list-title">能量收支明细</view>
<view class="list-container">
<view class="row" wx:for="{{list}}" wx:key="index">
<view class="wrap">
<view class="title">
{{item.recordTypeName}}
<block wx:if="{{item.recordType==51}}">:{{item.giftName}}</block>
</view>
<view class="date">{{item.createTime}}</view>
</view>
<view class="price">{{item.scoreChange}}</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>
</view>
</view>

7
src/gift/pages/scoreRule/index.json

@ -1,7 +0,0 @@
{
"navigationBarTitleText": "能量规则",
"navigationStyle": "custom",
"usingComponents": {
"navBar": "/components/zd-navBar/navBar"
}
}

139
src/gift/pages/scoreRule/index.scss

@ -1,139 +0,0 @@
page {
background-color: #f5f5f5;
}
.page {
padding: 200rpx 40rpx 80rpx;
.banner {
position: relative;
.b-title {
position: absolute;
left: 50%;
top: 0;
transform: translate(-50%, -50%);
width: 310rpx;
height: 86rpx;
}
.b-content {
padding: 72rpx 30rpx 36rpx;
background: #fbf0f3;
box-shadow: 0rpx 14rpx 32rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
border: 2rpx solid rgba(224, 71, 117, 0.52);
}
}
.list {
margin-top: 78rpx;
padding: 76rpx 30rpx;
background: #ffffff;
box-shadow: 0rpx 14rpx 32rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
position: relative;
.l-title {
position: absolute;
left: 50%;
top: 0;
transform: translate(-50%, -50%);
width: 310rpx;
height: 86rpx;
}
.l-tip {
font-size: 32rpx;
color: #333333;
font-weight: bold;
}
.module {
.m-title {
position: relative;
margin: 26rpx 96rpx 0 16rpx;
line-height: 60rpx;
padding: 0 24rpx;
background: linear-gradient(270deg, rgba(242, 125, 173, 0) 0%, rgba(224, 71, 117, 0.87) 57%, #e04775 100%);
font-size: 28rpx;
color: #ffffff;
font-weight: bold;
.num {
position: absolute;
left: 0;
top: 0;
transform: translate(-100%, 0);
width: 60rpx;
height: 60rpx;
background-color: #24d8c8;
text-align: center;
line-height: 60rpx;
&::before {
position: absolute;
top: -6rpx;
left: 0;
content: "";
width: 0;
height: 0;
border-style: solid;
border-width: 0 0 6rpx 14rpx;
border-color: transparent transparent #007167 transparent;
}
}
}
.m-content {
margin-top: 24rpx;
padding: 32rpx 30rpx;
font-size: 28rpx;
color: #666666;
border-radius: 16rpx;
background-color: #f5f5f5;
}
.ul {
.ol {
margin-top: 34rpx;
font-size: 28rpx;
color: #666666;
.o-title {
font-size: 28rpx;
color: #666666;
font-weight: bold;
margin-bottom: 12rpx;
display: flex;
.o-num {
margin-right: 12rpx;
flex-shrink: 0;
width: 34rpx;
height: 34rpx;
font-size: 24rpx;
color: #ffffff;
background-color: #e04775;
text-align: center;
line-height: 34rpx;
border-radius: 50%;
}
}
&.no-title {
display: flex;
}
}
}
}
.tip {
margin-top: 32rpx;
.t-title {
font-size: 32rpx;
color: #666666;
font-weight: bold;
line-height: 1;
&::before {
margin-right: 16rpx;
display: inline-block;
vertical-align: middle;
content: "";
width: 10rpx;
height: 34rpx;
background-color: #e04775;
}
}
.t-content {
margin-top: 10rpx;
font-size: 28rpx;
color: #666666;
}
}
}
}

33
src/gift/pages/scoreRule/index.ts

@ -1,33 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
list: [],
},
onLoad() {
const SystemInfo = app.globalSystemInfo;
if (SystemInfo) {
const { bottom } = SystemInfo.capsulePosition;
this.setData({
bottom: bottom,
});
}
app.waitLogin().then(() => {
this.getDetail();
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/patient-score/get-score-explain",
data: {},
}).then((res) => {
this.setData({
list: res,
});
});
},
handleBack() {
wx.navigateBack();
},
});

59
src/gift/pages/scoreRule/index.wxml

@ -1,59 +0,0 @@
<view class="page" style="background:url({{imageUrl}}za-images/2/score-rule-bg.png?t={{Timestamp}}) no-repeat top center / 100%">
<navBar fixed title="" home="{{false}}" back bind:back="handleBack"></navBar>
<view class="page-container" style="padding-top:{{bottom+26}}px">
<view class="banner">
<image class="b-title" src="{{imageUrl}}za-images/2/score-rule-title1.png?t={{Timestamp}}"></image>
<view class="b-content">{{ list[0].content }}</view>
</view>
<view class="list">
<image class="l-title" src="{{imageUrl}}za-images/2/score-rule-title2.png?t={{Timestamp}}"></image>
<view class="l-tip">{{list[1].content}}</view>
<view class="module" wx:for="{{list[1].children}}" wx:key="index">
<view class="m-title">
<view class="num">{{index+1}}</view>
{{item.title}}
</view>
<view class="m-content" wx:if="{{item.content}}">{{item.content}}</view>
<view class="ul" wx:if="{{item.children.length}}">
<view
class="ol {{!subItem.title && 'no-title'}}"
wx:for="{{item.children}}"
wx:for-item="subItem"
wx:for-index="subIndex"
wx:key="subIndex"
>
<view class="o-title">
<view class="o-num">{{subIndex+1}}</view>
{{subItem.title}}
</view>
{{subItem.content}}
</view>
</view>
</view>
</view>
<view class="list">
<image class="l-title" src="{{imageUrl}}za-images/2/score-rule-title3.png?t={{Timestamp}}" style="width: 328rpx"></image>
<view class="l-tip">{{list[2].content}}</view>
<view class="module" wx:for="{{list[2].children}}" wx:key="index">
<view class="m-title" wx:if="{{item.title}}">
<view class="num">{{index+1}}</view>
{{item.title}}
</view>
<view class="m-content" wx:if="{{item.content}}">{{item.content}}</view>
<view class="ul" wx:if="{{item.children.length}}">
<view class="ol" wx:for="{{item.children}}" wx:for-item="subItem" wx:for-index="subIndex" wx:key="subIndex">
<view class="o-title">
<view class="o-num">{{subIndex+1}}</view>
{{subItem.title}}
</view>
{{subItem.content}}
</view>
</view>
</view>
<view class="tip">
<view class="t-title">{{list[3].title}}</view>
<view class="t-content">{{list[3].content}}</view>
</view>
</view>
</view>
</view>

8
src/gift/pages/siteEdit/index.json

@ -1,8 +0,0 @@
{
"navigationBarTitleText": "添加收货地址",
"usingComponents": {
"van-switch": "@vant/weapp/switch/index",
"van-popup": "@vant/weapp/popup/index",
"van-cascader": "@vant/weapp/cascader/index"
}
}

96
src/gift/pages/siteEdit/index.scss

@ -1,96 +0,0 @@
page {
background-color: #f7f7f7;
}
.page {
padding: 40rpx;
.form {
padding: 0 32rpx;
background-color: #fff;
border-radius: 24rpx;
.row {
padding: 32rpx 0;
display: flex;
align-items: center;
.label {
flex-shrink: 0;
width: 4em;
font-size: 32rpx;
color: #3f3f3f;
font-weight: bold;
}
.content {
flex: 1;
padding-left: 18rpx;
display: flex;
align-items: center;
.input {
flex: 1;
font-size: 32rpx;
}
.place-input {
color: #bbbcbe;
}
.site {
border-left: 2rpx solid rgba(170, 170, 170, 0.3);
padding-left: 16rpx;
font-size: 32rpx;
color: #e04775;
display: flex;
align-items: center;
.icon {
margin-right: 10rpx;
width: 36rpx;
height: 36rpx;
}
}
}
}
.row:not(:last-of-type) {
border-bottom: 1rpx solid #edeff3;
}
}
.default {
margin-top: 16rpx;
padding: 26rpx 32rpx;
background-color: #fff;
border-radius: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.footer {
padding: 40rpx;
position: fixed;
left: 0;
bottom: 0;
width: 100vw;
box-sizing: border-box;
bottom: 248rpx;
display: flex;
.cancel {
margin-right: 32rpx;
flex-shrink: 0;
width: 248rpx;
height: 96rpx;
border-radius: 48rpx;
box-sizing: border-box;
line-height: 92rpx;
text-align: center;
font-size: 36rpx;
color: #e04775;
border: 2rpx solid #e04775;
}
.submit {
flex: 1;
height: 96rpx;
background: #e04775;
border-radius: 48rpx;
text-align: center;
line-height: 96rpx;
text-align: center;
font-size: 36rpx;
color: #ffffff;
}
}
}

272
src/gift/pages/siteEdit/index.ts

@ -1,272 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
LAT: "",
LNG: "",
addressId: "",
receiveUserName: "",
receiveTelephone: "",
address: "",
isDefault: false,
provinceName: "",
provinceId: "",
cityId: "",
cityName: "",
countyId: "",
countyName: "",
pcc: "",
cascaderShow: false,
options: [],
areaValue: [] as number[],
cascaderValue: "",
fieldNames: { text: "label", value: "value", children: "children" },
},
onLoad(options) {
if (options.id) {
wx.setNavigationBarTitle({
title: "编辑收货地址",
});
this.setData({
addressId: options.id,
});
}
app.waitLogin().then((_res) => {
this.getArea();
if (options.id) {
this.getDetail();
}
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/patient-address/get-address-detail",
data: {
addressId: this.data.addressId,
},
}).then((res) => {
console.log("res: ", res);
this.setData({
...res,
isDefault: res.isDefault == 1 ? true : false,
pcc: `${res.provinceName}/${res.cityName}/${res.countyName}`,
});
});
},
onChange(e) {
this.setData({
isDefault: e.detail,
});
},
getArea() {
wx.ajax({
method: "GET",
url: "/js/area.json",
isJSON: true,
}).then((res) => {
this.setData({
options: res.map((item) => {
return {
...item,
children: item.children.map((item2) => {
return {
label: item2.label,
value: item2.value,
children: item2.children.map((item3) => {
return {
label: item3.label,
value: item3.value,
};
}),
};
}),
};
}),
});
});
},
handleCascader() {
this.setData({
cascaderShow: true,
});
},
onFinish(e: any) {
const selectedOptions = e.detail.selectedOptions;
console.log(selectedOptions);
this.setData({
cascaderValue: e.detail.value,
areaValue: [selectedOptions[0].value, selectedOptions[1].value, selectedOptions[2].value],
pcc: `${selectedOptions[0].label}/${selectedOptions[1].label}/${selectedOptions[2].label}`,
provinceId: selectedOptions[0].value,
provinceName: selectedOptions[0].label,
cityId: selectedOptions[1].value,
cityName: selectedOptions[1].label,
countyId: selectedOptions[2].value,
countyName: selectedOptions[2].label,
});
this.onClose();
},
onClose() {
this.setData({
cascaderShow: false,
});
},
handleSite() {
const that = this;
wx.getSetting({
success(res) {
if (
res.authSetting["scope.userFuzzyLocation"] != undefined &&
res.authSetting["scope.userFuzzyLocation"] == true
) {
//获取当前位置
that.getFuzzyLocation();
} else if (res.authSetting["scope.userFuzzyLocation"] == undefined) {
//获取当前位置
that.getFuzzyLocation();
} else {
wx.showModal({
title: "请求授权当前位置",
content: "需要获取您的地理位置,请确认授权",
confirmColor: "#cf5375",
success: function (res) {
if (res.cancel) {
//取消授权
wx.showToast({
title: "拒绝授权",
icon: "none",
duration: 1000,
});
} else if (res.confirm) {
//确定授权,通过wx.openSetting发起授权请求
wx.openSetting({
success: function (res) {
if (res.authSetting["scope.userFuzzyLocation"] == true) {
//再次授权,调用wx.getLocation的API
that.getFuzzyLocation();
} else {
wx.showToast({
title: "授权失败",
icon: "none",
duration: 1000,
});
}
},
});
}
},
});
}
},
});
},
getFuzzyLocation() {
const that = this;
wx.getFuzzyLocation({
success(res) {
that.setData({
LNG: res.longitude,
LAT: res.latitude,
});
that.getLocationInfo();
},
fail(err) {
console.log(err);
},
});
},
getLocationInfo() {
wx.ajax({
method: "GET",
url: "?r=zd/nrdl-hospital/location-info",
data: {
lat: this.data.LAT,
lng: this.data.LNG,
},
loading: true,
}).then((res) => {
this.setData({
cityId: res.CityId,
cityName: res.CityName,
countyId: res.CountyId,
countyName: res.CountyName,
provinceId: res.ProvinceId,
provinceName: res.ProvinceName,
pcc: `${res.ProvinceName}/${res.CityName}/${res.CountyName}`,
});
});
},
handleSubmit() {
const {
receiveUserName,
receiveTelephone,
address,
isDefault,
addressId,
provinceName,
provinceId,
cityId,
cityName,
countyId,
countyName,
} = this.data;
let toast = "";
if (!receiveUserName) toast = "请输入收货人姓名";
if (!receiveTelephone) toast = "请输入联系电话";
if (!provinceName) toast = "请选择所在地区";
if (!address) toast = "请输入详细地址";
const params = {
receiveUserName,
receiveTelephone,
provinceName,
address,
isDefault: isDefault ? 1 : 2,
addressId,
provinceId,
cityId,
cityName,
countyId,
countyName,
};
wx.ajax({
method: "POST",
url: "?r=zd/patient-address/save-address",
data: params,
}).then(() => {
wx.navigateBack();
});
},
handleDel() {
wx.showModal({
title: "确认删除?",
confirmColor: "#DE406A",
success: (res) => {
if (res.confirm) {
wx.ajax({
method: "POST",
url: "?r=zd/patient-address/del-address",
data: {
addressId: this.data.addressId,
},
loading: true,
}).then((res) => {
wx.navigateBack({
success() {
wx.showToast({
icon: "none",
title: res,
});
},
});
});
}
},
});
},
});

80
src/gift/pages/siteEdit/index.wxml

@ -1,80 +0,0 @@
<view class="page">
<view class="form">
<view class="row">
<view class="label">收货人</view>
<view class="content">
<input
type="text"
model:value="{{receiveUserName}}"
class="input"
maxlength="{{10}}"
placeholder-class="place-input"
placeholder="请输入收货人姓名"
/>
</view>
</view>
<view class="row">
<view class="label">联系电话</view>
<view class="content">
<input
type="number"
model:value="{{receiveTelephone}}"
maxlength="{{11}}"
class="input"
placeholder-class="place-input"
placeholder="请输入联系电话"
/>
</view>
</view>
<view class="row">
<view class="label">所在地区</view>
<view class="content">
<input
type="text"
value="{{pcc}}"
class="input"
disabled
bind:tap="handleCascader"
placeholder-class="place-input"
placeholder="请选择省市区、街道"
/>
<view class="site" bind:tap="handleSite">
<image class="icon" src="{{imageUrl}}za-images/2/site.png?t={{Timestamp}}"></image>
定位
</view>
</view>
</view>
<view class="row">
<view class="label">详细地址</view>
<view class="content">
<input
type="text"
model:value="{{address}}"
class="input"
placeholder-class="place-input"
placeholder="小区单元门牌号、乡村名称"
/>
</view>
</view>
</view>
<view class="default">
设置为默认地址
<van-switch checked="{{ isDefault }}" bind:change="onChange" active-color="#E04775" size="24px" />
</view>
<view class="footer">
<view class="cancel" wx:if="{{addressId}}" bind:tap="handleDel">删除</view>
<view class="submit" bind:tap="handleSubmit">保存</view>
</view>
</view>
<van-popup show="{{ cascaderShow }}" round position="bottom">
<van-cascader
wx:if="{{ cascaderShow }}"
value="{{ cascaderValue }}"
title="请选择所在地区"
options="{{ options }}"
field-names="{{fieldNames}}"
bind:close="onClose"
bind:finish="onFinish"
/>
</van-popup>

4
src/gift/pages/siteList/index.json

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "地址管理",
"usingComponents": {}
}

73
src/gift/pages/siteList/index.scss

@ -1,73 +0,0 @@
page {
background-color: #fafafa;
}
.page {
padding: 34rpx 40rpx 240rpx;
.card {
margin-bottom: 20rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx;
display: flex;
justify-content: space-between;
align-items: center;
.wrap {
flex: 1;
width: calc(100% - 100rpx);
.title {
display: flex;
align-items: center;
.name {
flex: 1;
font-size: 32rpx;
font-weight: bold;
align-items: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.label {
flex-shrink: 0;
margin-right: 20rpx;
padding: 0 10rpx;
display: inline-block;
vertical-align: middle;
font-size: 24rpx;
line-height: 34rpx;
color: #e04775;
border: 1rpx solid #e04775;
border-radius: 10rpx;
}
}
.content {
margin-top: 12rpx;
font-size: 28rpx;
color: #bbbcbe;
}
}
.edit {
margin-left: 15rpx;
width: 32rpx;
flex-shrink: 0;
.edit-img {
width: 32rpx;
height: 32rpx;
}
}
}
.submit {
position: fixed;
bottom: 120rpx;
left: 40rpx;
height: 96rpx;
width: calc(100% - 80rpx);
background: #e04775;
border-radius: 48rpx;
text-align: center;
line-height: 96rpx;
text-align: center;
font-size: 36rpx;
color: #ffffff;
}
}

64
src/gift/pages/siteList/index.ts

@ -1,64 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
list: [],
pagination: {
page: 1,
pages: 1,
count: 1,
},
},
onShow() {
app.waitLogin().then(() => {
this.getList();
});
},
getList(newPage = 1) {
wx.ajax({
method: "GET",
url: "?r=zd/patient-address/get-list",
data: {
page: newPage,
},
}).then((res) => {
let list = res.page == 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list: list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
handleSelect(e) {
const { index } = e.currentTarget.dataset;
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];
prevPage.setData({
select: true,
addressDetail: this.data.list[index],
});
wx.navigateBack();
},
handleEdit(e) {
const { id } = e.currentTarget.dataset;
wx.navigateTo({
url: `/gift/pages/siteEdit/index?id=${id}`,
});
},
handleAdd() {
wx.navigateTo({
url: "/gift/pages/siteEdit/index",
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
});

17
src/gift/pages/siteList/index.wxml

@ -1,17 +0,0 @@
<view class="page">
<view class="card" wx:for="{{list}}" wx:key="index">
<view class="wrap" bind:tap="handleSelect" data-index="{{index}}">
<view class="title">
<view class="label" wx:if="{{item.isDefault==1}}">默认</view>
<view class="name">{{item.provinceName}}{{item.cityName}}{{item.countyName}}{{item.address}}</view>
</view>
<view class="content">{{item.receiveUserName}} {{item.receiveTelephone}}</view>
</view>
<view class="edit" bind:tap="handleEdit" data-id="{{item.addressId}}">
<image class="edit-img" src="{{imageUrl}}za-images/2/edit.png?t={{Timestamp}}"></image>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
<view class="submit" bind:tap="handleAdd">新增地址</view>
</view>

11
src/gift/pages/vipCert/index.json

@ -1,11 +0,0 @@
{
"navigationBarTitleText": "",
"navigationStyle": "custom",
"disableSwipeBack": true,
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"van-divider": "@vant/weapp/divider/index",
"uploadFile": "/components/uploadFile/index"
}
}

189
src/gift/pages/vipCert/index.scss

@ -1,189 +0,0 @@
.page {
position: relative;
box-sizing: border-box;
background-color: #fff;
.bg {
width: 100%;
}
.page-container {
padding-bottom: 80rpx;
position: absolute;
width: 100%;
top: 0;
left: 0;
display: flex;
flex-direction: column;
.page-title {
margin-top: 86rpx;
font-size: 48rpx;
color: #333333;
font-weight: bold;
text-align: center;
}
.sub-title {
margin-top: 32rpx;
font-size: 28rpx;
color: #aaaaaa;
text-align: center;
}
.content {
margin: 40rpx auto 0;
padding: 40rpx 64rpx;
width: 654rpx;
box-sizing: border-box;
background: #ffffff;
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.09);
border: 2rpx solid rgba(224, 71, 117, 0.25);
border-radius: 24rpx;
.c-title {
font-size: 30rpx;
color: #666666;
text-align: center;
.blod {
font-weight: bold;
color: #cf5375;
}
}
.c-link {
margin-top: 24rpx;
font-size: 30rpx;
color: #666666;
text-align: center;
}
.upload {
margin-top: 46rpx;
.upload-container {
position: relative;
width: 510rpx;
height: 510rpx;
border: 2rpx dotted #cf5375;
border-radius: 24rpx;
background: rgba(207, 83, 117, 0.06);
.icon {
display: block;
margin: 148rpx auto 0;
width: 141rpx;
height: 161rpx;
}
.name {
margin-top: 36rpx;
font-size: 28rpx;
font-weight: bold;
color: #cf5375;
text-align: center;
}
.diagnose-img {
width: 100%;
height: 100%;
border-radius: inherit;
}
.ai {
position: absolute;
bottom: -20rpx;
left: calc(50% - 100rpx);
width: 200rpx;
height: 40rpx;
font-size: 28rpx;
line-height: 42rpx;
color: #fff;
text-align: center;
background: #23bbad;
border-radius: 20rpx 20rpx 20rpx 20rpx;
}
.scan {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 80rpx;
background: linear-gradient(0deg, #ec7095 0%, rgba(236, 112, 177, 0) 100%);
border-radius: 0rpx 0rpx 0rpx 0rpx;
opacity: 0.5;
animation: 3s ease-in 1s infinite reverse both running slidein;
@keyframes slidein {
0% {
top: 0;
}
50% {
top: 430rpx;
}
100% {
top: 0rpx;
}
}
}
.error {
position: absolute;
bottom: 0;
left: 0;
padding: 8rpx 20rpx;
width: 100%;
box-sizing: border-box;
font-size: 24rpx;
color: #fff;
white-space: pre-line;
text-align: center;
background-color: #bb232c;
}
}
}
}
.footer {
flex-shrink: 0;
margin: 81rpx 48rpx 0;
box-sizing: border-box;
display: flex;
> view:not(:last-of-type),
> image {
margin-right: 30rpx;
}
.next {
flex: 1;
text-align: center;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border: 2rpx solid #e04775;
border-radius: 24rpx;
font-size: 34rpx;
font-weight: bold;
background-color: #e04775;
color: #fff;
&.active {
background-color: #dddddd;
border-color: #dddddd;
}
}
.btn1 {
flex: 1;
height: 80rpx;
border-radius: 24rpx;
opacity: 1;
border: 2rpx solid #e04775;
font-size: 34rpx;
color: #e04775;
text-align: center;
line-height: 80rpx;
font-weight: bold;
box-sizing: border-box;
}
.btn2 {
flex: 1;
border-radius: 24rpx;
text-align: center;
height: 80rpx;
line-height: 80rpx;
font-size: 34rpx;
color: #fff;
font-weight: bold;
background-color: #cf5375;
}
.msg {
flex: 1;
font-size: 28rpx;
color: #e04775;
text-align: center;
}
}
}
}

134
src/gift/pages/vipCert/index.ts

@ -1,134 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
diagnoseImg: "",
error: false,
errorText: "",
aiPass: 0,
verify: false,
audit: false,
zdUserInfo: app.globalData.zdUserInfo,
Hash: "",
},
onLoad() {
app.waitLogin({}).then(() => {
app.getZdUserInfo(this, true, (zdUserInfo) => {
if (zdUserInfo.UserType == 4) {
wx.reLaunch({
url: "/patient/pages/my/index",
});
}
app.zdPermissionVerification(3, 0, `/patient/pages/index/index`);
});
});
},
handleSetData(e: WechatMiniprogram.CustomEvent) {
const imgUrl = e.detail[0].imgUrl;
this.setData({
diagnoseImg: imgUrl,
audit: true,
});
this.handleAiPass(imgUrl);
},
handleAiPass(imgUrl: string) {
wx.ajax({
method: "POST",
url: "?r=zd/common/medicine-image-verify",
data: {
ImageUrl: imgUrl,
},
}).then((res) => {
const { code, Hash } = res;
this.setData({
Hash,
});
if (code === 0) {
this.setData({
audit: false,
verify: true,
aiPass: 1,
});
this.handleSubmit();
} else {
const errorText = {
1001: "智能审核失败:图片模糊无法识别",
1002: "智能审核失败:图片模糊无法识别",
2001: "智能审核失败:疑似提交重复图片",
2002: '智能审核失败:您提交图片中不包含"艾加莫德"相关字样',
};
this.setData({
audit: false,
error: true,
errorText: errorText[code] || errorText[1001],
});
}
});
},
handleSubmit() {
const { registrationSource, registChannel, regBusinessId } = app.globalData;
const { diagnoseImg, error, zdUserInfo, Hash } = this.data;
let urlKey = "";
if (error) {
urlKey = zdUserInfo.isFollow ? "nopending" : "pending";
} else {
urlKey = "reslove";
}
const navUrl = {
reslove: "/patient/pages/index/index",
pending: "/gift/pages/vipPending/index",
nopending: "/gift/pages/vimStartPending/index",
}[urlKey] as string;
wx.ajax({
method: "POST",
url: "?r=zd/account/upload-use-drugs-audit-img",
data: {
diagnoseImg,
aiPass: this.data.aiPass,
registrationSource,
registChannel,
regBusinessId,
imgHash: Hash,
},
loading: true,
}).then((_res) => {
app.getZdUserInfo(this, true, () => {
wx.reLaunch({
url: navUrl,
});
});
});
},
handleReset() {
this.setData({
diagnoseImg: "",
error: false,
errorText: "",
aiPass: 0,
verify: false,
});
},
handleVisitors() {
app.globalData.anyWhere = true;
wx.reLaunch({
url: "/patient/pages/index/index",
});
},
handleVip() {
wx.navigateTo({
url: "/patient/pages/vipLogin/index",
});
},
handleBack() {
wx.navigateBack();
},
handleVipScan() {
wx.navigateTo({
url: "/patient/pages/vipLogin/index",
});
},
});

45
src/gift/pages/vipCert/index.wxml

@ -1,45 +0,0 @@
<view class="page">
<image class="bg" mode="widthFix" src="{{imageUrl}}za-images/1/login-bg.png?t={{Timestamp}}"></image>
<view class="page-container">
<navBar title="专属服务用户进入" back="{{true}}" bind:back="handleBack"></navBar>
<view class="page-title">专属身份认证</view>
<view class="sub-title">诊断证明审核通过后,即可享受平台全部服务</view>
<view class="content">
<view class="c-title">
请上传有<text class="blod">「艾加莫德」</text>字样的
</view>
<view class="c-link">处方单或购药发票</view>
<view class="upload">
<uploadFile
fileTypes="{{['image']}}"
fileList="{{fileList}}"
bind:setData="handleSetData"
bind:deleteFile="handleDelData"
maxNum="{{1}}"
isSlot="{{true}}"
upload="{{!diagnoseImg}}"
>
<view class="upload-container">
<image class="icon" wx:if="{{!diagnoseImg}}" src="{{imageUrl}}za-images/1/upload-cert.png?t={{Timestamp}}"></image>
<view class="name" wx:if="{{!diagnoseImg}}">点击上传</view>
</view>
</uploadFile>
<view class="upload-container" wx:if="{{diagnoseImg}}">
<image class="diagnose-img" mode="aspectFit" wx:if="{{diagnoseImg}}" src="{{diagnoseImg}}"></image>
<view class="scan" wx:if="{{audit}}"></view>
<view class="ai" wx:if="{{audit}}">智能审核中</view>
<view class="error" wx:if="{{error}}">{{errorText}}</view>
</view>
</view>
</view>
<view class="footer">
<block wx:if="{{error}}">
<view class="btn1" bind:tap="handleSubmit">提交人工审核</view>
<view class="btn2" bind:tap="handleReset">重新提交</view>
</block>
<block wx:else>
<view class="msg" bind:tap="handleVipScan">您也可通过扫药盒码认证></view>
</block>
</view>
</view>
</view>

10
src/gift/pages/vipPending/index.json

@ -1,10 +0,0 @@
{
"navigationBarTitleText": "",
"navigationStyle": "custom",
"disableSwipeBack": true,
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"van-divider": "@vant/weapp/divider/index"
}
}

100
src/gift/pages/vipPending/index.scss

@ -1,100 +0,0 @@
.page {
position: relative;
box-sizing: border-box;
background-color: #fff;
.bg {
width: 100%;
}
.page-container {
padding-bottom: 80rpx;
position: absolute;
width: 100%;
top: 0;
left: 0;
display: flex;
flex-direction: column;
.navbar {
flex-shrink: 0;
padding: 0 20rpx 0;
display: flex;
align-items: center;
font-size: 40rpx;
color: #cf5375;
font-style: italic;
font-weight: bold;
.icon {
margin-right: 9rpx;
width: 42rpx;
height: 46rpx;
}
}
.page-title {
margin-top: 86rpx;
font-size: 48rpx;
color: #333333;
font-weight: bold;
text-align: center;
}
.sub-title {
margin-top: 32rpx;
font-size: 28rpx;
color: #aaaaaa;
text-align: center;
}
.content {
margin: 40rpx auto 0;
width: 654rpx;
box-sizing: border-box;
background: #ffffff;
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.09);
border: 2rpx solid rgba(224, 71, 117, 0.25);
border-radius: 24rpx;
padding-bottom: 60rpx;
.c-header {
border-radius: 24rpx 24rpx 0 0;
background-color: #666666;
padding: 18rpx 20rpx;
text-align: center;
font-size: 28rpx;
color: #fff;
line-height: 42rpx;
}
.code {
margin: 125rpx auto 0;
display: block;
width: 300rpx;
height: 300rpx;
}
.tip{
margin-top: 87rpx;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 48rpx;
}
}
.footer {
flex-shrink: 0;
margin: 81rpx 48rpx 0;
box-sizing: border-box;
display: flex;
> view:not(:last-of-type),
> image {
margin-right: 30rpx;
}
.next {
flex: 1;
text-align: center;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border: 2rpx solid #e04775;
border-radius: 24rpx;
font-size: 34rpx;
font-weight: bold;
background-color: #e04775;
color: #fff;
}
}
}
}

34
src/gift/pages/vipPending/index.ts

@ -1,34 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
qrCode: "",
},
onLoad() {
app.waitLogin().then((res) => {
this.getCode();
});
},
handleVisitors() {
wx.reLaunch({
url: "/patient/pages/index/index",
});
},
getCode() {
wx.ajax({
method: "GET",
url: "?r=zd/common/get-channel-wx-code",
data: {
ChannelType: "11",
Id: "",
},
}).then((res) => {
this.setData({
qrCode: res,
});
});
},
handleBack() {
wx.navigateBack();
},
});

22
src/gift/pages/vipPending/index.wxml

@ -1,22 +0,0 @@
<view class="page">
<image class="bg" mode="widthFix" src="{{imageUrl}}za-images/1/login-bg.png?t={{Timestamp}}"></image>
<view class="page-container">
<navBar title="" back="{{true}}" bind:back="handleBack"></navBar>
<view class="page-title">提交成功,审核中</view>
<view class="sub-title">诊断证明审核通过后,即可享受平台全部服务</view>
<view class="content">
<view class="c-header">
<view>人工审核周期24小时~48小时</view>
<!-- <view>若有疑问请联系 400-3920-3049</view> -->
</view>
<image class="code" src="{{qrCode}}" show-menu-by-longpress></image>
<view class="tip">
<view>关注"gMG给力加油站"公众号 获取审核进度</view>
<view>还可以了解更多重症肌无力专业知识</view>
</view>
</view>
<view class="footer">
<view class="next" bind:tap="handleVisitors">回到首页</view>
</view>
</view>
</view>

10
src/gift/pages/vipReject/index.json

@ -1,10 +0,0 @@
{
"navigationBarTitleText": "",
"navigationStyle": "custom",
"disableSwipeBack": true,
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"van-divider": "@vant/weapp/divider/index"
}
}

142
src/gift/pages/vipReject/index.scss

@ -1,142 +0,0 @@
.page {
position: relative;
box-sizing: border-box;
background-color: #fff;
.bg {
width: 100%;
}
.page-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
min-height: 100vh;
display: flex;
flex-direction: column;
padding-bottom: 76rpx;
.navbar {
flex-shrink: 0;
padding: 0 20rpx 0;
display: flex;
align-items: center;
font-size: 40rpx;
color: #cf5375;
font-style: italic;
font-weight: bold;
.icon {
flex-shrink: 0;
margin-right: 9rpx;
width: 42rpx;
height: 46rpx;
}
}
.tip {
position: relative;
margin: 180rpx auto 0;
width: 510rpx;
padding: 20rpx 70rpx;
box-sizing: border-box;
background-color: #bb232c;
border-radius: 24rpx;
word-break: break-all;
.icon {
margin-right: 16rpx;
width: 48rpx;
height: 48rpx;
vertical-align: bottom;
}
.text {
font-size: 26rpx;
color: #fff;
line-height: 48rpx;
}
&::after {
position: absolute;
// bottom: -13.5px;
bottom: 0;
left: 50%;
transform: translate(-50%, 90%);
content: "";
width: 0;
height: 0;
border-style: solid;
border-width: 12.5px 8px 0 8px;
border-color: #bb232c transparent transparent transparent;
}
}
.page-icon {
margin: 58rpx auto 0;
display: block;
width: 280rpx;
height: 280rpx;
border-radius: 50%;
}
.page-title {
margin-top: 64rpx;
font-size: 56rpx;
color: #333333;
font-weight: bold;
text-align: center;
}
.sub-title {
margin-top: 32rpx;
font-size: 32rpx;
color: #aaa;
text-align: center;
}
.footer {
margin: 179rpx auto 0;
flex-shrink: 0;
width: 622rpx;
box-sizing: border-box;
display: flex;
> view:not(:last-of-type),
> image {
margin-right: 30rpx;
}
.next {
flex: 1;
text-align: center;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border: 2rpx solid #e04775;
border-radius: 24rpx;
font-size: 34rpx;
font-weight: bold;
background-color: #e04775;
color: #fff;
}
}
.divider {
margin: 48rpx auto 0;
width: 300rpx;
}
.ohter {
margin-top: 48rpx;
display: flex;
justify-content: center;
.col {
margin: 0 48rpx;
padding: 0 20rpx;
height: 48rpx;
border-radius: 24rpx;
background: #eeeeee;
font-size: 24rpx;
color: #666666;
display: flex;
align-items: center;
justify-content: center;
&::after {
border: none;
outline: none;
}
.icon {
margin-right: 12rpx;
width: 48rpx;
height: 48rpx;
}
}
}
}
}

25
src/gift/pages/vipReject/index.ts

@ -1,25 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {},
onLoad() {
app.waitLogin().then((res) => {
app.getZdUserInfo(this, true, (res) => {
console.log(res);
});
});
},
handleSubmit() {
wx.reLaunch({
url: "/gift/pages/vipCert/index",
});
},
handleVisitors() {
wx.reLaunch({
url: "/patient/pages/index/index",
});
},
handleBack() {
wx.navigateBack();
},
});

25
src/gift/pages/vipReject/index.wxml

@ -1,25 +0,0 @@
<view class="page">
<image class="bg" mode="widthFix" src="{{imageUrl}}za-images/1/login-bg.png?t={{Timestamp}}"></image>
<view class="page-container">
<navBar title="" back="{{true}}" bind:back="handleBack"></navBar>
<view class="tip">
<image class="icon" src="{{imageUrl}}za-images/1/warn.png?t={{Timestamp}}"></image>
<text class="text">未通过原因:{{zdUserInfo.UseDrugsRejectReason}}</text>
</view>
<image class="page-icon" src="{{imageUrl}}za-images/1/cert-reject.png?t={{Timestamp}}"></image>
<view class="page-title">审核未通过</view>
<view class="sub-title">很遗憾您的审核未通过</view>
<view class="footer">
<view class="next" bind:tap="handleSubmit">重新提交</view>
</view>
<view class="viewider">
<van-divider contentPosition="center" textColor="#aaaaaa">或者</van-divider>
</view>
<view class="ohter">
<view class="col" bind:tap="handleVisitors">
<image class="icon" src="{{imageUrl}}za-images/1/look.png?t={{Timestamp}}"></image>
回到首页
</view>
</view>
</view>
</view>

10
src/gift/pages/vipStartPending/index.json

@ -1,10 +0,0 @@
{
"navigationBarTitleText": "",
"navigationStyle": "custom",
"disableSwipeBack": true,
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"van-divider": "@vant/weapp/divider/index"
}
}

77
src/gift/pages/vipStartPending/index.scss

@ -1,77 +0,0 @@
.page {
position: relative;
box-sizing: border-box;
background-color: #fff;
.bg {
width: 100%;
}
.page-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
.navbar {
flex-shrink: 0;
padding: 0 20rpx 0;
display: flex;
align-items: center;
font-size: 40rpx;
color: #cf5375;
font-style: italic;
font-weight: bold;
.icon {
margin-right: 9rpx;
width: 42rpx;
height: 46rpx;
}
}
.page-icon {
margin: 240rpx auto 0;
display: block;
width: 280rpx;
height: 280rpx;
}
.page-title {
margin-top: 64rpx;
font-size: 48rpx;
color: #333333;
font-weight: bold;
text-align: center;
}
.sub-title {
margin-top: 32rpx;
font-size: 28rpx;
color: #666;
text-align: center;
}
.footer {
position: absolute;
left: 64rpx;
bottom: 62rpx;
flex-shrink: 0;
width: 622rpx;
box-sizing: border-box;
display: flex;
> view:not(:last-of-type),
> image {
margin-right: 30rpx;
}
.next {
flex: 1;
text-align: center;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border: 2rpx solid #e04775;
border-radius: 24rpx;
font-size: 34rpx;
font-weight: bold;
background-color: #e04775;
color: #fff;
}
}
}
}

14
src/gift/pages/vipStartPending/index.ts

@ -1,14 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {},
onLoad() {},
handleVisitors() {
wx.reLaunch({
url: "/patient/pages/index/index",
});
},
handleBack() {
wx.navigateBack();
},
});

15
src/gift/pages/vipStartPending/index.wxml

@ -1,15 +0,0 @@
<view class="page">
<image class="bg" mode="widthFix" src="{{imageUrl}}za-images/1/login-mask-bg.png?t={{Timestamp}}"></image>
<view class="page-container">
<navBar title="" back="{{true}}" bind:back="handleBack"></navBar>
<image class="page-icon" src="{{imageUrl}}za-images/1/cert-pending.png?t={{Timestamp}}"></image>
<view class="page-title">提交成功,审核中</view>
<view class="sub-title">
<view>人工审核周期24小时~48小时</view>
<!-- <view>若有疑问请联系400-3920-3049</view> -->
</view>
<view class="footer">
<view class="next" bind:tap="handleVisitors">回到首页</view>
</view>
</view>
</view>

34
src/pages/d_interactiveDoctor/index.ts

@ -436,40 +436,6 @@ Page({
icon: 'none', icon: 'none',
}) })
}, },
handleReferral() {
wx.showModal({
title: '',
content: '您将给患者发送复诊时间填写卡片?',
confirmText: '发送',
confirmColor: '#8c75d0',
success: (res) => {
if (res.confirm) {
wx.ajax({
method: 'POST',
url: '?r=zd/doctor/message-interact/send-re-visit',
data: {
patientId: this.data.patientId,
},
}).then(() => {
this.setData({
messageList: [
...this.data.messageList,
{
msgId: '',
msgContentType: '8',
msgVisitTime: '',
msgContent: '',
msgFromType: '2',
msgCreateTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
},
],
})
this.handleView()
})
}
},
})
},
handleHideKeyboard() { handleHideKeyboard() {
if (this.data.inputShow) { if (this.data.inputShow) {
this.setData({ this.setData({

9
src/patient/pages/doctorDetailBak/index.json

@ -1,9 +0,0 @@
{
"navigationStyle": "custom",
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"van-icon": "@vant/weapp/icon/index",
"van-tab": "@vant/weapp/tab/index",
"van-tabs": "@vant/weapp/tabs/index"
}
}

116
src/patient/pages/doctorDetailBak/index.scss

@ -1,116 +0,0 @@
.page {
background-color: #fafafa;
.card {
margin: 32rpx 30rpx 32rpx;
padding: 0 32rpx 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
border: 2rpx solid #ebecee;
.c-header {
display: flex;
.avatar {
margin-top: -60rpx;
margin-right: 18rpx;
flex-shrink: 0;
width: 140rpx;
height: 140rpx;
border-radius: 50%;
}
.wrap {
padding: 20rpx 0 0;
.name {
font-size: 44rpx;
color: #484848;
}
}
}
.hostipal {
margin-top: 32rpx;
padding: 32rpx;
background-color: #f7f6f6;
border-radius: 20rpx;
.title {
display: flex;
align-items: center;
.name {
font-size: 28rpx;
color: #484848;
word-break: break-all;
line-height: 42rpx;
}
.tag {
flex-shrink: 0;
display: inline-block;
margin-left: 12rpx;
padding: 6rpx 12rpx;
font-size: 22rpx;
line-height: 1;
color: #ffffff;
background: #ffc137;
border-radius: 8rpx;
}
}
.content {
margin-top: 16rpx;
display: flex;
align-items: center;
.inner {
flex: 1;
.site {
flex: 1;
font-size: 24rpx;
color: #9b9ea6;
}
.site-num {
flex-shrink: 0;
font-size: 24rpx;
color: #9b9ea6;
}
}
.options {
flex-shrink: 0;
.icon {
padding: 8rpx;
flex-shrink: 0;
margin-left: 14rpx;
width: 30rpx;
height: 30rpx;
background: #ffffff;
border-radius: 50%;
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0, 0, 0, 0.08);
}
}
}
}
.content {
margin-top: 32rpx;
.row {
margin-top: 16rpx;
display: flex;
align-items: flex-start;
.tag {
margin-right: 16rpx;
flex-shrink: 0;
padding: 8rpx 16rpx;
font-size: 24rpx;
color: #e04775;
line-height: 1;
background: #FCF2F6;
border-radius: 8rpx;
border: 2rpx solid #e04775;
}
.p {
font-size: 28rpx;
color: #484848;
&.ellipsis {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
}
}
}
}

144
src/patient/pages/doctorDetailBak/index.ts

@ -1,144 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {} as any,
LNG: "" as number | string,
LAT: "" as number | string,
pagination: {
page: 1,
pages: 1,
count: 1,
},
},
onLoad(options) {
app.zdWaitLogin().then((_res) => {
this.setData({
id: options.id,
});
this.handleToggleSite();
});
},
handleToggleSite() {
const that = this;
if (!this.data.LNG) {
wx.getSetting({
success(res) {
if (
res.authSetting["scope.userFuzzyLocation"] != undefined &&
res.authSetting["scope.userFuzzyLocation"] == true
) {
//获取当前位置
that.getFuzzyLocation();
} else if (res.authSetting["scope.userFuzzyLocation"] == undefined) {
//获取当前位置
that.getFuzzyLocation();
} else {
wx.showModal({
title: "请求授权当前位置",
content: "需要获取您的地理位置,请确认授权",
confirmColor: "#cf5375",
success: function (res) {
if (res.cancel) {
//取消授权
wx.showToast({
title: "拒绝授权",
icon: "none",
duration: 1000,
});
} else if (res.confirm) {
//确定授权,通过wx.openSetting发起授权请求
wx.openSetting({
success: function (res) {
if (res.authSetting["scope.userFuzzyLocation"] == true) {
// wx.showToast({
// title: '授权成功',
// icon: 'success',
// duration: 1000
// })
//再次授权,调用wx.getLocation的API
that.getFuzzyLocation();
} else {
// wx.showToast({
// title: '授权失败',
// icon: 'none',
// duration: 1000
// })
}
},
});
}
},
});
}
},
});
} else {
that.setData({
LNG: "",
LAT: "",
});
this.getDetail();
}
},
getFuzzyLocation() {
const that = this;
wx.getFuzzyLocation({
success(res) {
console.log(res);
that.setData({
LNG: res.longitude,
LAT: res.latitude,
});
that.getDetail();
},
fail(err) {
console.log(err);
},
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=zd/doctor/detail",
data: {
Id: this.data.id,
lng: this.data.LNG,
lat: this.data.LAT,
},
}).then((res) => {
this.setData({
detail: {
...res,
weekName: (res.Clinic ? res.Clinic : []).map((subItem: { weekday: string | number; timeType: string | number }) => {
const week = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
const timeDay = { 1: "上午", 2: "下午" };
return `${week[Number(subItem.weekday)-1]}${timeDay[subItem.timeType]}`;
}).join(","),
},
});
});
},
handlePhone() {
const { detail } = this.data;
wx.makePhoneCall({
phoneNumber: detail.Telephone,
});
},
handleOpenMap() {
const {
detail: { hospital },
} = this.data;
wx.openLocation({
latitude: hospital.LAT,
longitude: hospital.LNG,
name: hospital.Name,
address:`${hospital.ProvinceName}${hospital.CityName}${hospital.AreaName}${hospital.Address}`
});
},
handleBack() {
wx.navigateBack();
},
onPageScroll() {},
});

45
src/patient/pages/doctorDetailBak/index.wxml

@ -1,45 +0,0 @@
<view
class="page"
style="background: url({{imageUrl}}za-images//1.5/hostipal.png?t={{Timestamp}}) no-repeat top center / 100% 520rpx;padding-top:{{bottom}}px"
>
<navBar background="{{background}}" title="医生介绍" back bind:back="handleBack"></navBar>
<view class="card">
<view class="c-header">
<image class="avatar" mode="aspectFill" src="{{detail.Img}}"></image>
<view class="wrap">
<view class="name">{{detail.Name}}</view>
</view>
</view>
<view class="hostipal">
<view class="title">
<text class="name">{{detail.hospital.Name}}</text>
<view class="tag" wx:if="{{detail.hospital.HospitalClassificationName || detail.hospital.HospitalLevelName}}">
{{detail.hospital.HospitalClassificationName}}{{detail.hospital.HospitalLevelName}}
</view>
</view>
<view class="content">
<view class="inner">
<view class="site">
{{detail.hospital.ProvinceName}}{{detail.hospital.CityName}}{{detail.hospital.CountyName}}{{detail.hospital.Address}}
</view>
<view class="site-num">{{detail.hospital.dist}}</view>
</view>
<view class="options">
<image class="icon" src="{{imageUrl}}za-images//1.5/site.png" bind:tap="handleOpenMap"></image>
<image class="icon" src="{{imageUrl}}za-images//1.5/phone.png" bind:tap="handlePhone"></image>
</view>
</view>
</view>
<view class="content">
<view class="row">
<view class="tag">医生简介</view>
<view class="p">{{detail.Introduce}}</view>
</view>
<view class="row">
<view class="tag">出诊时间</view>
<view class="p">{{detail.weekName}}</view>
</view>
</view>
</view>
</view>

1
src/patient/pages/index/index.json

@ -5,7 +5,6 @@
"navbar": "/components/navbar/index", "navbar": "/components/navbar/index",
"van-icon": "@vant/weapp/icon/index", "van-icon": "@vant/weapp/icon/index",
"toast": "/components/toast/index", "toast": "/components/toast/index",
"referralFrom": "/components/referralFrom/index",
"patient-tab-bar": "/components/patient-tab-bar/index" "patient-tab-bar": "/components/patient-tab-bar/index"
} }
} }

198
src/patient/pages/index/index.ts

@ -9,7 +9,6 @@ Page({
configList: [], configList: [],
infoList: [] as any, infoList: [] as any,
storyList: [],
zdUserInfo: {} as any, zdUserInfo: {} as any,
anyWhere: false, anyWhere: false,
regGuide: true, regGuide: true,
@ -26,18 +25,11 @@ Page({
liveDownList: [], liveDownList: [],
detail: {},
referralFromShow: false,
publicCard: false,
// toastShow: true, // toastShow: true,
// toastType: "doubleStandards", // toastType: "doubleStandards",
// toastType: "vipScan",
// toastType: "healthCare", // toastType: "healthCare",
// toastType: "aldAlert", // toastType: "aldAlert",
// toastType:"dedicatedDoctor", // toastType:"dedicatedDoctor",
// toastType: 'referral-toast',
// toastType: 'public-toast', // toastType: 'public-toast',
// toastType: 'drug-guide', // toastType: 'drug-guide',
@ -90,7 +82,6 @@ Page({
app.getZdUserInfo(this, true, (zdUserInfo) => { app.getZdUserInfo(this, true, (zdUserInfo) => {
this.setData({ this.setData({
zdUserInfo, zdUserInfo,
publicCard: zdUserInfo.isShowFollowGuide == 1,
}) })
if (zdUserInfo.ExclusiveDoctorId) { if (zdUserInfo.ExclusiveDoctorId) {
app.mpBehavior({ PageName: 'PG_PatientHomeDoctorCard' }) app.mpBehavior({ PageName: 'PG_PatientHomeDoctorCard' })
@ -101,10 +92,6 @@ Page({
if (zdUserInfo.ExclusiveDoctorId > 0) { if (zdUserInfo.ExclusiveDoctorId > 0) {
this.getUnreadCount() this.getUnreadCount()
} }
if (zdUserInfo.UserType == 4) {
this.getLastRecord()
}
}) })
}) })
}, },
@ -161,20 +148,6 @@ Page({
}) })
}) })
}, },
getLastRecord() {
wx.ajax({
method: 'GET',
url: '?r=zd/medication/last-record',
}).then((res) => {
this.setData({
detail: {
weekName: dayjs(res.InjectionDate).format('ddd'),
days: dayjs().diff(res.InjectionDate, 'day'),
...res,
},
})
})
},
getConfig(zdUserInfo: any) { getConfig(zdUserInfo: any) {
let UserType = zdUserInfo.UserType let UserType = zdUserInfo.UserType
if (UserType <= 2) { if (UserType <= 2) {
@ -191,15 +164,6 @@ Page({
return subItem.showStatus == 1 return subItem.showStatus == 1
}) })
} }
// if (item.name === 'BANNER-MINIDOVTOR') {
// item.subList = item.subList
// .filter((subItem: any) => {
// return subItem.linkUrl !== 'MINIDOCTOR' || zdUserInfo.EntryThreePeriod === 1
// })
// .filter((subItem: any) => {
// return subItem.linkUrl !== 'MINIDOCTOR-1.0' || zdUserInfo.EntryTwoPeriod === 1
// })
// }
return item return item
}) })
this.setData({ this.setData({
@ -209,9 +173,6 @@ Page({
if (item.code == 'article') { if (item.code == 'article') {
this.getInfoList(item.configId) this.getInfoList(item.configId)
} }
if (item.code == 'story') {
this.getStoryList(item.configId)
}
if (item.code == 'adl') { if (item.code == 'adl') {
this.getQol() this.getQol()
} }
@ -234,13 +195,6 @@ Page({
}, },
}).then((_res) => {}) }).then((_res) => {})
}, },
setBannerClick() {
wx.ajax({
method: 'POST',
url: '?r=zd/nrdl/add-banner-click-record',
data: {},
})
},
getInfoList(configId: string) { getInfoList(configId: string) {
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
@ -255,20 +209,6 @@ Page({
}) })
}) })
}, },
getStoryList(configId: string) {
wx.ajax({
method: 'GET',
url: '?r=zd/story/index-list',
data: {
count: 0,
ConfigId: configId,
},
}).then((res) => {
this.setData({
storyList: res.list,
})
})
},
getQol() { getQol() {
wx.ajax({ wx.ajax({
method: 'GET', method: 'GET',
@ -323,12 +263,6 @@ Page({
app.mpBehavior({ PageName: 'BTN_PatientHomeContentCard' }) app.mpBehavior({ PageName: 'BTN_PatientHomeContentCard' })
} }
if (url === 'NRDL') {
this.setBannerClick()
this.handleNRDL()
return
}
if (url.includes('loginState')) { if (url.includes('loginState')) {
url = url + encodeURIComponent(app.globalData.loginState) url = url + encodeURIComponent(app.globalData.loginState)
wx.navigateTo({ wx.navigateTo({
@ -350,96 +284,9 @@ Page({
handleReg() { handleReg() {
app.zdPermissionVerification(3, 0, '') app.zdPermissionVerification(3, 0, '')
}, },
handleMiniDoctor(e) {
const { link } = e.currentTarget.dataset
let period = ''
if (link === 'MINIDOCTOR-1.0') {
period = '2'
}
wx.navigateTo({
url: `/patient/pages/webview/index?period=${period}`,
})
},
handleQuestion() {
app.zdPermissionVerification(2, 11, `/patient/pages/repository/index`).then(() => {
const webviewUrl = encodeURIComponent(
`${app.globalData.url}/zdcare/#/info?loginState=${app.globalData.loginState}`,
)
wx.navigateTo({
url: `/patient/pages/webview/index?url=${webviewUrl}`,
})
})
},
handleSlider() {
wx.ajax({
method: 'POST',
url: '?r=zd/nrdl/add-slide-click-record',
data: {},
})
this.handleNRDL()
},
handleNRDL() {
app.zdPermissionVerification(3, 12, `/patient/pages/index/index`).then(() => {
wx.navigateTo({
url: `/patient/pages/nrdl/index`,
})
// if (this.data.zdUserInfo.has7DayAdl === 1) {
// wx.navigateTo({
// url: `/patient/pages/nrdl/index`,
// });
// } else {
// this.setData({
// toastShow: true,
// toastType: "ndrlAldAlert",
// });
// }
})
},
routerVipTo() {
const { MedicineAuditSwitch, UseDrugsAuditStatus, isFollow } = this.data.zdUserInfo
if (MedicineAuditSwitch === '0') {
wx.navigateTo({
url: '/patient/pages/vipLogin/index',
})
}
else if (MedicineAuditSwitch === '1') {
const pendPath = {
0: '/patient/pages/vipPending/index',
1: '/patient/pages/vipStartPending/index',
}[isFollow]
const url = {
1: pendPath,
2: '/patient/pages/vipReject/index',
}[UseDrugsAuditStatus]
wx.navigateTo({
url: url || '/patient/pages/vipCert/index',
})
}
else {
wx.showToast({
icon: 'none',
title: '工程师正在努力建设中,敬请期待!',
})
}
},
handleToastOk() { handleToastOk() {
const { toastType } = this.data const { toastType } = this.data
if (toastType === 'vipScan') { if (toastType === 'ndrlAldAlert') {
this.routerVipTo()
this.handleToastCancel()
}
else if (toastType === 'aldAlert') {
wx.navigateTo({
url: '/patient/pages/adl/index',
})
this.handleToastCancel()
}
else if (toastType === 'healthCare') {
this.setPopupInfo()
this.handleNRDL()
this.handleToastCancel()
}
else if (toastType === 'ndrlAldAlert') {
wx.navigateTo({ wx.navigateTo({
url: '/patient/pages/adl/index?nrdl=1', url: '/patient/pages/adl/index?nrdl=1',
}) })
@ -465,17 +312,6 @@ Page({
}) })
this.handleToastCancel(null, false) this.handleToastCancel(null, false)
} }
else if (toastType === 'referral-toast') {
this.setData({
referralFromShow: true,
})
wx.ajax({
method: 'POST',
url: '?r=zd/re-visit/update-popup-show-status',
data: {},
})
this.handleToastCancel(null, false)
}
else if (toastType === 'drug-guide') { else if (toastType === 'drug-guide') {
wx.ajax({ wx.ajax({
method: 'POST', method: 'POST',
@ -509,13 +345,6 @@ Page({
}, },
}) })
} }
else if (toastType === 'referral-toast') {
wx.ajax({
method: 'POST',
url: '?r=zd/re-visit/update-popup-show-status',
data: {},
})
}
else if (toastType === 'drug-guide' && sure) { else if (toastType === 'drug-guide' && sure) {
wx.ajax({ wx.ajax({
method: 'POST', method: 'POST',
@ -530,31 +359,6 @@ Page({
toastParams: '', toastParams: '',
}) })
}, },
handlePublic() {
this.setData({
toastShow: true,
toastType: 'public-toast',
toastParams: {},
})
this.handlePublicClose()
},
handlePublicClose() {
this.setData({
publicCard: false,
})
wx.ajax({
method: 'POST',
url: '?r=zd/account/add-user-subscribe-guide-record',
data: {},
})
},
handleMp(e: any) {
const { code } = e.currentTarget.dataset
const PageName = {
spread1: 'BTN_PATIENTHOMEBANNER1',
spread2: 'BTN_PATIENTHOMEBANNER2',
}[code]
},
handleRegClose() { handleRegClose() {
this.setData({ this.setData({
regGuide: false, regGuide: false,

48
src/patient/pages/index/index.wxml

@ -45,8 +45,6 @@
<view <view
class="banner" class="banner"
wx:if="{{(card.code == 'spread1' || card.code == 'spread2') && card.showStatus == 1 && card.subList.length}}" wx:if="{{(card.code == 'spread1' || card.code == 'spread2') && card.showStatus == 1 && card.subList.length}}"
bind:tap="handleMp"
data-code="{{card.code}}"
> >
<swiper <swiper
class="swiper" class="swiper"
@ -59,15 +57,6 @@
> >
<swiper-item class="swiper-item" wx:for="{{card.subList}}" wx:key="index"> <swiper-item class="swiper-item" wx:for="{{card.subList}}" wx:key="index">
<image <image
wx:if="{{ (item.linkUrl=== 'MINIDOCTOR' || item.linkUrl=== 'MINIDOCTOR-1.0') && zdUserInfo.UserType >= 3}}"
class="swiper-item-img"
mode="aspectFill"
src="{{item.img}}"
bind:tap="handleMiniDoctor"
data-link="{{item.linkUrl}}"
></image>
<image
wx:else
class="swiper-item-img" class="swiper-item-img"
mode="aspectFill" mode="aspectFill"
src="{{item.img}}" src="{{item.img}}"
@ -180,7 +169,7 @@
<block wx:if="{{~~item.OpenNum}}">{{item.OpenNum}}</block> <block wx:if="{{~~item.OpenNum}}">{{item.OpenNum}}</block>
</view> </view>
<view <view
class="f-item {{detail.IsCollect == 1 && 'active'}}" class="f-item"
catch:tap="handleToggleSave" catch:tap="handleToggleSave"
data-index="{{infoIndex}}" data-index="{{infoIndex}}"
data-sindex="{{index}}" data-sindex="{{index}}"
@ -240,41 +229,8 @@
src="{{imageUrl}}za-images/5/reg-close.png?t={{Timestamp}}" src="{{imageUrl}}za-images/5/reg-close.png?t={{Timestamp}}"
></image> ></image>
</view> </view>
<!-- <view wx:elif="{{!anyWhere && publicCard}}" class="public" bind:tap="handlePublic"> -->
<!-- <image class="logo" src="{{imageUrl}}za-images/5/logo1.png?t={{Timestamp}}"></image> -->
<!-- <view class="wrap"> -->
<!-- <view class="title">关注公众号</view> -->
<!-- <view class="content">重要提醒不丢失~</view> -->
<!-- </view> -->
<!-- <view class="btn">去关注</view> -->
<!-- <image catch:tap="handlePublicClose" class="close" src="{{imageUrl}}za-images/5/close1.png?t={{Timestamp}}"></image> -->
<!-- </view> -->
</view> </view>
<movable-area class="slidearea">
<movable-view
direction="vertical"
x="{{-800}}"
y="{{sliderTop}}"
class="mview"
bind:tap="handleMiniDoctor"
wx:if="{{systemConfig.NrdlActivitySwitch==='1'}}"
>
<image
wx:if="{{zdUserInfo.UserType==3}}"
class="slidebar"
mode="wdithFix"
src="{{imageUrl}}za-images/nrdl/home1.gif?t={{Timestamp}}"
></image>
<image
wx:if="{{theme === 'DRUG'}}"
class="slidebar"
mode="wdithFix"
src="{{imageUrl}}za-images/nrdl/home2.gif?t={{Timestamp}}"
></image>
</movable-view>
</movable-area>
<toast <toast
bind:cancel="handleToastCancel" bind:cancel="handleToastCancel"
bind:ok="handleToastOk" bind:ok="handleToastOk"
@ -283,6 +239,4 @@
params="{{toastParams}}" params="{{toastParams}}"
></toast> ></toast>
<referralFrom model:show="{{referralFromShow}}"></referralFrom>
<patient-tab-bar></patient-tab-bar> <patient-tab-bar></patient-tab-bar>

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

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

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

@ -451,31 +451,6 @@ Page({
url: '/patient/pages/personalInformation/index', url: '/patient/pages/personalInformation/index',
}) })
}, },
handleReferral() {
this.setData({
referralFromShow: true,
})
},
handleReferralReplay(e) {
const params = e.detail
this.setData({
messageList: [
...this.data.messageList,
{
msgId: '',
msgContentType: '9',
msgVisitTime: '',
msgContent: '',
msgFromType: '1',
msgCreateTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
ReVisitInfo: {
...params,
visitDateName: dayjs(params.visitDate).format('YYYY年M月DD日'),
},
},
],
})
},
handleQol() { handleQol() {
wx.navigateTo({ wx.navigateTo({
url: '/patient/pages/qol/index', url: '/patient/pages/qol/index',

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

@ -1,5 +1,3 @@
<page-meta page-style="{{ referralFromShow ? 'overflow: hidden;' : '' }}" />
<navbar fixed title="互动" custom-style="background:{{background}}"> <navbar fixed title="互动" custom-style="background:{{background}}">
<van-icon name="arrow-left" slot="left" size="18px" color="#000" bind:tap="handleBack" /> <van-icon name="arrow-left" slot="left" size="18px" color="#000" bind:tap="handleBack" />
</navbar> </navbar>
@ -105,15 +103,6 @@
<view class="content">{{message.msgContent}}</view> <view class="content">{{message.msgContent}}</view>
<view class="btn" bind:tap="handleFillUserInfo">完善个人信息</view> <view class="btn" bind:tap="handleFillUserInfo">完善个人信息</view>
</view> </view>
<view class="referral" bind:tap="handleReferral" wx:elif="{{message.msgContentType==='8'}}">
<view class="r-header">
<view class="title">您最近有按照医生的 提醒,定期复诊吗?</view>
<image class="icon" src="{{imageUrl}}za-images/5/hostipal.png?t={{Timestamp}}"></image>
</view>
<view class="r-footer">
<view class="btn">已复诊</view>
</view>
</view>
</view> </view>
</view> </view>
<view class="patient" wx:if="{{message.msgFromType==='1'}}"> <view class="patient" wx:if="{{message.msgFromType==='1'}}">
@ -252,8 +241,6 @@
</view> </view>
</view> </view>
<referralFrom model:show="{{referralFromShow}}" bind:refresh="handleReferralReplay"></referralFrom>
<popup <popup
show="{{popupShow}}" show="{{popupShow}}"
type="{{popupType}}" type="{{popupType}}"

25
src/patient/pages/my/index.ts

@ -100,31 +100,6 @@ Page({
url, url,
}) })
}, },
routerVipTo() {
const { MedicineAuditSwitch, UseDrugsAuditStatus, isFollow } = this.data.zdUserInfo
if (MedicineAuditSwitch === '0') {
wx.navigateTo({
url: '/patient/pages/vipLogin/index',
})
} else if (MedicineAuditSwitch === '1') {
const pendPath = {
0: '/patient/pages/vipPending/index',
1: '/patient/pages/vipStartPending/index',
}[isFollow]
const url = {
1: pendPath,
2: '/patient/pages/vipReject/index',
}[UseDrugsAuditStatus]
wx.navigateTo({
url: url || '/patient/pages/vipCert/index',
})
} else {
wx.showToast({
icon: 'none',
title: '工程师正在努力建设中,敬请期待!',
})
}
},
handleMiniDoctor() { handleMiniDoctor() {
wx.navigateTo({ wx.navigateTo({

7
src/patient/pages/referral/index.json

@ -1,7 +0,0 @@
{
"navigationBarTitleText": "复诊记录",
"navigationStyle": "default",
"usingComponents": {
"referralFrom": "/components/referralFrom/index"
}
}

82
src/patient/pages/referral/index.scss

@ -1,82 +0,0 @@
page {
background-color: #f2f4f5;
}
.page {
padding: 30rpx;
.card {
margin-bottom: 24rpx;
padding: 32rpx 32rpx 0;
background: linear-gradient(1deg, #ffffff 0%, #e7f1f3 100%);
border-radius: 24rpx 24rpx 24rpx 24rpx;
border: 2rpx solid #ffffff;
.date {
display: flex;
font-weight: bold;
.label {
flex-shrink: 0;
width: 5em;
font-size: 32rpx;
color: #1d2021;
line-height: 36rpx;
}
.content {
font-size: 32rpx;
color: #283031;
line-height: 36rpx;
}
}
.container {
margin-top: 32rpx;
padding-bottom: 24rpx;
display: flex;
.label {
flex-shrink: 0;
width: 5em;
font-size: 32rpx;
color: #9aa1a2;
line-height: 48rpx;
}
.content {
font-size: 32rpx;
color: #283031;
line-height: 48rpx;
counter-reset: item;
&:empty::after {
display: inline;
content: '---';
}
.item {
display: flex;
&::before {
flex-shrink: 0;
width: 1.2em;
counter-increment: item; /* 递增计数器 */
content: counter(item) '.'; /* 显示计数器值 */
margin-right: 8px;
}
}
}
}
.adl {
border-top: 1px solid rgba(0, 0, 0, 0.04);
padding: 24rpx 0;
font-size: 32rpx;
color: rgba(154, 161, 162, 1);
display: flex;
align-items: center;
justify-content: space-between;
}
}
}
.record {
position: fixed;
bottom: 112rpx;
left: 50%;
transform: translateX(-50%);
z-index: 1;
width: 148rpx;
height: 148rpx;
}

118
src/patient/pages/referral/index.ts

@ -1,118 +0,0 @@
import dayjs from 'dayjs';
const app = getApp<IAppOption>();
Page({
data: {
list: [] as any[],
total: 0,
pagination: {
page: 1,
pages: 1,
count: 1,
},
referralFromShow: false,
referralFromParams: null as any,
},
onLoad(options) {
app.waitLogin({ type: [1] }).then(() => {
// 强制疾病患者以上身份
app.zdPermissionVerification(3, 0, `/patient/pages/referral/index`).then(() => {
this.getList();
if (options.pushId) {
this.updatePush(options.pushId);
}
});
});
},
updatePush(id) {
wx.ajax({
method: 'POST',
url: '?r=zd/push-click/update-click-status',
data: {
pushId: id,
},
});
},
getList(newPage = 1) {
wx.ajax({
method: 'GET',
url: '?r=zd/re-visit/get-list',
data: {
page: newPage,
},
}).then((res) => {
res.list = res.list.map((item: any) => {
item.adlDate = dayjs(item.LastAdlDate).format('YYYY-MM-DD');
return item;
});
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
total: res.count,
list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
handleEdit(e) {
const { index } = e.currentTarget.dataset;
const { list } = this.data;
const {
Id,
VisitDate,
Hormone,
TraditionalInhibitor,
GammaGlobulin,
PlasmaExchange,
BCellInhibitor,
FcRnAntagonists,
C5ComplementInhibitor,
ChineseMedicine,
Other,
} = list[index];
this.setData({
referralFromShow: true,
referralFromParams: {
recordId: Id,
visitDate: VisitDate,
hormone: Number(Hormone),
traditionalInhibitor: Number(TraditionalInhibitor),
gammaGlobulin: Number(GammaGlobulin),
plasmaExchange: Number(PlasmaExchange),
bCellInhibitor: Number(BCellInhibitor),
fcRnAntagonists: Number(FcRnAntagonists),
c5ComplementInhibitor: Number(C5ComplementInhibitor),
chineseMedicine: Number(ChineseMedicine),
other: Number(Other),
},
});
},
handleRecord() {
this.setData({
referralFromShow: true,
referralFromParams: null,
});
},
handleRefrech() {
this.getList();
},
handleAdl() {
wx.navigateTo({
url: '/patient/pages/myHealthRecord/index',
});
},
});
export {};

40
src/patient/pages/referral/index.wxml

@ -1,40 +0,0 @@
<page-meta page-style="{{ referralFromShow ? 'overflow: hidden;' : '' }}" />
<view class="page">
<view class="card" wx:for="{{list}}" wx:key="Id" bind:tap="handleEdit" data-index="{{index}}">
<view class="date">
<view class="label">复诊时间</view>
<view class="content">{{item.VisitDate}}</view>
</view>
<view class="container">
<view class="label">复诊方案</view>
<view class="content">
<view class="item" wx:if="{{item.Hormone==1}}">激素</view>
<view class="item" wx:if="{{item.TraditionalInhibitor==1}}">传统免疫抑制剂(如他克莫司、吗 替麦考酚酯等)</view>
<view class="item" wx:if="{{item.GammaGlobulin==1}}">静脉输注丙种球蛋白</view>
<view class="item" wx:if="{{item.PlasmaExchange==1}}">血浆置换</view>
<view class="item" wx:if="{{item.BCellInhibitor==1}}">B细胞抑制剂(如:利妥昔单抗、泰 它西普、伊奈利珠单抗)</view>
<view class="item" wx:if="{{item.FcRnAntagonists==1}}">FcRn拮抗剂(如:艾加莫德)</view>
<view class="item" wx:if="{{item.C5ComplementInhibitor==1}}">C5补体抑制剂(如:依库珠单抗)</view>
<view class="item" wx:if="{{item.ChineseMedicine==1}}">中药或中成药</view>
<view class="item" wx:if="{{item.Other==1}}">其他</view>
</view>
</view>
<view wx:if="{{item.LastAdlScore}}" class="adl" catch:tap="handleAdl" data-id="{{item.LastAdlId}}">
<view class="content">
最近一次ADL得分:
<text class="num">{{item.LastAdlScore}}分</text>
</view>
<view class="a-date">{{item.adlDate}}</view>
</view>
</view>
<pagination pagination="{{pagination}}"></pagination>
</view>
<image class="record" src="{{imageUrl}}za-images/5/record-btn.png?t={{Timestamp}}" bind:tap="handleRecord"></image>
<referralFrom
model:show="{{referralFromShow}}"
params="{{referralFromParams}}"
bind:refresh="handleRefrech"
></referralFrom>

8
src/patient/pages/story/index.json

@ -1,8 +0,0 @@
{
"navigationBarTitleText": "奇迹故事",
"navigationStyle": "custom",
"usingComponents": {
"navBar": "/components/zd-navBar/navBar",
"patient-tab-bar": "/components/patient-tab-bar/index"
}
}

105
src/patient/pages/story/index.scss

@ -1,105 +0,0 @@
.page {
position: relative;
.card-list {
padding: 0 40rpx 200rpx;
.card {
border-radius: 24rpx;
margin-bottom: 32rpx;
background: #ffffff;
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 24rpx;
border: 2rpx solid #ebecee;
.photo {
position: relative;
width: 100%;
height: 288rpx;
flex-shrink: 0;
border-radius: 24rpx 24rpx 0 0;
position: relative;
.photo-img {
width: 100%;
height: 100%;
border-radius: inherit;
}
.my-read {
padding: 14rpx 24rpx;
position: absolute;
top: 0;
left: 0;
font-size: 28rpx;
color: rgba(224, 71, 117, 1);
line-height: 1;
white-space: nowrap;
background: linear-gradient(90deg, #e5e9f5 0%, #fde4ec 100%);
border-radius: 24rpx 0rpx 24rpx 0rpx;
}
.money {
padding: 0 20rpx 0 0;
position: absolute;
right: 32rpx;
bottom: 18rpx;
background-color: #ffedca;
font-size: 24rpx;
color: #f5ad1d;
line-height: 36rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 24rpx;
.icon {
margin-right: 10rpx;
width: 38rpx;
height: 36rpx;
}
}
}
.inner {
padding: 32rpx 30rpx;
.title {
font-size: 32rpx;
color: #252525;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.content {
margin-top: 24rpx;
font-size: 24rpx;
color: #999999;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.i-footer {
margin-top: 12rpx;
display: flex;
justify-content: flex-end;
.f-item {
margin-left: 30rpx;
font-size: 22rpx;
color: #9b9ea6;
.icon {
margin-right: 5rpx;
width: 32rpx;
height: 32rpx;
vertical-align: middle;
}
}
}
}
}
}
.more {
position: fixed;
bottom: 200rpx;
right: 0;
.icon {
width: 210rpx;
height: 104rpx;
}
}
}

99
src/patient/pages/story/index.ts

@ -1,99 +0,0 @@
const app = getApp<IAppOption>();
Page({
data: {
list: [],
pagination: {
page: 1,
pages: 1,
count: 1,
},
alertPending: false,
zdUserInfo: {},
},
onLoad() {
app.zdGetTheme().then((res) => {
this.setData({
theme: res,
});
});
const SystemInfo = app.globalSystemInfo;
if (SystemInfo) {
const { bottom } = SystemInfo.capsulePosition;
this.setData({
bottom,
});
}
},
onShow() {
app.waitLogin({ type: [0, 1] }).then((_res) => {
this.getList();
app.getZdUserInfo(this, true);
});
},
getList(newPage = 1) {
const loading = !this.data.list.length;
wx.ajax({
method: 'GET',
url: '?r=zd/story/story-list',
data: {
page: newPage,
},
loading,
}).then((res) => {
const list = res.page == 1 ? res.list : [...this.data.list, ...res.list];
this.setData({
list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
});
});
},
handleStar(e) {
const { index } = e.currentTarget.dataset;
const { Id, ComplimentNum } = this.data.list[index];
wx.ajax({
method: 'POST',
url: '?r=zd/story/compliment',
data: {
ContentId: Id,
},
}).then(() => {
this.setData({
[`list[${index}].ComplimentNum`]: ComplimentNum * 1 + 1,
[`list[${index}].IsCompliment`]: 1,
});
});
},
onReachBottom() {
const { page, pages } = this.data.pagination;
if (pages > page) {
this.getList(page + 1);
}
},
routerTo(e) {
const { url } = e.currentTarget.dataset;
// let PageName = {
// '/patient/pages/storyGuide/index': 'BTN_STORY_SUBMIT',
// }[url]
// if (PageName) {
// }
if (url.includes('/patient/pages/publishStoryDetail/index')) {
}
if (url === '/patient/pages/storyGuide/index') {
}
wx.navigateTo({
url,
});
},
});

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save