Browse Source

3.0 联调 & bug处理

2.0
kola-web 6 days ago
parent
commit
fc31f8701e
  1. 18
      project.private.config.json
  2. 5
      src/app.json
  3. 4
      src/components/calendar/index.wxml
  4. 160
      src/components/customPoster/README.md
  5. 101
      src/components/customPoster/index.js
  6. 3
      src/components/customPoster/index.json
  7. 53
      src/components/customPoster/index.scss
  8. 43
      src/components/customPoster/index.wxml
  9. 0
      src/components/customPoster/wxml2canvas/README.md
  10. 1692
      src/components/customPoster/wxml2canvas/index.js
  11. 1
      src/components/customPoster/wxml2canvas/index.js.map
  12. 12
      src/components/popup/index.ts
  13. 2
      src/components/popup/index.wxml
  14. 4
      src/doctor/pages/calculator/index.json
  15. 98
      src/doctor/pages/calculator/index.scss
  16. 27
      src/doctor/pages/calculator/index.ts
  17. 40
      src/doctor/pages/calculator/index.wxml
  18. 455
      src/doctor/pages/index/index.scss
  19. 19
      src/doctor/pages/index/index.ts
  20. 193
      src/doctor/pages/index/index.wxml
  21. 7
      src/doctor/pages/patientDetail/index.json
  22. 362
      src/doctor/pages/patientDetail/index.scss
  23. 11
      src/doctor/pages/patientDetail/index.ts
  24. 164
      src/doctor/pages/patientDetail/index.wxml
  25. 6
      src/doctor/pages/poster/index.json
  26. 29
      src/doctor/pages/poster/index.scss
  27. 114
      src/doctor/pages/poster/index.ts
  28. 6
      src/doctor/pages/poster/index.wxml
  29. BIN
      src/images/banner2.png
  30. BIN
      src/images/bg22.png
  31. BIN
      src/images/icon100.png
  32. BIN
      src/images/icon101.png
  33. BIN
      src/images/icon102.png
  34. BIN
      src/images/icon103.png
  35. BIN
      src/images/illustrate.png
  36. BIN
      src/images/title13.png
  37. BIN
      src/images/title14.png
  38. BIN
      src/images/title15.png
  39. 2
      src/patient/pages/bbmReport/index.ts
  40. 2
      src/patient/pages/bbmReport/index.wxml
  41. 14
      src/patient/pages/blood/index.scss
  42. 7
      src/patient/pages/blood/index.ts
  43. 8
      src/patient/pages/blood/index.wxml
  44. 2
      src/patient/pages/bloodAdd/index.wxml
  45. 2
      src/patient/pages/bloodDetail/index.wxml
  46. 26
      src/patient/pages/casesAdd/index.ts
  47. 4
      src/patient/pages/casesAdd/index.wxml
  48. 1
      src/patient/pages/coltStat/index.scss
  49. 21
      src/patient/pages/coltStat/index.ts
  50. 4
      src/patient/pages/course/index.ts
  51. 8
      src/patient/pages/course/index.wxml
  52. 8
      src/patient/pages/file/index.scss
  53. 22
      src/patient/pages/file/index.ts
  54. 80
      src/patient/pages/file/index.wxml
  55. 7
      src/patient/pages/followPlan/index.scss
  56. 2
      src/patient/pages/followPlan/index.ts
  57. 7
      src/patient/pages/followPlan/index.wxml
  58. 5
      src/patient/pages/index/index.ts
  59. 5
      src/patient/pages/inhibitorsManage/index.ts
  60. 9
      src/patient/pages/inhibitorsManageDetail/index.ts
  61. 5
      src/patient/pages/preDiagnosisReport/index.ts

18
project.private.config.json

@ -23,13 +23,27 @@ @@ -23,13 +23,27 @@
"miniprogram": {
"list": [
{
"name": "患者-我的复诊记录",
"pathName": "patient/pages/revisitRecord/index",
"name": "医生-海报",
"pathName": "doctor/pages/poster/index",
"query": "",
"scene": null,
"launchMode": "default"
},
{
"name": "医生-计算器",
"pathName": "doctor/pages/calculator/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "患者-我的复诊记录",
"pathName": "patient/pages/revisitRecord/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "医生-修改手机号",
"pathName": "doctor/pages/changeTel/index",
"query": "",

5
src/app.json

@ -61,8 +61,11 @@ @@ -61,8 +61,11 @@
"pages/login/index",
"pages/index/index",
"pages/my/index",
"pages/patientDetail/index",
"pages/userInfo/index",
"pages/changeTel/index"
"pages/changeTel/index",
"pages/calculator/index",
"pages/poster/index"
]
},
{

4
src/components/calendar/index.wxml

@ -45,8 +45,8 @@ @@ -45,8 +45,8 @@
<view
class="b lr wrap"
bindtouchstart="calendarTouchstart"
catchtouchmove="calendarTouchmove"
catchtouchend="calendarTouchend"
bindtouchmove="calendarTouchmove"
bindtouchend="calendarTouchend"
>
<!-- 上月日期格子 -->
<view

160
src/components/customPoster/README.md

@ -0,0 +1,160 @@ @@ -0,0 +1,160 @@
# 海报插件
## 基于[wxml2canvas](https://github.com/wg-front/wxml2canvas)插件
### 插件引入
```json
{
"customPoster": "/components/customPoster/index"
}
```
```wxml
<customPoster params="{{params}}"></customPoster>
```
### 参数示例
```js
const data = {
params: {
info: { id: 'circle-note_mp', title: '动态页', desc: '指定动态的页面,mp' },
body: {
bgImg:
'https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/a74018e725861534f1644cff04780f4e_16273677601587.png',
width: '750',
height: '1254',
},
elements: [
{
id: 'circle-name',
desc: '圈名称',
type: 1,
text: '治疗讨论',
font: '宋体',
'font-size': '42',
color: '#FFFFFF',
'single-line': true,
halign: 'center',
top: '106',
},
{
id: 'master-name',
desc: '专家名称',
type: 1,
text: '健康小贴士',
font: '宋体',
'font-size': '38',
color: '#FFFFFF',
'single-line': true,
halign: 'center',
top: '237',
},
{
id: 'master-avatar',
desc: '专家头像',
type: 0,
picType: 'avatar',
src: 'https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/ceb31ac6137e873225b8cc826389a267_16655329078962.jpg',
width: '120',
height: '120',
halign: 'center',
shape: 'circle',
top: '328',
},
{
id: 'note-content',
desc: '动态内容',
type: 1,
text: '11月5日上海组织进口博览会CIIE大会,邀请大家来我们的展馆现场交流。',
font: '宋体',
'font-size': '45',
color: '#18191A',
width: '630',
height: '348',
left: '60',
top: '495',
},
{
id: 'note-title',
desc: '长文标题',
type: 1,
text: '',
font: '宋体',
'font-size': '42',
color: '#18191A',
width: '659',
height: '116',
left: '46',
top: '495',
'font-weight': 'bold',
},
{
id: 'note-summary',
desc: '长文摘要 ',
type: 1,
text: '',
font: '宋体',
'font-size': '42',
color: '#18191A',
width: '672',
height: '232',
left: '39',
top: '646',
},
{
id: 'note-more',
desc: '还有',
type: 1,
text: '还有3条精彩附件>',
font: '宋体',
'font-size': '31',
color: '#666666',
'single-line': true,
width: '292',
height: '46',
left: '60',
top: '1024',
},
{
id: 'scanText',
desc: '扫描二维码查看详情',
type: 1,
text: '扫描二维码查看详情',
font: '宋体',
'font-size': '31',
color: '#666666',
'single-line': true,
width: '279',
height: '43',
left: '60',
top: '1087',
},
{
id: 'note-qrcode',
desc: '专家列表的二维码',
type: 0,
picType: 'qrcode',
src: 'https://family.devred.hbraas.com/proxy/mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHJ8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyUWhDdGhTWVNlTjMxMDAwMDAwN3gAAgSonPxjAwQAAAAA',
width: '130',
height: '130',
left: '554',
top: '1012',
},
{
id: 'brand',
desc: 'brand×华秉科技',
type: 1,
text: '做企业数字化转型的亲密伙伴×华秉科技',
font: '宋体',
'font-size': '24',
color: '#B2B3B4',
'single-line': true,
halign: 'center',
top: '1192',
},
],
},
}
```

101
src/components/customPoster/index.js

@ -0,0 +1,101 @@ @@ -0,0 +1,101 @@
import Wxml2Canvas from "./wxml2canvas/index.js"; // 根据具体路径修改,node_modules会被忽略
Component({
properties: {
params: {
type: Object,
observer(newVal, _olVal) {
if (Object.keys(newVal).length > 0) {
this.paramsFormat(newVal);
this.setData({
width: newVal.body.width,
height: newVal.body.height,
bgImg: newVal.body.bgImg,
elementsMp: newVal.elements,
});
this.drawImage1();
}
},
},
},
data: {
imgUrl: "",
width: "",
height: "",
imgheight: "",
bgImg: "",
elementsMp: [],
},
lifetimes: {
attached() {},
},
methods: {
paramsFormat(params) {
params.elements.forEach((item) => {
if (item.type === 0) {
// 图片居中
if (item.halign === "center") {
item.left = (params.body.width - item.width) / 2;
}
} else {
item.text = item.text.replace(/[\r\n]/g, "");
// 文字居中(使文字标签宽度等于画布宽度,文字加上居中的className)
if (item.halign === "center") {
item.width = item.width || params.body.width;
item.left = (params.body.width - item.width) / 2;
}
if (item.halign === "right") {
item.width = params.body.width;
}
if (item.id === "shareText" && item.text.length > 30) {
item.text = item.text.slice(0, 30) + "...";
}
if (item.id === "note-title" && item.text.length > 28) {
item.text = item.text.slice(0, 28) + "...";
}
if (item.id === "note-content" && item.text.length > 90) {
item.text = item.text.slice(0, 90) + "...";
}
let len = params.elements.some((x) => x.id === "note-title" && x.text.length);
if (len && item.id === "note-summary" && item.text.length > 62) {
item.text = item.text.slice(0, 62) + "...";
} else if (item.id === "note-summary" && item.text.length > 76) {
item.text = item.text.slice(0, 76) + "...";
}
}
});
},
drawImage1() {
let self = this;
this.drawImage1 = new Wxml2Canvas({
obj: self,
width: this.data.width, // 宽, 以iphone6为基准,传具体数值,其它机型自动适配
height: this.data.height, // 高
element: "canvas1",
background: "transparent",
progress(percent) {},
finish(url) {
self.setData({
imgUrl: url,
});
self.triggerEvent("finish", url);
},
error(res) {},
});
let data = {
list: [
{
type: "wxml",
class: "#canvas-bill-body-mp .draw_canvas",
limit: "#canvas-bill-body-mp",
x: 0,
y: 0,
},
],
};
this.drawImage1.draw(data);
},
},
});

3
src/components/customPoster/index.json

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
{
"usingComponents": {}
}

53
src/components/customPoster/index.scss

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
.canvas-box {
position: fixed;
left: 1000000rpx;
top: -1000000rpx;
}
.canvas-body {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-color: #fff;
}
.draw_canvas {
position: absolute;
}
.canvas-bill {
position: fixed;
width: 750rpx;
left: 1000000rpx;
top: -1000000rpx;
visibility: hidden;
}
.lineOne {
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
}
.textCenter {
text-align: center;
}
.textRight {
text-align: right;
}
.billImg-box {
position: fixed;
left: 0;
top: 0;
z-index: 10;
width: 750rpx;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.75);
}
.image-load-text {
width: 750rpx;
text-align: center;
color: #fff;
line-height: 50rpx;
margin-top: 20rpx;
font-size: 28rpx;
letter-spacing: 2rpx;
}

43
src/components/customPoster/index.wxml

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
<view id="canvas-bill-body-mp" class="canvas-box" style="height: {{ height }}rpx; width: {{ width }}rpx;">
<view
data-type="{{bgImg ? 'background-image' : 'text'}}"
style="height: {{ height }}rpx; width: {{ width }}rpx;background-image: url({{bgImg}})"
class="canvas-body draw_canvas"
>
<view wx:for="{{elementsMp}}" wx:key="index" wx:for-item="item">
<image
class="draw_canvas"
data-type="{{item.shape === 'circle' ? 'radius-image' : 'image'}}"
data-url="{{item.src}}"
style="height: {{ item.height }}rpx; width: {{ item.width? item.width + 'rpx' : 'auto'}};left: {{item.left}}rpx;right: {{item.right}}rpx;top: {{item.top}}rpx;{{item.shape === 'circle'?'border-radius:50%;':''}}"
src="{{item.src}}"
wx:if="{{item.type === 0}}"
data-delay="{{item.delay}}"
></image>
<view
class="draw_canvas {{item['single-line'] ? 'lineOne' : ''}} {{item['halign'] === 'center' ? 'textCenter' : ''}} {{item['halign'] === 'right' ? 'textRight' : ''}}"
wx:if="{{item.type === 1}}"
data-background="{{item.bgcolor}}"
style="font-style: {{item['font-style']}};font-weight: {{item['font-weight']}};background-color: {{item.bgcolor}};color: {{item.color}};font-size: {{item['font-size']}}rpx;font-family: {{item.font}};height: {{ item.height }}rpx; width: {{ item.width? item.width + 'rpx' : 'auto'}};left: {{item.left}}rpx;right: {{item.right}}rpx;top: {{item.top}}rpx;line-height:{{item.lineHeight}}rpx;"
data-type="text"
data-text="{{item.text}}"
>
{{item.text}}
</view>
</view>
</view>
</view>
<canvas
canvas-id="canvas1"
class="canvas-bill"
style="height: {{ height }}rpx; width: {{ width }}rpx;transform: scale({{scale}})"
></canvas>
<!-- <image -->
<!-- wx:if="{{imgUrl}}" -->
<!-- src="{{imgUrl}}" -->
<!-- mode="aspectFit" -->
<!-- style="height: {{ height }}rpx; width: {{ width }}rpx;" -->
<!-- show-menu-by-longpress -->
<!-- ></image> -->

0
src/components/customPoster/wxml2canvas/README.md

1692
src/components/customPoster/wxml2canvas/index.js

File diff suppressed because it is too large Load Diff

1
src/components/customPoster/wxml2canvas/index.js.map

File diff suppressed because one or more lines are too long

12
src/components/popup/index.ts

@ -13,6 +13,10 @@ Component({ @@ -13,6 +13,10 @@ Component({
return {}
},
},
top: {
type: Number,
value: 50,
},
},
observers: {
show(val) {
@ -22,6 +26,14 @@ Component({ @@ -22,6 +26,14 @@ Component({
TCenterId: this.data.params.hospitalId,
})
}
if (this.data.type === 'inhibitors') {
console.log(this.data.params)
this.setData({
inhibitorsId: this.data.params.drugId || '',
inhibitorsName: this.data.params.drugName || '',
inhibitorsContent: this.data.params.content || '',
})
}
}
},
},

2
src/components/popup/index.wxml

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
round
z-index="{{100000}}"
show="{{ true }}"
custom-style="background:transparent;top:40%"
custom-style="background:transparent;{{!params.position ? 'top:'+top+'%' : ''}}"
position="{{params.position || 'center'}}"
safe-area-inset-bottom="{{false}}"
root-portal

4
src/doctor/pages/calculator/index.json

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
{
"navigationBarTitleText": "用药计算器",
"usingComponents": {}
}

98
src/doctor/pages/calculator/index.scss

@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
page {
background-color: rgba(246, 246, 246, 1);
}
.page-tip {
font-size: 28rpx;
color: rgba(255, 163, 112, 1);
padding: 18rpx;
text-align: center;
line-height: 44rpx;
background-color: rgba(255, 247, 232, 1);
}
.page {
padding: 32rpx 40rpx 80rpx;
.banner {
background-color: rgba(28, 107, 255, 1);
border: 1px solid rgba(255, 255, 255, 1);
border-radius: 24rpx;
.b-header {
padding: 24rpx 32rpx;
display: flex;
align-items: center;
gap: 36rpx;
.left {
flex-shrink: 0;
.name {
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
line-height: 44rpx;
}
.content {
margin-top: 8rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 0.5);
}
}
.wrap {
flex: 1;
flex-shrink: 0;
padding: 20rpx 32rpx;
background-color: #fff;
border-radius: 24rpx;
display: flex;
align-items: center;
.input {
font-size: 32rpx;
color: rgba(1, 1, 5, 1);
}
.input-place {
color: rgba(207, 209, 213, 1);
}
.sub {
flex-shrink: 0;
font-size: 32rpx;
color: rgba(1, 1, 5, 1);
}
}
}
.b-body {
padding: 32rpx 0;
display: flex;
background-color: #fff;
border-radius: 24rpx;
.item {
flex: 1;
padding: 0 48rpx;
.name {
font-size: 32rpx;
color: rgba(161, 164, 172, 1);
}
.content {
margin-top: 16rpx;
display: flex;
justify-content: space-between;
align-items: baseline;
.value {
font-size: 44rpx;
color: rgba(1, 1, 5, 1);
font-weight: bold;
}
.sub {
font-size: 32rpx;
color: rgba(1, 1, 5, 1);
}
}
}
.line {
flex-shrink: 0;
border-right: 1px dashed rgba(247, 247, 250, 1);
}
}
}
.illustrate {
margin-top: 32rpx;
width: 670rpx;
height: 964rpx;
}
}

27
src/doctor/pages/calculator/index.ts

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
const app = getApp<IAppOption>()
import { calc } from 'a-calc'
Page({
data: {
injectionWeight: '',
injectionDrugs: '',
injectionNum: '',
},
onLoad() {
app.waitLogin({ type: 2 }).then(() => {})
},
handleWeight(e) {
const value = e.detail.value
if (value) {
const injectionDrugs = calc(`${value} * 1.25 | =0 ~+`)
const injectionNum = calc(`${value} * 1.25 / 2 | =0 ~+`)
this.setData({
injectionDrugs,
injectionNum,
})
}
},
})
export {}

40
src/doctor/pages/calculator/index.wxml

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
<view class="page-tip">此方案仅供参考,请以最新说明书计算方式为准</view>
<view class="page">
<view class="banner">
<view class="b-header">
<view class="left">
<view class="name">体重</view>
<view class="content">输入体重, 自动计算用药</view>
</view>
<view class="wrap">
<input
type="digit"
class="input"
placeholder-class="input-place"
placeholder="请输入"
model:value="{{injectionWeight}}"
bindblur="handleWeight"
/>
<view class="sub">KG</view>
</view>
</view>
<view class="b-body">
<view class="item">
<view class="name">用药体积</view>
<view class="content">
<view class="value">{{injectionDrugs||'--'}}</view>
<view class="sub">ml</view>
</view>
</view>
<view class="line"></view>
<view class="item">
<view class="name">预计瓶数</view>
<view class="content">
<view class="value">{{injectionNum||'--'}}</view>
<view class="sub">瓶数</view>
</view>
</view>
</view>
</view>
<image class="illustrate" src="/images/illustrate.png"></image>
</view>

455
src/doctor/pages/index/index.scss

@ -2,14 +2,16 @@ page { @@ -2,14 +2,16 @@ page {
background-color: rgba(246, 246, 246, 1);
}
.page-title {
width: 400rpx;
height: 52rpx;
width: 399rpx;
height: 30rpx;
}
.page {
padding-bottom: 240rpx;
.header {
padding: 46rpx 0 50rpx;
min-height: 100vh;
padding: 0 40rpx;
.page-header {
padding: 54rpx 0 0;
.user {
padding: 0 32rpx;
display: flex;
@ -18,8 +20,8 @@ page { @@ -18,8 +20,8 @@ page {
gap: 24rpx;
.avatar {
flex-shrink: 0;
width: 120rpx;
height: 120rpx;
width: 116rpx;
height: 116rpx;
border-radius: 50%;
border: 2px solid #fff;
}
@ -27,12 +29,13 @@ page { @@ -27,12 +29,13 @@ page {
flex: 1;
.name {
font-size: 40rpx;
color: rgba(255, 255, 255, 1);
color: rgba(1, 1, 5, 1);
font-weight: bold;
}
.content {
margin-top: 22rpx;
margin-top: 12rpx;
font-size: 28rpx;
color: rgba(255, 255, 255, 1);
color: rgba(137, 141, 151, 1);
}
}
.code {
@ -41,361 +44,131 @@ page { @@ -41,361 +44,131 @@ page {
height: 72rpx;
}
}
.patient {
margin-top: 26rpx;
.p-title {
padding-left: 32rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
.num {
font-size: 48rpx;
font-weight: bold;
}
}
.swiper {
margin-top: 20rpx;
height: 116rpx;
.swiper-item {
padding: 0 12rpx 0;
box-sizing: border-box;
line-height: 1;
.swiper-item-container {
background-color: rgba(255, 255, 255, 0.9);
height: 100%;
border-radius: 24rpx;
padding: 20rpx;
display: flex;
align-items: center;
gap: 12rpx;
box-sizing: border-box;
.avatar {
width: 76rpx;
height: 76rpx;
border-radius: 50%;
}
.wrap {
.name {
font-size: 32rpx;
color: rgba(176, 178, 181, 1);
}
.date {
margin-top: 16rpx;
font-size: 24rpx;
color: rgba(105, 108, 114, 0.6);
}
}
}
&.active {
.swiper-item-container {
background-color: #fff;
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
.wrap {
.name {
color: rgba(28, 107, 255, 1);
}
.date {
color: rgba(28, 107, 255, 0.6);
}
}
}
}
}
}
}
.banner {
margin-top: 46rpx;
height: 130rpx;
.b-img {
display: block;
width: 100%;
height: 100%;
}
}
.body {
position: relative;
padding: 42rpx 40rpx 0;
background-color: rgba(246, 246, 246, 1);
border-radius: 32rpx 32rpx 0 0;
&::before {
position: absolute;
top: -25rpx;
left: 80rpx;
content: '';
width: 0;
height: 0;
border-style: solid;
border-width: 0 26rpx 26rpx 26rpx;
border-color: transparent transparent rgba(246, 246, 246, 1) transparent;
.info {
margin-top: 50rpx;
.i-header {
display: flex;
align-items: center;
justify-content: space-between;
.title {
width: 175rpx;
height: 34rpx;
}
.more {
font-size: 28rpx;
color: rgba(1, 1, 5, 0.4);
}
}
.doctor {
padding: 32rpx;
border-radius: 32rpx;
background-color: #fff;
.d-header {
display: flex;
align-items: center;
justify-content: space-between;
.title {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.message {
position: relative;
font-size: 28rpx;
color: rgba(0, 0, 0, 0.6);
.dot {
position: absolute;
right: -7rpx;
top: -7rpx;
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: rgba(232, 70, 60, 1);
}
}
.info-list {
padding-left: 40rpx;
margin: 30rpx -40rpx 0;
overflow-x: auto;
overflow-y: hidden;
display: flex;
gap: 24rpx;
&::-webkit-scrollbar {
display: none;
}
.d-container {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16rpx;
.avatar {
flex-shrink: 0;
width: calc(92rpx * 1.5);
display: flex;
.a-img {
flex-shrink: 0;
width: 92rpx;
height: 92rpx;
border-radius: 50%;
&:last-of-type {
transform: translateX(-50%);
}
}
}
.wrap {
flex: 1;
.name {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.content {
margin-top: 12rpx;
font-size: 28rpx;
color: rgba(0, 0, 0, 0.3);
}
.card {
flex-shrink: 0;
.photo {
width: 424rpx;
height: 246rpx;
border-radius: 24rpx 24rpx 0 0;
}
.btn {
flex-shrink: 0;
width: 162rpx;
height: 56rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
line-height: 56rpx;
background: #1c6bff;
border-radius: 68rpx 68rpx 68rpx 68rpx;
.content {
padding: 20rpx;
font-size: 28rpx;
color: rgba(1, 1, 5, 1);
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
background-color: #fff;
line-height: 32rpx;
border-radius: 0 0 24rpx 24rpx;
}
}
}
.progress {
margin-top: 38rpx;
.p-header {
padding-bottom: 32rpx;
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.patient {
margin-top: 50rpx;
.p-header {
display: flex;
align-items: center;
.title {
width: 236rpx;
height: 34rpx;
}
font-size: 36rpx;
color: rgba(28, 107, 255, 1);
}
.patient-list {
.card {
margin-top: 24rpx;
padding: 32rpx;
background: linear-gradient(358deg, #ffffff 0%, #f7faff 100%);
border-radius: 24rpx 24rpx 24rpx 24rpx;
border: 2rpx solid #ffffff;
display: flex;
gap: 24rpx;
.c-aside {
align-items: center;
justify-content: space-between;
gap: 20rpx;
.photo {
flex-shrink: 0;
display: flex;
flex-direction: column;
align-items: center;
.line-top {
flex-shrink: 0;
height: 48rpx;
border-right: 1px dashed rgba(225, 225, 226, 1);
}
.num {
flex-shrink: 0;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
font-size: 40rpx;
text-align: center;
line-height: 56rpx;
color: rgba(255, 255, 255, 1);
background-color: rgba(225, 225, 226, 1);
}
.line-bottom {
flex: 1;
border-right: 1px dashed rgba(225, 225, 226, 1);
}
.hide {
opacity: 0;
}
width: 112rpx;
height: 112rpx;
border-radius: 50%;
}
.c-container {
padding-bottom: 24rpx;
.wrap {
flex: 1;
.module {
position: relative;
padding: 32rpx;
background-color: #fff;
border-radius: 32rpx;
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.05);
.m-header {
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 32rpx;
color: rgba(171, 174, 180, 1);
display: flex;
align-items: center;
gap: 8rpx;
.tag {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
line-height: 34rpx;
padding: 0 18rpx;
border-radius: 40rpx 40rpx 40rpx 40rpx;
border: 1rpx solid rgba(171, 174, 180, 0.52);
}
}
.date {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
}
}
.m-body {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
.status {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
display: flex;
align-items: center;
gap: 10rpx;
.icon {
opacity: 0;
width: 36rpx;
height: 36rpx;
}
}
.detail {
font-size: 28rpx;
color: rgba(28, 107, 255, 1);
}
}
.btn {
position: absolute;
top: 48rpx;
right: 32rpx;
width: 162rpx;
height: 56rpx;
display: flex;
align-items: center;
justify-content: center;
.title {
display: flex;
align-items: center;
gap: 24rpx;
.name {
font-size: 32rpx;
color: rgba(181, 184, 189, 0.6);
border-radius: 68rpx 68rpx 68rpx 68rpx;
border: 2rpx solid rgba(181, 184, 189, 0.6);
}
}
}
&.finish {
.c-aside {
.line-top {
border-color: rgba(28, 107, 255, 1);
}
.num {
background-color: rgba(14, 209, 167, 1);
color: rgba(1, 1, 5, 1);
}
.line-bottom {
border-color: rgba(28, 107, 255, 1);
.date {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
}
}
.c-container {
.module {
.m-header {
.title {
color: rgba(34, 34, 34, 1);
}
}
.m-body {
.status {
color: rgba(14, 209, 167, 1);
.icon {
opacity: 1;
}
}
.detail {
color: rgba(28, 107, 255, 1);
}
}
}
}
}
&.current {
.c-aside {
.line-top {
border-color: rgba(28, 107, 255, 1);
}
.num {
background-color: rgba(28, 107, 255, 1);
.content {
margin-top: 20rpx;
padding: 1px;
background-color: rgba(28, 107, 255, 1);
border-radius: 8rpx;
display: inline-flex;
align-items: center;
font-size: 24rpx;
line-height: 32rpx;
.step {
padding: 0 12rpx;
color: #fff;
}
}
.c-container {
.module {
.m-header {
.title {
color: rgba(34, 34, 34, 1);
}
}
.m-body {
.status {
color: rgba(34, 34, 34, 1);
}
.detail {
color: rgba(28, 107, 255, 1);
}
}
.s-name {
padding: 0 12rpx;
border-radius: 0 8rpx 8rpx 8rpx;
color: rgba(28, 107, 255, 1);
background-color: #fff;
}
}
}
}
}
.kkd {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 22rpx;
.k-item {
padding: 28rpx 24rpx;
flex: 1;
background: linear-gradient(52deg, #ffffff 0%, #eff4ff 100%);
border-radius: 32rpx 32rpx 32rpx 32rpx;
border: 2rpx solid #ffffff;
display: flex;
align-items: center;
.icon {
width: 88rpx;
height: 88rpx;
}
.wrap {
padding-left: 14rpx;
.title {
font-size: 28rpx;
color: rgba(34, 34, 34, 1);
line-height: 44rpx;
}
.content {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
flex-shrink: 0;
width: 60rpx;
height: 60rpx;
}
}
}

19
src/doctor/pages/index/index.ts

@ -1,8 +1,23 @@ @@ -1,8 +1,23 @@
const _app = getApp<IAppOption>();
const _app = getApp<IAppOption>()
Page({
data: {},
onLoad() {},
});
handleCalculator() {
wx.navigateTo({
url: '/doctor/pages/calculator/index',
})
},
handlePatientDetail() {
wx.navigateTo({
url: '/doctor/pages/patientDetail/index',
})
},
handlePoster() {
wx.navigateTo({
url: '/doctor/pages/poster/index',
})
},
})
export {}

193
src/doctor/pages/index/index.wxml

@ -1,11 +1,8 @@ @@ -1,11 +1,8 @@
<navbar fixed custom-style="background:{{background}}" back>
<image class="page-title" slot="left" src="{{imageUrl}}title11.png?t={{Timestamp}}"></image>
<image class="page-title" slot="left" src="/images/title13.png"></image>
</navbar>
<view
class="page"
style="padding-top:{{pageTop}}px;background:url('{{imageUrl}}bg17.png?t={{Timestamp}}') no-repeat top center/100% 666rpx"
>
<view class="header">
<view class="page" style="padding-top:{{pageTop}}px;">
<view class="page-header">
<view class="user">
<image
class="avatar"
@ -15,160 +12,52 @@ @@ -15,160 +12,52 @@
<view class="name">王青</view>
<view class="content">北京协和医院</view>
</view>
<image class="code" src="{{imageUrl}}icon72.png?t={{Timestamp}}"></image>
</view>
<view class="patient">
<view class="p-title">
您当前跟进
<text class="num">4</text>
个患者
</view>
<swiper class="swiper" display-multiple-items="{{2.8}}" circular previous-margin="10rpx">
<swiper-item class="swiper-item {{index==0 && 'active'}}" wx:for="{{6}}" wx:key="index">
<view class="swiper-item-container">
<image
class="avatar"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<view class="wrap">
<view class="name">刘可</view>
<view class="date">2024.3.12</view>
</view>
</view>
</swiper-item>
</swiper>
<image class="code" bind:tap="handlePoster" src="/images/icon100.png"></image>
</view>
</view>
<view class="body">
<view class="doctor">
<view class="d-header">
<view class="title">共同照护团队</view>
<view class="message">
最新消息12条
<view class="dot"></view>
</view>
</view>
<view class="d-container">
<view class="avatar">
<image
class="a-img"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<image
class="a-img"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
</view>
<view class="wrap">
<view class="name">刘湖飞</view>
<view class="content">天津血液科诊断中心</view>
</view>
<view class="btn">去看看></view>
<view class="banner" bind:tap="handleCalculator">
<image class="b-img" src="/images/banner2.png"></image>
</view>
<view class="info">
<view class="i-header">
<image class="title" src="/images/title14.png"></image>
<view class="more">
查看更多
<van-icon name="arrow" />
</view>
</view>
<view class="progress">
<view class="p-header">刘可的检查进展</view>
<view class="card finish">
<view class="c-aside">
<view class="line-top hide"></view>
<view class="num">1</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">诊前筛查</view>
<view class="date">2024-08-24</view>
</view>
<view class="m-body">
<view class="status">
已完成
<image class="icon" src="{{imageUrl}}icon29.png?t={{Timestamp}}"></image>
</view>
<view class="detail">查看详情</view>
</view>
</view>
</view>
</view>
<view class="card current">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">2</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">注射前准备</view>
</view>
<view class="m-body">
<view class="status">
进行中
<image class="icon" src="{{imageUrl}}icon29.png?t={{Timestamp}}"></image>
</view>
</view>
</view>
</view>
</view>
<view class="card">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">3</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">
诊前筛查
<view class="tag">还未确定注射日</view>
</view>
</view>
<view class="m-body">
<view class="status">
待启动
<image class="icon" src="{{imageUrl}}icon29.png?t={{Timestamp}}"></image>
</view>
</view>
</view>
</view>
</view>
<view class="card">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">4</view>
<view class="line-bottom hide"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">诊前筛查</view>
</view>
<view class="m-body">
<view class="status">
已完成
<image class="icon" src="{{imageUrl}}icon29.png?t={{Timestamp}}"></image>
</view>
</view>
<view class="btn">待启动</view>
</view>
</view>
<view class="info-list">
<view class="card" wx:for="{{10}}" wx:key="index">
<image
class="photo"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<view class="content">什么是基因疗法? 治疗流程了解</view>
</view>
</view>
<view class="kkd">
<view class="k-item">
<image class="icon" src="{{imageUrl}}icon73.png?t={{Timestamp}}"></image>
<view class="wrap">
<view class="title">他的全部</view>
<view class="content">病历档案</view>
</view>
</view>
<view class="k-item">
<image class="icon" src="{{imageUrl}}icon74.png?t={{Timestamp}}"></image>
</view>
<view class="patient">
<view class="p-header">
<image class="title" src="/images/title15.png"></image>
(12)
</view>
<view class="patient-list">
<view class="card" bind:tap="handlePatientDetail">
<image
class="photo"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<view class="wrap">
<view class="title">查看他的</view>
<view class="content">健康变化</view>
<view class="title">
<view class="name">刘可</view>
<view class="date">入组:2024.3.12</view>
</view>
<view class="content">
<view class="step">第一阶段</view>
<view class="s-name">诊前筛选</view>
</view>
</view>
<image class="icon" src="/images/icon12.png"></image>
</view>
</view>
</view>

7
src/doctor/pages/patientDetail/index.json

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
{
"navigationStyle": "custom",
"usingComponents": {
"navbar": "/components/navbar/index",
"doctor-tab-bar": "/doctor/components/doctor-tab-bar/index"
}
}

362
src/doctor/pages/patientDetail/index.scss

@ -0,0 +1,362 @@ @@ -0,0 +1,362 @@
page {
background-color: rgba(246, 246, 246, 1);
}
.nav-title {
color: rgba(255, 255, 255, 1);
&.nav-title_dark {
color: #000;
}
}
.page {
padding-bottom: 160rpx;
.header {
padding: 46rpx 0 0;
.user {
padding: 0 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24rpx;
.avatar {
flex-shrink: 0;
width: 120rpx;
height: 120rpx;
border-radius: 50%;
border: 2px solid #fff;
}
.wrap {
flex: 1;
.w-header {
display: flex;
align-items: center;
gap: 16rpx;
.name {
font-size: 36rpx;
color: rgba(255, 255, 255, 1);
}
.age {
padding: 0 14rpx;
border-radius: 20rpx;
display: flex;
align-items: center;
gap: 6rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 1);
line-height: 32rpx;
border: 1px solid #fff;
.icon {
width: 28rpx;
height: 28rpx;
}
}
.site {
padding: 0 14rpx;
border-radius: 20rpx;
background-color: rgba(32, 196, 255, 1);
display: flex;
align-items: center;
gap: 6rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 1);
line-height: 32rpx;
.icon {
width: 28rpx;
height: 28rpx;
}
}
}
.w-footer {
margin-top: 22rpx;
display: flex;
justify-content: space-between;
align-items: center;
.content {
font-size: 28rpx;
color: rgba(255, 255, 255, 1);
}
.doc {
font-size: 28rpx;
color: rgba(255, 255, 255, 1);
}
}
}
}
}
.body {
position: relative;
padding: 42rpx 40rpx 0;
.doctor {
padding: 32rpx;
border-radius: 32rpx;
background-color: #fff;
.d-header {
display: flex;
align-items: center;
justify-content: space-between;
.title {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.message {
position: relative;
font-size: 28rpx;
color: rgba(0, 0, 0, 0.6);
.dot {
position: absolute;
right: -7rpx;
top: -7rpx;
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: rgba(232, 70, 60, 1);
}
}
}
.d-container {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16rpx;
.avatar {
flex-shrink: 0;
width: calc(92rpx * 1.5);
display: flex;
.a-img {
flex-shrink: 0;
width: 92rpx;
height: 92rpx;
border-radius: 50%;
&:last-of-type {
transform: translateX(-50%);
}
}
}
.wrap {
flex: 1;
.name {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.content {
margin-top: 12rpx;
font-size: 28rpx;
color: rgba(0, 0, 0, 0.3);
}
}
.btn {
flex-shrink: 0;
width: 162rpx;
height: 56rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 1);
text-align: center;
line-height: 56rpx;
background: #1c6bff;
border-radius: 68rpx 68rpx 68rpx 68rpx;
}
}
}
.progress {
margin-top: 38rpx;
.p-header {
padding-bottom: 32rpx;
font-size: 36rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
.card {
display: flex;
gap: 24rpx;
.c-aside {
flex-shrink: 0;
display: flex;
flex-direction: column;
align-items: center;
.line-top {
flex-shrink: 0;
height: 48rpx;
border-right: 1px dashed rgba(225, 225, 226, 1);
}
.num {
flex-shrink: 0;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
font-size: 40rpx;
text-align: center;
line-height: 56rpx;
color: rgba(255, 255, 255, 1);
background-color: rgba(225, 225, 226, 1);
}
.line-bottom {
flex: 1;
border-right: 1px dashed rgba(225, 225, 226, 1);
}
.hide {
opacity: 0;
}
}
.c-container {
padding-bottom: 24rpx;
flex: 1;
.module {
position: relative;
padding: 32rpx;
background-color: #fff;
border-radius: 32rpx;
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.05);
.m-header {
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 32rpx;
color: rgba(171, 174, 180, 1);
display: flex;
align-items: center;
gap: 8rpx;
.tag {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
line-height: 34rpx;
padding: 0 18rpx;
border-radius: 40rpx 40rpx 40rpx 40rpx;
border: 1rpx solid rgba(171, 174, 180, 0.52);
}
}
.date {
font-size: 28rpx;
color: rgba(171, 174, 180, 1);
}
}
.m-body {
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
.status {
width: 154rpx;
height: 40rpx;
}
.detail {
font-size: 28rpx;
color: rgba(28, 107, 255, 1);
}
}
.btn {
position: absolute;
top: 48rpx;
right: 32rpx;
width: 162rpx;
height: 56rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: rgba(181, 184, 189, 0.6);
border-radius: 68rpx 68rpx 68rpx 68rpx;
border: 2rpx solid rgba(181, 184, 189, 0.6);
}
}
}
&.finish {
.c-aside {
.line-top {
border-color: rgba(28, 107, 255, 1);
}
.num {
background-color: rgba(14, 209, 167, 1);
}
.line-bottom {
border-color: rgba(28, 107, 255, 1);
}
}
.c-container {
.module {
.m-header {
.title {
color: rgba(34, 34, 34, 1);
}
}
.m-body {
.status {
color: rgba(14, 209, 167, 1);
.icon {
opacity: 1;
}
}
.detail {
color: rgba(28, 107, 255, 1);
}
}
}
}
}
&.current {
.c-aside {
.line-top {
border-color: rgba(28, 107, 255, 1);
}
.num {
background-color: rgba(28, 107, 255, 1);
}
}
.c-container {
.module {
.m-header {
.title {
color: rgba(34, 34, 34, 1);
}
}
.m-body {
.status {
color: rgba(34, 34, 34, 1);
}
.detail {
color: rgba(28, 107, 255, 1);
}
}
}
}
}
}
}
.kkd {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
gap: 22rpx;
.k-item {
padding: 28rpx 24rpx;
flex: 1;
background: linear-gradient(52deg, #ffffff 0%, #eff4ff 100%);
border-radius: 32rpx 32rpx 32rpx 32rpx;
border: 2rpx solid #ffffff;
display: flex;
align-items: center;
.icon {
width: 88rpx;
height: 88rpx;
}
.wrap {
padding-left: 14rpx;
.title {
font-size: 28rpx;
color: rgba(34, 34, 34, 1);
line-height: 44rpx;
}
.content {
font-size: 32rpx;
color: rgba(34, 34, 34, 1);
font-weight: bold;
}
}
}
}
}
}

11
src/doctor/pages/patientDetail/index.ts

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
const _app = getApp<IAppOption>()
Page({
data: {},
onLoad() {},
handleBack() {
wx.navigateBack()
},
})
export {}

164
src/doctor/pages/patientDetail/index.wxml

@ -0,0 +1,164 @@ @@ -0,0 +1,164 @@
<navbar fixed custom-style="background:{{background}}" back>
<van-icon
name="arrow-left"
slot="left"
size="18px"
color="{{background==='#ffffff' ? '#000' : '#fff'}}"
bind:tap="handleBack"
/>
<view class="nav-title {{background=='#ffffff' && 'nav-title_dark'}}" slot="title">患者详情</view>
</navbar>
<view
class="page"
style="padding-top:{{pageTop}}px;background:url('{{imageUrl}}bg22.png?t={{Timestamp}}') no-repeat top center/100% 600rpx"
>
<view class="header">
<view class="user">
<image
class="avatar"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<view class="wrap">
<view class="w-header">
<view class="name">王青</view>
<view class="age">
<image class="icon" src="{{imageUrl}}icon91.png?t={{Timestamp}}"></image>
32岁
</view>
<view class="site">
<image class="icon" src="{{imageUrl}}icon92.png?t={{Timestamp}}"></image>
北京
</view>
</view>
<view class="w-footer">
<view class="content">入组时间:2025年6月12日</view>
<view class="doc">
查看档案
<van-icon name="arrow" />
</view>
</view>
</view>
</view>
</view>
<view class="body">
<view class="doctor">
<view class="d-header">
<view class="title">共同照护团队</view>
<view class="message">
最新消息12条
<view class="dot"></view>
</view>
</view>
<view class="d-container">
<view class="avatar">
<image
class="a-img"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
<image
class="a-img"
src="https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567"
></image>
</view>
<view class="wrap">
<view class="name">刘湖飞</view>
<view class="content">天津血液科诊断中心</view>
</view>
<view class="btn">去看看></view>
</view>
</view>
<view class="progress">
<view class="p-header">刘可的检查进展</view>
<view class="card finish">
<view class="c-aside">
<view class="line-top hide"></view>
<view class="num">1</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">诊前筛查</view>
<view class="date">2024-08-24</view>
</view>
<view class="m-body">
<image class="status" src="/images/icon102.png"></image>
<view class="detail">查看详情</view>
</view>
</view>
</view>
</view>
<view class="card current">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">2</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">注射前准备</view>
</view>
<view class="m-body">
<image class="status" src="/images/icon101.png"></image>
</view>
</view>
</view>
</view>
<view class="card">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">3</view>
<view class="line-bottom"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">
诊前筛查
<view class="tag">还未确定注射日</view>
</view>
</view>
<view class="m-body">
<image class="status" src="/images/icon103.png"></image>
</view>
</view>
</view>
</view>
<view class="card">
<view class="c-aside">
<view class="line-top"></view>
<view class="num">4</view>
<view class="line-bottom hide"></view>
</view>
<view class="c-container">
<view class="module">
<view class="m-header">
<view class="title">诊前筛查</view>
</view>
<view class="m-body">
<image class="status" src="/images/icon103.png"></image>
</view>
<view class="btn">待启动</view>
</view>
</view>
</view>
</view>
<view class="kkd">
<view class="k-item">
<image class="icon" src="{{imageUrl}}icon73.png?t={{Timestamp}}"></image>
<view class="wrap">
<view class="title">他的全部</view>
<view class="content">病历档案</view>
</view>
</view>
<view class="k-item">
<image class="icon" src="{{imageUrl}}icon74.png?t={{Timestamp}}"></image>
<view class="wrap">
<view class="title">查看他的</view>
<view class="content">健康变化</view>
</view>
</view>
</view>
</view>
</view>

6
src/doctor/pages/poster/index.json

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
{
"navigationBarTitleText": "海报",
"usingComponents": {
"customPoster": "/components/customPoster/index"
}
}

29
src/doctor/pages/poster/index.scss

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
page {
background-color: #c65174;
}
.page {
position: relative;
height: 1448rpx;
.poster {
width: 100%;
height: 100%;
}
.btn {
position: absolute;
bottom: 88rpx;
left: 50%;
transform: translateX(-50%);
margin: 36rpx auto;
padding: 18rpx 44rpx;
font-size: 36rpx;
line-height: 48rpx;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, 1);
border-radius: 64rpx 64rpx 64rpx 64rpx;
border: 1px solid rgba(255, 255, 255, 1);
box-sizing: border-box;
}
}

114
src/doctor/pages/poster/index.ts

@ -0,0 +1,114 @@ @@ -0,0 +1,114 @@
const app = getApp<IAppOption>()
Page({
data: {
doctor: {},
hospital: {},
qrCode: '',
posterUrl: '',
params: {},
},
onLoad() {
const SystemInfo = app.globalSystemInfo
if (SystemInfo) {
const { bottom } = SystemInfo.capsulePosition
this.setData({
bottom,
})
}
app.waitLogin().then((_res) => {
wx.showLoading({
title: '加载中',
})
app.mpBehavior({ doctor: true, PageName: 'PG_DOCTORINVITEPATIENT' })
this.getDetail()
})
},
getDetail() {
wx.ajax({
method: 'GET',
url: '?r=zd/doctor/account/info',
data: {},
}).then((res) => {
this.setData({
doctor: res.doctor,
hospital: res.hospital,
})
this.getPrepare(res.doctor.Id)
})
},
getPrepare(id) {
wx.ajax({
method: 'POST',
url: '?r=poster/prepare',
data: {
posterId: 'doctor_mini',
doctorId: id,
},
}).then((res) => {
this.setData({
params: res,
})
})
},
getQrCode() {
this.setData({
qrCode: `${app.globalData.url}?r=zd/doctor/account/mp-info&loginState=${app.globalData.loginState}`,
})
},
handleDownload() {
wx.showToast({
title: '请长按海报图片进行保存',
icon: 'none',
})
// wx.showLoading({
// title: '加载中',
// })
// wx.downloadFile({
// url: this.data.posterUrl,
// success: (res) => {
// if (res.statusCode === 200) {
// wx.saveImageToPhotosAlbum({
// filePath: res.tempFilePath,
// success: () => {
// wx.hideLoading()
// wx.showToast({
// title: '保存成功,请到相册中查看',
// })
// },
// fail: () => {
// wx.hideLoading()
// wx.showToast({
// icon: 'none',
// title: '保存失败,请稍后重试',
// })
// },
// })
// } else {
// wx.hideLoading()
// wx.showToast({
// icon: 'none',
// title: '下载失败,请稍后重试',
// })
// }
// },
// fail: () => {
// wx.hideLoading()
// wx.showToast({
// icon: 'none',
// title: '下载失败,请稍后重试',
// })
// },
// })
},
handlePosterFinish(e: any) {
this.setData({
posterUrl: e.detail,
})
wx.hideLoading()
},
handleBack() {
wx.navigateBack()
},
})

6
src/doctor/pages/poster/index.wxml

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<view class="page">
<image class="poster" show-menu-by-longpress src="{{posterUrl}}"></image>
<view class="btn" bind:tap="handleDownload">长按图片保存</view>
</view>
<customPoster params="{{params}}" bind:finish="handlePosterFinish"></customPoster>

BIN
src/images/banner2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
src/images/bg22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 KiB

BIN
src/images/icon100.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

BIN
src/images/icon101.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
src/images/icon102.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
src/images/icon103.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
src/images/illustrate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
src/images/title13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
src/images/title14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
src/images/title15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

2
src/patient/pages/bbmReport/index.ts

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
const app = getApp<IAppOption>()
import { calc, fmt } from 'a-calc'
import { calc } from 'a-calc'
Page({
data: {

2
src/patient/pages/bbmReport/index.wxml

@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
<input
class="input"
model:value="{{injectionWeight}}"
type="number"
type="digit"
placeholder-class="input-place"
placeholder="请输入"
bindblur="handleWeight"

14
src/patient/pages/blood/index.scss

@ -36,7 +36,7 @@ page { @@ -36,7 +36,7 @@ page {
border-radius: 12rpx;
.content {
flex: 1;
font-size: 32rpx;
font-size: 28rpx;
color: rgba(1, 1, 5, 1);
&:empty::after {
content: attr(data-place);
@ -52,6 +52,18 @@ page { @@ -52,6 +52,18 @@ page {
}
}
}
.clear {
flex-shrink: 0;
font-size: 28rpx;
color: rgba(1, 1, 5, 1);
display: flex;
align-items: center;
gap: 12rpx;
.icon {
width: 36rpx;
height: 36rpx;
}
}
}
}
.list {

7
src/patient/pages/blood/index.ts

@ -19,6 +19,13 @@ Page({ @@ -19,6 +19,13 @@ Page({
this.addVisitRecord()
})
},
handleClear() {
this.setData({
beginDate: '',
endDate: '',
})
this.getList(1)
},
addVisitRecord() {
wx.ajax({
method: 'POST',

8
src/patient/pages/blood/index.wxml

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<view class="page">
<view class="header">
<view class="range">
<picker class="picker" mode="date" end="{{endDate}}" model:value="{{beginDate}}" bind:change="handleChange">
<picker class="picker" mode="date" end="{{endDate}}" model:value="{{beginDate}}" bind:change="handleChange">
<view class="picker-content">
<view class="content" data-place="开始时间">{{beginDate}}</view>
<view class="tril"></view>
@ -14,6 +14,10 @@ @@ -14,6 +14,10 @@
<view class="tril"></view>
</view>
</picker>
<view class="clear" catchtap="handleClear">
<image class="icon" src="{{imageUrl}}icon98.png?t={{Timestamp}}"></image>
重选
</view>
</view>
</view>
<view class="list">
@ -33,7 +37,7 @@ @@ -33,7 +37,7 @@
</view>
</view>
</view>
<view class="row-resver">
<view class="row-resver" wx:if="{{item.remark}}">
<view class="label">其他情况备注</view>
<view class="content">{{item.remark}}</view>
</view>

2
src/patient/pages/bloodAdd/index.wxml

@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
</view>
<view class="card2">
<view class="title">
您近6个月的出血情况
其他情况备注
<view class="stat-font">
<text class="num">{{remark.length}}</text>
/200

2
src/patient/pages/bloodDetail/index.wxml

@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
</view>
</view>
</view>
<view class="card2">
<view class="card2" wx:if="{{detail.remark}}">
<view class="title">其他情况备注</view>
<view class="content">
{{detail.remark}}

26
src/patient/pages/casesAdd/index.ts

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
const licia = require('miniprogram-licia')
import dayjs from 'dayjs'
const app = getApp<IAppOption>()
@ -249,11 +250,7 @@ Page({ @@ -249,11 +250,7 @@ Page({
bleedingParts,
})
},
updateSave(e = false) {
let back = false
if (e) {
back = (e as any).currentTarget.dataset.back
}
updateSave(back = false) {
const { formKeys, ...reset } = this.data
const form: any = formKeys.reduce((pre, cur) => {
pre[cur] = reset[cur]
@ -280,12 +277,29 @@ Page({ @@ -280,12 +277,29 @@ Page({
})
this.time = setTimeout(() => {
wx.navigateBack()
})
}, 2000)
} else {
this.handlePrevUpdate()
}
})
},
handleSubmit() {
const { formKeys, ...reset } = this.data
const empty = formKeys.every((key) => {
if (licia.isObj(reset[key])) {
return licia.isEmpty(1)
}
return !reset[key]
})
if (empty) {
wx.showToast({
icon: 'none',
title: '至少选择或填写一项信息',
})
return
}
this.updateSave(true)
},
handlePrevUpdate() {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]

4
src/patient/pages/casesAdd/index.wxml

@ -305,7 +305,7 @@ @@ -305,7 +305,7 @@
</scroll-view>
<view class="footer">
<view class="cancel" bind:tap="handlePrev" data-value="{{1}}">上一步</view>
<view class="submit" bind:tap="updateSave" data-back="{{true}}">完成</view>
<view class="submit" bind:tap="handleSubmit">完成</view>
</view>
</swiper-item>
</swiper>
@ -314,7 +314,7 @@ @@ -314,7 +314,7 @@
<popup
show="{{popupShow}}"
type="{{popupType}}"
style="top: 30%"
top="{{40}}"
params="{{popupParams}}"
bind:ok="handlePopupOk"
bind:cancel="handlePopupCancel"

1
src/patient/pages/coltStat/index.scss

@ -140,6 +140,7 @@ page { @@ -140,6 +140,7 @@ page {
.doc {
margin-top: 32rpx;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 58rpx;
.total {

21
src/patient/pages/coltStat/index.ts

@ -104,6 +104,7 @@ Page({ @@ -104,6 +104,7 @@ Page({
altList,
cfRecordList,
}
console.log('DEBUGPRINT[107]: index.ts:102: initParams=', initParams)
this.initChart(initParams, rangeDate)
})
},
@ -293,15 +294,15 @@ Page({ @@ -293,15 +294,15 @@ Page({
},
initChart({ altList = {}, astList = {}, cfRecordList = {} }, rangeDate) {
const arr = this.generateDateArray(rangeDate.beginDate, rangeDate.endDate)
console.log('DEBUGPRINT[99]: index.ts:263: arr=', arr)
const astArr: string[] = []
const altArr: string[] = []
const cfRecordArr: string[] = []
const astArr: Number[] = []
const altArr: Number[] = []
const cfRecordArr: Number[] = []
arr.forEach((item: any) => {
astArr.push(astList[item] || 0)
altArr.push(altList[item] || 0)
cfRecordArr.push(cfRecordList[item] || 0)
astArr.push(astList[item] ? Number(astList[item]) : 0)
altArr.push(altList[item] ? Number(altList[item]) : 0)
cfRecordArr.push(cfRecordList[item] ? Number(cfRecordList[item]) : 0)
})
console.log(altArr)
this.ecDataTrendComponent.init((canvas, width, height, dpr) => {
let chart = echarts.init(canvas, null, {
width: width,
@ -423,6 +424,7 @@ Page({ @@ -423,6 +424,7 @@ Page({
name: 'AST天门冬氨酸氨基转移酶',
data: astArr,
type: 'line',
yAxisIndex: 1,
lineStyle: { width: 4 },
symbolSize: 6,
color: {
@ -442,8 +444,8 @@ Page({ @@ -442,8 +444,8 @@ Page({
},
{
name: 'ALT丙氨酸氨基转移酶',
yAxisIndex: 0,
data: altList,
yAxisIndex: 1,
data: altArr,
type: 'line',
lineStyle: { width: 4 },
symbolSize: 6,
@ -464,7 +466,6 @@ Page({ @@ -464,7 +466,6 @@ Page({
},
{
name: '凝血因子水平',
yAxisIndex: 1,
data: cfRecordArr,
type: 'line',
lineStyle: { width: 4 },

4
src/patient/pages/course/index.ts

@ -71,7 +71,7 @@ Page({ @@ -71,7 +71,7 @@ Page({
})
},
handleTCenter() {
const { periodInfo1 } = this.data
const { periodInfo2 } = this.data
wx.ajax({
method: 'GET',
url: '?r=wtx/common/get-treatment-center-list',
@ -81,7 +81,7 @@ Page({ @@ -81,7 +81,7 @@ Page({
popupShow: true,
popupType: 'TCenter',
popupParams: {
hospitalId: periodInfo1.hospitalId,
hospitalId: periodInfo2.hospitalId,
list: res,
},
})

8
src/patient/pages/course/index.wxml

@ -300,11 +300,7 @@ @@ -300,11 +300,7 @@
class="feel"
src="{{imageUrl}}icon43.png?t={{Timestamp}}"
></image>
<image
wx:else
class="feel"
src="{{imageUrl}}icon49.png?t={{Timestamp}}"
></image>
<image wx:else class="feel" src="{{imageUrl}}icon49.png?t={{Timestamp}}"></image>
</view>
</view>
</view>
@ -362,7 +358,7 @@ @@ -362,7 +358,7 @@
<view class="c-footer">
<view
class="content"
wx:if="{{periodInfo4.followUpWeekInfo.iYear || periodInfo4.followUpWeekInfo.iWeek}}"
wx:if="{{periodInfo4.followUpWeekInfo.iYear || periodInfo4.followUpWeekInfo.iYearDay || periodInfo4.followUpWeekInfo.iWeek}}"
>
当前是注射后
<block wx:if="{{periodInfo4.followUpWeekInfo.iYear}}">

8
src/patient/pages/file/index.scss

@ -103,6 +103,11 @@ page { @@ -103,6 +103,11 @@ page {
.container0 {
padding: 8rpx 0 0;
.none {
display: block;
margin: 30rpx auto;
width: 80%;
}
.card1 {
margin-top: 24rpx;
border-radius: 24rpx 24rpx 24rpx 24rpx;
@ -418,6 +423,7 @@ page { @@ -418,6 +423,7 @@ page {
display: flex;
gap: 32rpx;
.label {
flex-shrink: 0;
width: 9em;
font-size: 32rpx;
color: rgba(161, 164, 172, 1);
@ -447,6 +453,7 @@ page { @@ -447,6 +453,7 @@ page {
align-items: center;
gap: 32rpx;
.label {
flex-shrink: 0;
width: 11em;
font-size: 32rpx;
color: rgba(161, 164, 172, 1);
@ -538,6 +545,7 @@ page { @@ -538,6 +545,7 @@ page {
position: relative;
z-index: 1;
padding: 40rpx 32rpx 0;
min-height: 400rpx;
background-color: #fff;
border-radius: 24rpx;
.lengend {

22
src/patient/pages/file/index.ts

@ -14,10 +14,11 @@ Page({ @@ -14,10 +14,11 @@ Page({
fold3: false,
fold4: false,
periodOne: {},
periodTwo: {},
periodOne: [],
periodTwo: [],
periodThree: {},
periodFour: {},
periodFour: [],
empty0: false,
medical: {
lastBleedingInfo: {
@ -36,7 +37,7 @@ Page({ @@ -36,7 +37,7 @@ Page({
autoChoosedWhenJump: true,
firstDayOfWeek: 'Mon',
theme: 'geneb',
takeoverTap: true,
takeoverTap: false,
highlightToday: true,
onlyShowCurrentMonth: true,
disableMode: {
@ -81,6 +82,14 @@ Page({ @@ -81,6 +82,14 @@ Page({
}).then((res) => {
this.setData({
...res,
empty0:
!res.periodOne.length &&
!res.periodTwo.length &&
!res.periodFour.length &&
!res.periodThree.injectionDate &&
!res.periodThree.injectionWeight &&
!res.periodThree.injectionDrugs &&
!res.periodThree.injectionNum,
})
})
}
@ -219,6 +228,11 @@ Page({ @@ -219,6 +228,11 @@ Page({
url: `/patient/pages/preDiagnosisReport/index?examid=${id}&period=${period}`,
})
},
handleInjectionDate() {
wx.navigateTo({
url: '/patient/pages/injectDate/index',
})
},
})
export {}

80
src/patient/pages/file/index.wxml

@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
<view class="nav {{nav==2 && 'active'}}" bindtap="handleNav" data-nav="2">随访日历</view>
</view>
<view class="container0" wx:if="{{nav==0}}">
<view class="card1">
<view class="card1" wx:if="{{periodFour.length}}">
<view class="c-header">
<view class="left" bindtap="handleFold" data-fold="fold1">
<view class="title">随访期</view>
@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
</view>
<view class="row">
<view class="label">诊疗医院</view>
<view class="content">{{item.hospitalName || '--'}}</view>
<view class="content">{{item.hospitalName || '未填写'}}</view>
</view>
<view class="row">
<view class="label">检查项目</view>
@ -69,7 +69,10 @@ @@ -69,7 +69,10 @@
</view>
</view>
</view>
<view class="card2">
<view
class="card2"
wx:if="{{periodThree.injectionDate || periodThree.injectionWeight || periodThree.injectionDrugs || periodThree.injectionNum}}"
>
<view class="c-header">
<view class="left" bindtap="handleFold" data-fold="fold2">
<view class="title">注射日</view>
@ -85,9 +88,12 @@ @@ -85,9 +88,12 @@
<view class="row">
<view class="label">BBM-H901</view>
<view class="content">
<view>体重 {{periodThree.injectionWeight}}kg</view>
<view>用药 {{periodThree.injectionDrugs}}ml</view>
<view>预期用药 {{periodThree.injectionNum}} 瓶</view>
<view wx:if="{{periodThree.injectionWeight}}">体重 {{periodThree.injectionWeight}}kg</view>
<view wx:else>体重 未填写</view>
<view wx:if="{{periodThree.injectionDrugs}}">用药 {{periodThree.injectionDrugs}}ml</view>
<view wx:else>用药 未填写</view>
<view wx:if="{{periodThree.injectionNum}}">预期用药 {{periodThree.injectionNum}} 瓶</view>
<view wx:else>预期用药 未填写</view>
</view>
</view>
<view class="options">
@ -103,7 +109,7 @@ @@ -103,7 +109,7 @@
</view>
</view>
</view>
<view class="card3">
<view class="card3" wx:if="{{periodTwo.length}}">
<view class="c-header">
<view class="left" bindtap="handleFold" data-fold="fold3">
<view class="title">基因治疗中心检查</view>
@ -115,11 +121,11 @@ @@ -115,11 +121,11 @@
<view class="row">
<view class="label">日期</view>
<view class="content" wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}~{{item.endDate}}</view>
<view class="content" wx:else>--</view>
<view class="content" wx:else>未填写</view>
</view>
<view class="row">
<view class="label">诊疗医院</view>
<view class="content">{{item.hospitalName || '--'}}</view>
<view class="content">{{item.hospitalName || '未填写'}}</view>
</view>
<view class="row">
<view class="label">检查项目</view>
@ -143,7 +149,7 @@ @@ -143,7 +149,7 @@
</view>
</view>
</view>
<view class="card4">
<view class="card4" wx:if="{{periodOne.length}}">
<view class="c-header">
<view class="left" bindtap="handleFold" data-fold="fold4">
<view class="title">诊前筛查</view>
@ -155,11 +161,11 @@ @@ -155,11 +161,11 @@
<view class="row">
<view class="label">日期</view>
<view class="content" wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}~{{item.endDate}}</view>
<view class="content" wx:else>--</view>
<view class="content" wx:else>未填写</view>
</view>
<view class="row">
<view class="label">定点医院</view>
<view class="content">{{item.hospitalName || '--'}}</view>
<view class="content">{{item.hospitalName || '未填写'}}</view>
</view>
<view class="row">
<view class="label">检查项目</view>
@ -183,6 +189,7 @@ @@ -183,6 +189,7 @@
</view>
</view>
</view>
<image wx:if="{{empty0}}" class="none" src="{{imageUrl}}none.png"></image>
</view>
<view class="container1" wx:if="{{nav==1}}">
<view class="c1_card1">
@ -192,53 +199,59 @@ @@ -192,53 +199,59 @@
</view>
<view class="row">
<view class="label">确诊时间</view>
<view class="content">{{medical.diagnosisTime}}({{medical.diagnosisAge}})</view>
<view class="content">
{{medical.diagnosisTime || '未填写'}}
<block wx:if="{{medical.diagnosisAge}}">({{medical.diagnosisAge}})</block>
</view>
</view>
<view class="row">
<view class="label">您的体重</view>
<view class="content">{{medical.weight}} kg</view>
<view class="content" wx:if="{{medical.weight}}">{{medical.weight}} kg</view>
<div class="content" wx:else>未填写</div>
</view>
</view>
<view class="c1_card1">
<view class="row">
<view class="label">凝血因子</view>
<view class="content">{{medical.clottingFactor}}%</view>
<view class="content" wx:if="{{medical.clottingFactor}}">{{medical.clottingFactor}}%</view>
<view class="content" wx:else>未填写</view>
</view>
<view class="row">
<view class="label">治疗方案</view>
<view class="content">{{medical.treatmentPlanName}}</view>
<view class="content">{{medical.treatmentPlanName || '未填写'}}</view>
</view>
<view class="row">
<view class="label">FIX暴露日</view>
<view class="content">{{medical.fixExposureDay}} 个</view>
<view class="content" wx:if="{{medical.fixExposureDay}}">{{medical.fixExposureDay}}个</view>
<view class="content" wx:else>未填写</view>
</view>
</view>
<view class="c1_card2">
<view class="row">
<view class="wrap">
<view class="label">既往FIX抑制物病史</view>
<view class="content">{{medical.beforeFixHistoryName}}</view>
<view class="content">{{medical.beforeFixHistoryName || '未填写'}}</view>
</view>
</view>
<view class="row">
<view class="wrap">
<view class="label">既往肝脏疾病病史</view>
<view class="content">{{medical.beforeLiverHistoryName}}</view>
<view class="content">{{medical.beforeLiverHistoryName || '未填写'}}</view>
</view>
<view class="remark">{{medical.liverRecord}}</view>
<view class="remark" wx:if="{{medical.liverRecord}}">{{medical.liverRecord}}</view>
</view>
<view class="row">
<view class="wrap">
<view class="label">您是否有饮酒史</view>
<view class="content">{{medical.drinkingHistoryName}}</view>
<view class="content">{{medical.drinkingHistoryName || '未填写'}}</view>
</view>
</view>
<view class="row">
<view class="wrap">
<view class="label">您是否有过敏史</view>
<view class="content">{{medical.allergyHistoryName}}</view>
<view class="content">{{medical.allergyHistoryName || '未填写'}}</view>
</view>
<view class="remark">{{medical.allergyRecord}}</view>
<view class="remark" wx:if="{{medical.allergyRecord}}">{{medical.allergyRecord}}</view>
</view>
<view class="row1">
<view class="wrap">
@ -247,9 +260,9 @@ @@ -247,9 +260,9 @@
<view>使用糖皮质激素的情况?</view>
</view>
<view class="line"></view>
<view class="content">{{medical.isNotGlucocorticoidName}}</view>
<view class="content">{{medical.isNotGlucocorticoidName || '未填写'}}</view>
</view>
<view class="remark">{{medical.medicalHistoryInfo}}</view>
<view class="remark" wx:if="{{medical.medicalHistoryInfo}}">{{medical.medicalHistoryInfo}}</view>
</view>
</view>
<view class="c1_card2">
@ -257,9 +270,9 @@ @@ -257,9 +270,9 @@
<view class="wrap">
<view class="label" style="width: 4em">靶关节</view>
<view class="content">
<text wx:for="{{medical.lastBleedingInfo.bleedingPartList}}" wx:key="bleedingId">
<view wx:for="{{medical.lastBleedingInfo.bleedingPartList}}" wx:key="bleedingId">
{{item.bleedingPartName}}
</text>
</view>
</view>
</view>
</view>
@ -267,16 +280,21 @@ @@ -267,16 +280,21 @@
<view class="wrap">
<view class="label">最近6个月出血</view>
</view>
<view class="remark">{{medical.lastBleedingInfo.remark}}</view>
<view class="remark" wx:if="{{medical.lastBleedingInfo.remark}}">{{medical.lastBleedingInfo.remark}}</view>
</view>
</view>
</view>
<view class="container2" wx:if="{{nav==2}}">
<view class="date-card">
<view class="date-card" bind:tap="handleInjectionDate">
<image class="icon" src="{{imageUrl}}icon67.png?t={{Timestamp}}"></image>
<view class="content">注射日:{{followExam.injectionDateName}}</view>
<view class="content" wx:if="{{followExam.injectionDateName}}">注射日:{{followExam.injectionDateName}}</view>
<view class="content" wx:else>请填写您的注射日生成随访计划</view>
</view>
<view class="notic" style="background: url('{{imageUrl}}bg21.png?t={{Timestamp}}') no-repeat top center/100%">
<view
class="notic"
wx:if="{{followExam.injectionDateName}}"
style="background: url('{{imageUrl}}bg21.png?t={{Timestamp}}') no-repeat top center/100%"
>
<view class="title">{{followExam.tipsInfo}}</view>
<view class="content" wx:if="{{followExam.lastNoticeWeekInfo}}">{{followExam.lastNoticeWeekInfo}}</view>
<view class="sub-content" wx:if="{{followExam.lastNoticeExamInfo}}">{{followExam.lastNoticeExamInfo}}</view>

7
src/patient/pages/followPlan/index.scss

@ -79,10 +79,9 @@ page { @@ -79,10 +79,9 @@ page {
color: rgba(1, 1, 5, 1);
line-height: 40rpx;
white-space: pre-line;
&:last-of-type {
display: flex;
align-items: center;
}
display: flex;
justify-content: center;
flex-direction: column;
}
}
.tr:nth-child(even) {

2
src/patient/pages/followPlan/index.ts

@ -30,7 +30,7 @@ Page({ @@ -30,7 +30,7 @@ Page({
}).then((res) => {
console.log('res: ', res)
this.setData({
injectionDate: dayjs(res.injectionDate).format('YYYY年MM月DD日 ddd'),
injectionDate: res.injectionDate ? dayjs(res.injectionDate).format('YYYY年MM月DD日 ddd') : '',
stage: res.stage,
})
})

7
src/patient/pages/followPlan/index.wxml

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<view class="page">
<view class="date-card">
<image class="icon" src="{{imageUrl}}icon67.png?t={{Timestamp}}"></image>
<view class="content">注射日:{{injectionDate}}</view>
<view class="content">注射日:{{injectionDate || '未录入'}}</view>
</view>
<view class="body">
<view class="title">基因治疗后时间监测频率</view>
@ -19,7 +19,10 @@ @@ -19,7 +19,10 @@
<view class="line-bottom"></view>
</view>
<view class="td">1 周内</view>
<view class="td">每周2次 输注后第3天,第6天</view>
<view class="td">
<view>每周2次</view>
<view>输注后第3天,第6天</view>
</view>
</view>
<view class="tr {{stage === 2 && 'current'}} {{stage > 2 && 'active'}}">
<view class="aside">

5
src/patient/pages/index/index.ts

@ -8,13 +8,13 @@ Page({ @@ -8,13 +8,13 @@ Page({
// popupType: 'bindDoctor', // 绑定成功
// popupType: 'bindDoctorQuestion', // 为什么绑定医生
// popupType: 'conformBindDoctorQuestion', // 确认绑定曾经扫码医生
popupType: 'conformBindDoctorConform', // 注册后绑定医生码
ptrueopupType: 'conformBindDoctorConform', // 注册后绑定医生码
popupParams: {},
doctorList: [],
progress: 1,
swiperHeight: 0,
swiperHeight: 220,
treatment: {
followUpWeekInfo: {},
examDiffDays: '',
@ -53,6 +53,7 @@ Page({ @@ -53,6 +53,7 @@ Page({
if (this.data.isLoad) {
this.getBindDoctorList()
this.getTeratmentInfo()
this.handleSwiperChange({ detail: { current: this.data.progress } })
}
},
getBindDoctorList() {

5
src/patient/pages/inhibitorsManage/index.ts

@ -66,11 +66,14 @@ Page({ @@ -66,11 +66,14 @@ Page({
})
},
handleDrug() {
const { dict } = this.data
const { dict, drugId, drugName } = this.data
this.setData({
popupShow: true,
popupType: 'inhibitors',
popupParams: {
drugId: drugId,
drugName: dict.drugList[drugId] == '其他' ? '其他' : drugName,
content: dict.drugList[drugId] == '其他' ? drugName : '',
list: dict.drugList,
},
})

9
src/patient/pages/inhibitorsManageDetail/index.ts

@ -18,13 +18,16 @@ Page({ @@ -18,13 +18,16 @@ Page({
dosageUnitIndex: 0,
},
onLoad(options) {
console.log('DEBUGPRINT[71]: index.ts:29: options=', options)
this.setData({
period: options.period,
recordId: options.id || '',
})
},
onShow() {
app.waitLogin({ type: 1 }).then(() => {
if (options.id) {
this.getDetail(options.id)
const recordId = this.data.recordId
if (recordId) {
this.getDetail(recordId)
}
})
},

5
src/patient/pages/preDiagnosisReport/index.ts

@ -110,6 +110,11 @@ Page({ @@ -110,6 +110,11 @@ Page({
examId: options.examid || '',
period: options.period || '1',
})
if (options.period === '2') {
wx.setNavigationBarTitle({
title: '我的检查报告',
})
}
},
onShow() {
const { formKeys, period } = this.data

Loading…
Cancel
Save