儿科医生端
@ -1,7 +1,5 @@
|
|||||||
import config from '~/config';
|
const baseUrl = 'http://1.15.53.35:9998/';
|
||||||
|
|
||||||
const baseUrl = 'https://ddbs.1024tool.vip/';
|
|
||||||
const delay = config.isMock ? 500 : 0;
|
|
||||||
function request(url, method = 'GET', data = {}) {
|
function request(url, method = 'GET', data = {}) {
|
||||||
const header = {
|
const header = {
|
||||||
'content-type': 'application/json',
|
'content-type': 'application/json',
|
||||||
@ -20,29 +18,24 @@ function request(url, method = 'GET', data = {}) {
|
|||||||
dataType: 'json', // 微信官方文档中介绍会对数据进行一次JSON.parse
|
dataType: 'json', // 微信官方文档中介绍会对数据进行一次JSON.parse
|
||||||
header,
|
header,
|
||||||
success(res) {
|
success(res) {
|
||||||
console.log(res)
|
if (res.data.code) {
|
||||||
setTimeout(() => {
|
if (res.data.code == 10103) {
|
||||||
|
|
||||||
if(res.data.code && res.data.code == 10103){
|
|
||||||
wx.removeStorageSync('access_token');
|
wx.removeStorageSync('access_token');
|
||||||
wx.switchTab({
|
wx.switchTab({
|
||||||
url: '/pages/my/index',
|
url: '/pages/my/index',
|
||||||
})
|
})
|
||||||
reject(res.data);
|
reject(res.data);
|
||||||
|
}
|
||||||
|
reject(res.data);
|
||||||
} else {
|
} else {
|
||||||
console.log(res.data)
|
|
||||||
resolve(res.data);
|
resolve(res.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}, delay);
|
|
||||||
},
|
},
|
||||||
fail(err) {
|
fail(err) {
|
||||||
setTimeout(() => {
|
|
||||||
console.log(err)
|
console.log(err)
|
||||||
// 断网、服务器挂了都会fail回调,直接reject即可
|
// 断网、服务器挂了都会fail回调,直接reject即可
|
||||||
|
|
||||||
reject(err);
|
reject(err);
|
||||||
}, delay);
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
20
app.js
@ -1,12 +1,6 @@
|
|||||||
// app.js
|
// app.js
|
||||||
import config from './config';
|
|
||||||
import Mock from './mock/index';
|
|
||||||
import createBus from './utils/eventBus';
|
import createBus from './utils/eventBus';
|
||||||
import { connectSocket, fetchUnreadNum } from './mock/chat';
|
|
||||||
|
|
||||||
if (config.isMock) {
|
|
||||||
Mock();
|
|
||||||
}
|
|
||||||
|
|
||||||
App({
|
App({
|
||||||
onLaunch() {
|
onLaunch() {
|
||||||
@ -28,8 +22,6 @@ App({
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.getUnreadNum();
|
|
||||||
this.connect();
|
|
||||||
},
|
},
|
||||||
globalData: {
|
globalData: {
|
||||||
userInfo: null,
|
userInfo: null,
|
||||||
@ -50,17 +42,5 @@ App({
|
|||||||
this.globalData.socket = socket;
|
this.globalData.socket = socket;
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 获取未读消息数量 */
|
|
||||||
getUnreadNum() {
|
|
||||||
fetchUnreadNum().then(({ data }) => {
|
|
||||||
this.globalData.unreadNum = data;
|
|
||||||
this.eventBus.emit('unread-num-change', data);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/** 设置未读消息数量 */
|
|
||||||
setUnreadNum(unreadNum) {
|
|
||||||
this.globalData.unreadNum = unreadNum;
|
|
||||||
this.eventBus.emit('unread-num-change', unreadNum);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|||||||
6
app.less
@ -28,6 +28,12 @@ page {
|
|||||||
button{
|
button{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
.t-image-viewer {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.t-navbar__content{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
|
|||||||
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<title>生长曲线备份</title>
|
|
||||||
<defs>
|
|
||||||
<linearGradient x1="50%" y1="0%" x2="50%" y2="97.7014374%" id="linearGradient-1">
|
|
||||||
<stop stop-color="#54A4E6" offset="0%"></stop>
|
|
||||||
<stop stop-color="#1C71B3" offset="100%"></stop>
|
|
||||||
</linearGradient>
|
|
||||||
<rect id="path-2" x="0" y="0" width="18" height="18" rx="4"></rect>
|
|
||||||
</defs>
|
|
||||||
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="02首页-00" transform="translate(-22.000000, -100.000000)">
|
|
||||||
<g id="宝宝生长曲线" transform="translate(12.000000, 100.000000)">
|
|
||||||
<g id="生长曲线备份" transform="translate(10.000000, 0.000000)">
|
|
||||||
<mask id="mask-3" fill="white">
|
|
||||||
<use xlink:href="#path-2"></use>
|
|
||||||
</mask>
|
|
||||||
<use id="蒙版" fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
|
||||||
<path d="M13.2887481,8.84531617 C14.1171752,8.84531617 14.7887481,9.51688904 14.7887481,10.3453162 L14.7887481,13.9183441 C14.7887481,14.7467712 14.1171752,15.4183441 13.2887481,15.4183441 L13.0022341,15.4183441 C12.173807,15.4183441 11.5022341,14.7467712 11.5022341,13.9183441 L11.5022341,10.3453162 C11.5022341,9.51688904 12.173807,8.84531617 13.0022341,8.84531617 L13.2887481,8.84531617 Z M4.08650902,12.1308664 C4.91493615,12.1308664 5.58650902,12.8024393 5.58650902,13.6308664 L5.58650902,13.9173803 C5.58650902,14.7458075 4.91493615,15.4173803 4.08650902,15.4173803 L3.79999507,15.4173803 C2.97156795,15.4173803 2.29999507,14.7458075 2.29999507,13.9173803 L2.29999507,13.6308664 C2.29999507,12.8024393 2.97156795,12.1308664 3.79999507,12.1308664 L4.08650902,12.1308664 Z M8.68762856,10.8150892 C9.51605568,10.8150892 10.1876286,11.486662 10.1876286,12.3150892 L10.1876286,13.9162087 C10.1876286,14.7446358 9.51605568,15.4162087 8.68762856,15.4162087 L8.40111461,15.4162087 C7.57268748,15.4162087 6.90111461,14.7446358 6.90111461,13.9162087 L6.90111461,12.3150892 C6.90111461,11.486662 7.57268748,10.8150892 8.40111461,10.8150892 L8.68762856,10.8150892 Z M16.1174277,3.43416352 C16.1291426,3.55601781 16.1183842,3.67898747 16.0856874,3.79695624 L15.2775434,6.71271375 C15.1300309,7.24493411 14.5789985,7.55680143 14.0467782,7.40928892 C13.8518339,7.35525732 13.6778605,7.24337219 13.5478287,7.08840633 L12.9656075,6.3972697 C10.1188007,8.87646671 7.4276443,9.86144651 3.86551098,9.93934871 L3.48661779,9.94422682 L2.98876335,9.94281924 C2.55314138,9.94281924 2.2,9.58967786 2.2,9.15405589 C2.2,8.78914098 2.44902966,8.47819263 2.79724606,8.38965382 L2.90453675,8.3699329 L2.9893466,8.36529383 L3.51583083,8.36645753 C6.88597863,8.34509504 9.31054469,7.49628332 11.9523661,5.18796425 L11.3441794,4.46219937 C10.9891777,4.0391247 11.0443616,3.40836911 11.4674363,3.05336731 C11.6224021,2.92333552 11.8131611,2.84336034 12.0145262,2.82400131 L15.0263196,2.53445076 C15.5760696,2.48159839 16.0645753,2.88441352 16.1174277,3.43416352 Z" id="形状结合" fill="#FFFFFF" mask="url(#mask-3)"></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<title>健康教育</title>
|
|
||||||
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="04我的-00-00" transform="translate(-28.000000, -273.000000)">
|
|
||||||
<g id="编组-11备份-3" transform="translate(12.000000, 204.000000)">
|
|
||||||
<g id="健康教育" transform="translate(0.000000, 53.000000)">
|
|
||||||
<g transform="translate(16.000000, 16.000000)">
|
|
||||||
<rect id="矩形" fill="#FFFFFF" opacity="0.00999999978" x="0" y="0" width="20" height="20"></rect>
|
|
||||||
<g id="编组-4" transform="translate(2.000000, 2.000000)">
|
|
||||||
<path d="M14,6.08333333 C14.345178,6.08333333 14.657678,6.22324435 14.8838835,6.44944986 C15.110089,6.67565536 15.25,6.98815536 15.25,7.33333333 L15.25,7.33333333 L15.25,14 C15.25,14.345178 15.110089,14.657678 14.8838835,14.8838835 C14.657678,15.110089 14.345178,15.25 14,15.25 L14,15.25 L11.8649104,15.25 L11.8649104,6.08333333 Z" id="蒙版备份" stroke="#333333" stroke-width="1.5"></path>
|
|
||||||
<path d="M9.44444444,0.75 C10.0657648,0.75 10.6282648,1.00183983 11.0354347,1.40900974 C11.4426046,1.81617966 11.6944444,2.37867966 11.6944444,3 L11.6944444,3 L11.6944444,15.25 L3,15.25 C2.37867966,15.25 1.81617966,14.9981602 1.40900974,14.5909903 C1.00183983,14.1838203 0.75,13.6213203 0.75,13 L0.75,13 L0.75,3 C0.75,2.37867966 1.00183983,1.81617966 1.40900974,1.40900974 C1.81617966,1.00183983 2.37867966,0.75 3,0.75 L3,0.75 Z" id="蒙版" stroke="#333333" stroke-width="1.5"></path>
|
|
||||||
<g id="编组-2" transform="translate(3.111111, 3.400000)" fill="#005BA2">
|
|
||||||
<rect id="矩形" x="0" y="2.44444444" width="6.22222222" height="1.33333333" rx="0.666666667"></rect>
|
|
||||||
<path d="M0.666666667,2.44444444 L5.55555556,2.44444444 C5.92374539,2.44444444 6.22222222,2.74292128 6.22222222,3.11111111 C6.22222222,3.47930094 5.92374539,3.77777778 5.55555556,3.77777778 L0.666666667,3.77777778 C0.298476833,3.77777778 3.64153152e-14,3.47930094 3.64153152e-14,3.11111111 C3.64153152e-14,2.74292128 0.298476833,2.44444444 0.666666667,2.44444444 Z" id="矩形" transform="translate(3.111111, 3.111111) rotate(90.000000) translate(-3.111111, -3.111111) "></path>
|
|
||||||
</g>
|
|
||||||
<rect id="矩形备份" fill="#005BA2" x="2.66666667" y="11.2" width="7.11111111" height="1.33333333" rx="0.666666667"></rect>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 39 KiB |
@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<title>用药方案</title>
|
|
||||||
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="04我的-00-00" transform="translate(-28.000000, -220.000000)">
|
|
||||||
<g id="编组-11备份-3" transform="translate(12.000000, 204.000000)">
|
|
||||||
<g id="用药方案" transform="translate(16.000000, 16.000000)">
|
|
||||||
<rect id="Rectangle-3" fill-opacity="0.01" fill="#EEEEEE" x="0" y="0" width="20" height="20"></rect>
|
|
||||||
<g id="编组-14" transform="translate(3.600000, 2.000000)">
|
|
||||||
<rect id="矩形" stroke="#333333" stroke-width="1.5" x="2.25980392" y="0.75" width="8.31372549" height="2.625" rx="1"></rect>
|
|
||||||
<path d="M10.1646069,3.5 L11.8771593,6.09940994 C12.0116516,6.30354996 12.0833333,6.54264578 12.0833333,6.78710705 L12.0833333,6.78710705 L12.0833333,14.5 C12.0833333,14.845178 11.9434223,15.157678 11.7172168,15.3838835 C11.4910113,15.610089 11.1785113,15.75 10.8333333,15.75 L10.8333333,15.75 L2,15.75 C1.65482203,15.75 1.34232203,15.610089 1.11611652,15.3838835 C0.889911016,15.157678 0.75,14.845178 0.75,14.5 L0.75,14.5 L0.75,6.78710705 C0.75,6.54264578 0.821681769,6.30354996 0.95617402,6.09940994 L0.95617402,6.09940994 L2.66872645,3.5 L10.1646069,3.5 Z" id="矩形" stroke="#333333" stroke-width="1.5"></path>
|
|
||||||
<rect id="矩形" x="0" y="7.5625" width="12.8333333" height="6.1875"></rect>
|
|
||||||
<g id="编组-24" transform="translate(3.666667, 7.235119)" fill="#005BA2">
|
|
||||||
<rect id="矩形" x="0" y="2.0625" width="5.5" height="1.375" rx="0.6875"></rect>
|
|
||||||
<path d="M0.6875,2.0625 L4.8125,2.0625 C5.19219577,2.0625 5.5,2.37030423 5.5,2.75 C5.5,3.12969577 5.19219577,3.4375 4.8125,3.4375 L0.6875,3.4375 C0.307804235,3.4375 -1.13686838e-13,3.12969577 -1.13686838e-13,2.75 C-1.13686838e-13,2.37030423 0.307804235,2.0625 0.6875,2.0625 Z" id="矩形" transform="translate(2.750000, 2.750000) rotate(90.000000) translate(-2.750000, -2.750000) "></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 11 KiB |
186
assets/js/heightWeight.js
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
export const heightList = {
|
||||||
|
boy: [
|
||||||
|
[47.6, 54.8],
|
||||||
|
[51.3, 59.0],
|
||||||
|
[54.9, 63.0],
|
||||||
|
[58.0, 66.4],
|
||||||
|
[60.5, 69.1],
|
||||||
|
[62.5, 71.3],
|
||||||
|
[64.2, 73.2],
|
||||||
|
[65.7, 74.9],
|
||||||
|
[67.1, 76.4],
|
||||||
|
[68.3, 77.8],
|
||||||
|
[69.5, 79.1],
|
||||||
|
[70.7, 80.4],
|
||||||
|
[71.7, 81.6],
|
||||||
|
[72.8, 82.8],
|
||||||
|
[73.8, 84.0],
|
||||||
|
[74.8, 85.1],
|
||||||
|
[75.8, 86.3],
|
||||||
|
[76.8, 87.4],
|
||||||
|
[77.7, 88.5],
|
||||||
|
[78.6, 89.6],
|
||||||
|
[79.6, 90.6],
|
||||||
|
[80.5, 91.7],
|
||||||
|
[81.4, 92.8],
|
||||||
|
[82.2, 93.7],
|
||||||
|
[82.4, 94.0],
|
||||||
|
[84.8, 96.8],
|
||||||
|
[87.0, 99.4],
|
||||||
|
[89.0, 101.9],
|
||||||
|
[90.9, 104.1],
|
||||||
|
[92.7, 106.2],
|
||||||
|
[94.4, 108.3],
|
||||||
|
[96.0, 110.2],
|
||||||
|
[97.6, 112.2],
|
||||||
|
[99.2, 114.1],
|
||||||
|
[100.8, 116.0],
|
||||||
|
[102.4, 117.9],
|
||||||
|
[104.1, 119.9],
|
||||||
|
[105.7, 121.8],
|
||||||
|
[107.2, 123.7],
|
||||||
|
[108.8, 125.5],
|
||||||
|
[110.3, 127.3],
|
||||||
|
[111.7, 129.1],
|
||||||
|
[113.1, 130.9],
|
||||||
|
[114.5, 132.5]
|
||||||
|
],
|
||||||
|
girl: [
|
||||||
|
[46.8, 53.8],
|
||||||
|
[50.4, 57.8],
|
||||||
|
[53.8, 61.6],
|
||||||
|
[56.7, 64.8],
|
||||||
|
[59.1, 67.4],
|
||||||
|
[61.0, 69.6],
|
||||||
|
[62.7, 71.5],
|
||||||
|
[64.2, 73.5],
|
||||||
|
[65.6, 74.7],
|
||||||
|
[66.8, 76.1],
|
||||||
|
[68.1, 77.5],
|
||||||
|
[69.2, 78.8],
|
||||||
|
[70.4, 80.1],
|
||||||
|
[71.4, 81.4],
|
||||||
|
[72.5, 82.6],
|
||||||
|
[73.4, 83.8],
|
||||||
|
[74.6, 84.9],
|
||||||
|
[75.5, 86.1],
|
||||||
|
[76.5, 87.2],
|
||||||
|
[77.5, 88.3],
|
||||||
|
[78.4, 89.4],
|
||||||
|
[79.3, 90.4],
|
||||||
|
[80.2, 91.5],
|
||||||
|
[81.1, 92.5],
|
||||||
|
[81.2, 92.8],
|
||||||
|
[83.6, 95.5],
|
||||||
|
[85.7, 98.1],
|
||||||
|
[87.7, 100.5],
|
||||||
|
[89.7, 102.7],
|
||||||
|
[91.5, 104.9],
|
||||||
|
[93.2, 106.9],
|
||||||
|
[94.9, 108.9],
|
||||||
|
[96.5, 110.9],
|
||||||
|
[98.1, 112.8],
|
||||||
|
[99.7, 114.7],
|
||||||
|
[101.3, 116.7],
|
||||||
|
[103.0, 118.6],
|
||||||
|
[104.6, 120.6],
|
||||||
|
[106.1, 122.4],
|
||||||
|
[107.6, 124.2],
|
||||||
|
[109.0, 126.0],
|
||||||
|
[110.4, 127.7],
|
||||||
|
[111.8, 129.4],
|
||||||
|
[113.2, 131.0]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
export const weightList = {
|
||||||
|
boy: [
|
||||||
|
[2.8, 4.2],
|
||||||
|
[3.7, 5.6],
|
||||||
|
[4.7, 7.1],
|
||||||
|
[5.5, 8.3],
|
||||||
|
[6.1, 9.2],
|
||||||
|
[6.6, 9.8],
|
||||||
|
[6.9, 10.3],
|
||||||
|
[7.2, 10.8],
|
||||||
|
[7.5, 11.1],
|
||||||
|
[7.7, 11.5],
|
||||||
|
[7.9, 11.8],
|
||||||
|
[8.1, 12.0],
|
||||||
|
[8.3, 12.3],
|
||||||
|
[8.4, 12.5],
|
||||||
|
[8.6, 12.8],
|
||||||
|
[8.8, 13.2],
|
||||||
|
[9.0, 13.5],
|
||||||
|
[9.1, 13.8],
|
||||||
|
[9.3, 14.0],
|
||||||
|
[9.5, 14.3],
|
||||||
|
[9.7, 14.6],
|
||||||
|
[9.8, 14.8],
|
||||||
|
[10.3, 15.5],
|
||||||
|
[10.7, 16.2],
|
||||||
|
[11.1, 16.9],
|
||||||
|
[11.5, 17.7],
|
||||||
|
[12.0, 18.4],
|
||||||
|
[12.4, 19.1],
|
||||||
|
[12.8, 19.8],
|
||||||
|
[13.1, 20.5],
|
||||||
|
[13.5, 21.1],
|
||||||
|
[13.9, 21.9],
|
||||||
|
[14.3, 22.6],
|
||||||
|
[14.7, 23.4],
|
||||||
|
[15.1, 24.3],
|
||||||
|
[15.5, 25.1],
|
||||||
|
[15.9, 26.0],
|
||||||
|
[16.3, 26.8],
|
||||||
|
[16.7, 27.6],
|
||||||
|
[17.0, 28.5],
|
||||||
|
[17.4, 29.3]
|
||||||
|
],
|
||||||
|
girl: [
|
||||||
|
[2.7, 4.1],
|
||||||
|
[3.5, 5.3],
|
||||||
|
[4.4, 6.6],
|
||||||
|
[5.1, 7.6],
|
||||||
|
[5.6, 8.4],
|
||||||
|
[6.0, 9.1],
|
||||||
|
[6.4, 9.6],
|
||||||
|
[6.7, 10.0],
|
||||||
|
[6.9, 10.4],
|
||||||
|
[7.2, 10.8],
|
||||||
|
[7.4, 11.1],
|
||||||
|
[7.6, 11.4],
|
||||||
|
[7.7, 11.6],
|
||||||
|
[7.9, 11.9],
|
||||||
|
[8.1, 12.2],
|
||||||
|
[8.3, 12.4],
|
||||||
|
[8.4, 12.7],
|
||||||
|
[8.6, 12.9],
|
||||||
|
[8.8, 13.2],
|
||||||
|
[9.0, 13.5],
|
||||||
|
[9.1, 13.8],
|
||||||
|
[9.3, 14.0],
|
||||||
|
[9.5, 14.3],
|
||||||
|
[9.7, 14.6],
|
||||||
|
[9.8, 14.8],
|
||||||
|
[10.3, 15.5],
|
||||||
|
[10.7, 16.2],
|
||||||
|
[11.1, 16.9],
|
||||||
|
[11.5, 17.7],
|
||||||
|
[12.0, 18.4],
|
||||||
|
[12.4, 19.1],
|
||||||
|
[12.8, 19.8],
|
||||||
|
[13.1, 20.5],
|
||||||
|
[13.5, 21.1],
|
||||||
|
[13.9, 21.9],
|
||||||
|
[14.3, 22.6],
|
||||||
|
[14.7, 23.4],
|
||||||
|
[15.1, 24.3],
|
||||||
|
[15.5, 25.1],
|
||||||
|
[15.9, 26.0],
|
||||||
|
[16.3, 26.8],
|
||||||
|
[16.7, 27.6],
|
||||||
|
[17.0, 28.5],
|
||||||
|
[17.4, 29.3]
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -1,9 +0,0 @@
|
|||||||
Component({
|
|
||||||
properties: {
|
|
||||||
url: String,
|
|
||||||
desc: String,
|
|
||||||
tags: Array,
|
|
||||||
},
|
|
||||||
data: {},
|
|
||||||
methods: {},
|
|
||||||
});
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"component": true,
|
|
||||||
"usingComponents": {
|
|
||||||
"t-image": "tdesign-miniprogram/image/image",
|
|
||||||
"t-tag": "tdesign-miniprogram/tag/tag"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
@import '/variable.less';
|
|
||||||
|
|
||||||
.home-card {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 340rpx;
|
|
||||||
height: 488rpx;
|
|
||||||
border-radius: 9px;
|
|
||||||
background: @bg-color-white;
|
|
||||||
|
|
||||||
&__image {
|
|
||||||
width: 340rpx;
|
|
||||||
height: 340rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__info {
|
|
||||||
padding: 32rpx;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: @font-size-small;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__tag-group {
|
|
||||||
display: flex;
|
|
||||||
gap: 16rpx;
|
|
||||||
margin-top: 16rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
<view class="home-card">
|
|
||||||
<t-image t-class="home-card__image" src="{{url}}" mode="aspectFill" />
|
|
||||||
<view class="home-card__info">
|
|
||||||
<text>{{desc}}</text>
|
|
||||||
<view class="home-card__tag-group">
|
|
||||||
<t-tag wx:for="{{tags}}" wx:key="index" size="small" variant="light" theme="{{item.theme}}">{{item.text}}</t-tag>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
@ -1,109 +0,0 @@
|
|||||||
Component({
|
|
||||||
options: {
|
|
||||||
styleIsolation: 'shared',
|
|
||||||
},
|
|
||||||
properties: {
|
|
||||||
navType: {
|
|
||||||
type: String,
|
|
||||||
value: 'title',
|
|
||||||
},
|
|
||||||
titleText: String,
|
|
||||||
},
|
|
||||||
data: {
|
|
||||||
visible: false,
|
|
||||||
sidebar: [
|
|
||||||
{
|
|
||||||
title: '首页',
|
|
||||||
url: 'pages/home/index',
|
|
||||||
isSidebar: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '搜索页',
|
|
||||||
url: 'pages/search/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '发布页',
|
|
||||||
url: 'pages/release/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '消息列表页',
|
|
||||||
url: 'pages/message/index',
|
|
||||||
isSidebar: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '对话页',
|
|
||||||
url: 'pages/chat/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '个人中心页',
|
|
||||||
url: 'pages/my/index',
|
|
||||||
isSidebar: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '个人信息表单页',
|
|
||||||
url: 'pages/my/info-edit/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '设置页',
|
|
||||||
url: 'pages/setting/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '数据图表页',
|
|
||||||
url: 'pages/dataCenter/index',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '登录注册页',
|
|
||||||
url: 'pages/login/login',
|
|
||||||
isSidebar: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
statusHeight: 0,
|
|
||||||
},
|
|
||||||
lifetimes: {
|
|
||||||
ready() {
|
|
||||||
const statusHeight = wx.getWindowInfo().statusBarHeight;
|
|
||||||
this.setData({ statusHeight });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
openDrawer() {
|
|
||||||
this.setData({
|
|
||||||
visible: true,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
itemClick(e) {
|
|
||||||
const that = this;
|
|
||||||
const { isSidebar, url } = e.detail.item;
|
|
||||||
if (isSidebar) {
|
|
||||||
wx.switchTab({
|
|
||||||
url: `/${url}`,
|
|
||||||
}).then(() => {
|
|
||||||
// 防止点回tab时,sidebar依旧是展开模式
|
|
||||||
that.setData({
|
|
||||||
visible: false,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
wx.navigateTo({
|
|
||||||
url: `/${url}`,
|
|
||||||
}).then(() => {
|
|
||||||
that.setData({
|
|
||||||
visible: false,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
searchTurn() {
|
|
||||||
wx.navigateTo({
|
|
||||||
url: `/pages/search/index`,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"component": true,
|
|
||||||
"usingComponents": {
|
|
||||||
"t-navbar": "tdesign-miniprogram/navbar/navbar",
|
|
||||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
|
||||||
"t-drawer": "tdesign-miniprogram/drawer/drawer",
|
|
||||||
"t-search": "tdesign-miniprogram/search/search"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
@import '/variable.less';
|
|
||||||
|
|
||||||
.home-navbar {
|
|
||||||
.t-navbar {
|
|
||||||
&__left {
|
|
||||||
margin-left: 12rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&__icon {
|
|
||||||
padding: 12rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__left {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding: 0 16rpx;
|
|
||||||
|
|
||||||
.t-search {
|
|
||||||
--td-search-height: 64rpx;
|
|
||||||
--td-search-font-size: @font-size-mini;
|
|
||||||
width: 375rpx;
|
|
||||||
|
|
||||||
.t-icon {
|
|
||||||
font-size: @font-size-default !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--td-drawer-title-font-size: 48rpx;
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
<view class="home-navbar">
|
|
||||||
<t-navbar title="{{ titleText }}">
|
|
||||||
<!-- <view slot="left">
|
|
||||||
<view class="home-navbar__left">
|
|
||||||
<t-icon class="home-navbar__icon" bind:tap="openDrawer" name="view-list" size="48rpx" />
|
|
||||||
<t-search
|
|
||||||
shape="round"
|
|
||||||
placeholder="请搜索你想要的内容"
|
|
||||||
bindtap="searchTurn"
|
|
||||||
wx:if="{{navType === 'search'}}"
|
|
||||||
/>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
</t-navbar>
|
|
||||||
<!-- <t-drawer
|
|
||||||
style="padding-top: {{statusHeight}}px;"
|
|
||||||
visible="{{visible}}"
|
|
||||||
items="{{sidebar}}"
|
|
||||||
placement="left"
|
|
||||||
title="页面目录"
|
|
||||||
bind:item-click="itemClick"
|
|
||||||
/> -->
|
|
||||||
</view>
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
const app = getApp();
|
|
||||||
|
|
||||||
Component({
|
|
||||||
data: {
|
|
||||||
value: '', // 初始值设置为空,避免第一次加载时闪烁
|
|
||||||
unreadNum: 0, // 未读消息数量
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
icon: 'home',
|
|
||||||
value: 'index',
|
|
||||||
label: '首页',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: 'chat',
|
|
||||||
value: 'notice',
|
|
||||||
label: '随访',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: 'user',
|
|
||||||
value: 'my',
|
|
||||||
label: '我1的',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
lifetimes: {
|
|
||||||
ready() {
|
|
||||||
const pages = getCurrentPages();
|
|
||||||
const curPage = pages[pages.length - 1];
|
|
||||||
if (curPage) {
|
|
||||||
const nameRe = /pages\/(\w+)\/index/.exec(curPage.route);
|
|
||||||
if (nameRe === null) return;
|
|
||||||
if (nameRe[1] && nameRe) {
|
|
||||||
this.setData({
|
|
||||||
value: nameRe[1],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 同步全局未读消息数量
|
|
||||||
this.setUnreadNum(app.globalData.unreadNum);
|
|
||||||
app.eventBus.on('unread-num-change', (unreadNum) => {
|
|
||||||
this.setUnreadNum(unreadNum);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
handleChange(e) {
|
|
||||||
const { value } = e.detail;
|
|
||||||
wx.switchTab({ url: `/pages/${value}/index` });
|
|
||||||
},
|
|
||||||
|
|
||||||
/** 设置未读消息数量 */
|
|
||||||
setUnreadNum(unreadNum) {
|
|
||||||
this.setData({ unreadNum });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"component": true,
|
|
||||||
"usingComponents": {
|
|
||||||
"t-tab-bar": "tdesign-miniprogram/tab-bar/tab-bar",
|
|
||||||
"t-tab-bar-item": "tdesign-miniprogram/tab-bar-item/tab-bar-item"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
@import '/variable.less';
|
|
||||||
|
|
||||||
.custom-tab-bar {
|
|
||||||
--td-tab-bar-height: @tab-bar-height;
|
|
||||||
|
|
||||||
&-item {
|
|
||||||
margin: 0;
|
|
||||||
padding: 16rpx 24rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
<t-tab-bar value="{{ value }}" theme="tag" split="{{ false }}" bind:change="handleChange">
|
|
||||||
<t-tab-bar-item icon="home" value="home">首页</t-tab-bar-item>
|
|
||||||
<t-tab-bar-item icon="chat" value="message">随访</t-tab-bar-item>
|
|
||||||
<t-tab-bar-item icon="user" value="my">我的</t-tab-bar-item>
|
|
||||||
</t-tab-bar>
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
/* eslint-disable */
|
|
||||||
var __request = wx.request;
|
|
||||||
var Mock = require('./mock.js');
|
|
||||||
Object.defineProperty(wx, 'request', { writable: true });
|
|
||||||
wx.request = function (config) {
|
|
||||||
if (typeof Mock._mocked[config.url] == 'undefined') {
|
|
||||||
__request(config);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var resTemplate = Mock._mocked[config.url].template;
|
|
||||||
var response = Mock.mock(resTemplate);
|
|
||||||
if (typeof config.success == 'function') {
|
|
||||||
config.success(response);
|
|
||||||
}
|
|
||||||
if (typeof config.complete == 'function') {
|
|
||||||
config.complete(response);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
module.exports = Mock;
|
|
||||||
140
mock/chat.js
@ -1,140 +0,0 @@
|
|||||||
/** 模拟网络请求的延迟 */
|
|
||||||
function delay(ms = 500) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
setTimeout(resolve, ms);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 模拟聊天数据
|
|
||||||
const mockData = [
|
|
||||||
{
|
|
||||||
userId: 1,
|
|
||||||
name: 'Sean',
|
|
||||||
avatar: '/static/chat/avatar-Sean.png',
|
|
||||||
messages: [
|
|
||||||
{ messageId: 1, from: 1, content: '那明天准时见哦😊', time: 1690646400000, read: true },
|
|
||||||
{ messageId: 2, from: 0, content: '好的,我会记得的', time: 1690646400000, read: true },
|
|
||||||
{ messageId: 3, from: 1, content: '在吗?', time: Date.now() - 3600000, read: false },
|
|
||||||
{
|
|
||||||
messageId: 4,
|
|
||||||
from: 1,
|
|
||||||
content: '有个问题想咨询一下,关于TDesign组件库如何更好地使用',
|
|
||||||
time: Date.now() - 3600000,
|
|
||||||
read: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
userId: 2,
|
|
||||||
name: 'Mollymolly',
|
|
||||||
avatar: '/static/chat/avatar-Mollymolly.png',
|
|
||||||
messages: [{ messageId: 5, from: 1, content: '好久不见,最近咋样?', time: 1692100800000, read: true }],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
userId: 3,
|
|
||||||
name: 'Andrew',
|
|
||||||
avatar: '/static/chat/avatar-Andrew.png',
|
|
||||||
messages: [{ messageId: 6, from: 0, content: '现在没空,晚点再联系你哈', time: 1690084800000, read: true }],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
userId: 4,
|
|
||||||
name: 'Kingdom',
|
|
||||||
avatar: '/static/chat/avatar-Kingdom.png',
|
|
||||||
messages: [{ messageId: 7, from: 1, content: '真的吗?', time: 1656880200000, read: true }],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
userId: 5,
|
|
||||||
name: 'Paige',
|
|
||||||
avatar: '/static/chat/avatar-Paige.png',
|
|
||||||
messages: [
|
|
||||||
{ messageId: 8, from: 1, content: '此次要评审的首页和专区页改版的交互方案', time: 1652963880000, read: true },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// 模拟新增一条消息
|
|
||||||
function addNewMessage(userId, from, content) {
|
|
||||||
const index = mockData.map((item) => item.userId).indexOf(userId);
|
|
||||||
const user = mockData.splice(index, 1)[0];
|
|
||||||
mockData.unshift(user);
|
|
||||||
let messageId = 0;
|
|
||||||
mockData.forEach((item) => {
|
|
||||||
messageId += item.messages.length;
|
|
||||||
});
|
|
||||||
const message = { messageId, from, content, time: Date.now(), read: from === 0 };
|
|
||||||
user.messages.push(message);
|
|
||||||
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 模拟SocketTask */
|
|
||||||
class MockSocketTask {
|
|
||||||
constructor(url) {
|
|
||||||
this.url = url;
|
|
||||||
this.onopen = () => {};
|
|
||||||
this.onmessage = () => {};
|
|
||||||
this.onclose = () => {};
|
|
||||||
delay(1000).then(() => {
|
|
||||||
this.onopen();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
onOpen(callback) {
|
|
||||||
if (typeof callback === 'function') this.onopen = callback;
|
|
||||||
}
|
|
||||||
|
|
||||||
onMessage(callback) {
|
|
||||||
if (typeof callback === 'function') this.onmessage = callback;
|
|
||||||
}
|
|
||||||
|
|
||||||
send(data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data.type === 'message') {
|
|
||||||
const { userId, content } = data.data;
|
|
||||||
delay().then(() => {
|
|
||||||
const message = addNewMessage(userId, 0, content);
|
|
||||||
this.onmessage(JSON.stringify({ type: 'message', data: { userId, message } }));
|
|
||||||
});
|
|
||||||
// 模拟3秒后对方回复消息
|
|
||||||
delay(3000).then(() => {
|
|
||||||
const message = addNewMessage(userId, 1, ['收到', '好的', '知道了', '👌OK'].at(Math.floor(Math.random() * 4)));
|
|
||||||
this.onmessage(JSON.stringify({ type: 'message', data: { userId, message } }));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 连接WebSocket,返回SocketTask对象 */
|
|
||||||
export function connectSocket() {
|
|
||||||
// return wx.connectSocket({ url: 'url' })
|
|
||||||
return new MockSocketTask('ws://localhost:8080');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取未读消息数量 */
|
|
||||||
export function fetchUnreadNum() {
|
|
||||||
let unreadNum = 0;
|
|
||||||
mockData.forEach((item) => {
|
|
||||||
unreadNum += item.messages.filter((message) => !message.read).length;
|
|
||||||
});
|
|
||||||
return delay().then(() => ({ code: 200, data: unreadNum }));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取完整消息列表 */
|
|
||||||
export function fetchMessageList() {
|
|
||||||
return delay().then(() => ({ code: 200, data: JSON.parse(JSON.stringify(mockData)) }));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 将某个用户的所有消息标记为已读 */
|
|
||||||
export function markMessagesRead(userId) {
|
|
||||||
let index = 0;
|
|
||||||
while (index < mockData.length) {
|
|
||||||
const user = mockData[index];
|
|
||||||
if (user.userId === userId) {
|
|
||||||
user.messages.forEach((message) => {
|
|
||||||
message.read = true;
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
index += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/dataCenter/area',
|
|
||||||
data: {
|
|
||||||
returnType: 'succ',
|
|
||||||
generateType: 'template',
|
|
||||||
manual: {
|
|
||||||
succ: {
|
|
||||||
resStr: {
|
|
||||||
data: '',
|
|
||||||
statusCode: '',
|
|
||||||
header: '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
resStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: {
|
|
||||||
succ: {
|
|
||||||
data: {
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
标题: '视频A',
|
|
||||||
全球: '4442',
|
|
||||||
华北: '456',
|
|
||||||
华东: '456',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
statusCode: 200,
|
|
||||||
header: {
|
|
||||||
'content-type': 'application/json; charset=utf-8',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
templateStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/dataCenter/complete-rate',
|
|
||||||
data: {
|
|
||||||
returnType: 'succ',
|
|
||||||
generateType: 'template',
|
|
||||||
manual: {
|
|
||||||
succ: {
|
|
||||||
resStr: {
|
|
||||||
data: '',
|
|
||||||
statusCode: '',
|
|
||||||
header: '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
resStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: {
|
|
||||||
succ: {
|
|
||||||
data: {
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
time: '12:00',
|
|
||||||
percentage: '80',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
time: '14:00',
|
|
||||||
percentage: '60',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
time: '16:00',
|
|
||||||
percentage: '85',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
time: '18:00',
|
|
||||||
percentage: '43',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
time: '20:00',
|
|
||||||
percentage: '60',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
time: '22:00',
|
|
||||||
percentage: '95',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
statusCode: 200,
|
|
||||||
header: {
|
|
||||||
'content-type': 'application/json; charset=utf-8',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
templateStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/dataCenter/interaction',
|
|
||||||
data: {
|
|
||||||
returnType: 'succ',
|
|
||||||
generateType: 'template',
|
|
||||||
manual: {
|
|
||||||
succ: {
|
|
||||||
resStr: { data: '', statusCode: '', header: '' },
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
resStr: { errMsg: 'request:fail 填写错误信息' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: {
|
|
||||||
succ: {
|
|
||||||
data: {
|
|
||||||
list: [
|
|
||||||
{ name: '浏览量', number: '919' },
|
|
||||||
{ name: '点赞量', number: '887' },
|
|
||||||
{ name: '分享量', number: '104' },
|
|
||||||
{ name: '收藏', number: '47' },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
statusCode: 200,
|
|
||||||
header: { 'content-type': 'application/json; charset=utf-8' },
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
templateStr: { errMsg: 'request:fail 填写错误信息' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/dataCenter/member',
|
|
||||||
data: {
|
|
||||||
returnType: 'succ',
|
|
||||||
generateType: 'template',
|
|
||||||
manual: {
|
|
||||||
succ: {
|
|
||||||
resStr: {
|
|
||||||
data: '',
|
|
||||||
statusCode: '',
|
|
||||||
header: '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
resStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: {
|
|
||||||
succ: {
|
|
||||||
data: {
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
name: '浏览量',
|
|
||||||
number: '202W',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'PV',
|
|
||||||
number: '233W',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'UV',
|
|
||||||
number: '102W',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
statusCode: 200,
|
|
||||||
header: {
|
|
||||||
'content-type': 'application/json; charset=utf-8',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
fail: {
|
|
||||||
templateStr: {
|
|
||||||
errMsg: 'request:fail 填写错误信息',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
import getDataCenterArea from './getArea';
|
|
||||||
import getDataCenterMember from './getMember';
|
|
||||||
import getDataCompleteRate from './getCompleteRate';
|
|
||||||
import getDataInteraction from './getInteraction';
|
|
||||||
|
|
||||||
export default [getDataCenterArea, getDataCenterMember, getDataCompleteRate, getDataInteraction];
|
|
||||||
@ -1,79 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/home/cards',
|
|
||||||
data: {
|
|
||||||
code: 200,
|
|
||||||
message: '请求成功',
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
url: '/static/home/card0.png',
|
|
||||||
desc: '少年,星空与梦想',
|
|
||||||
tags: [
|
|
||||||
{
|
|
||||||
text: 'AI绘画',
|
|
||||||
theme: 'primary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '版权素材',
|
|
||||||
theme: 'success',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/static/home/card1.png',
|
|
||||||
desc: '仰望星空的少女',
|
|
||||||
tags: [
|
|
||||||
{
|
|
||||||
text: 'AI绘画',
|
|
||||||
theme: 'primary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '版权素材',
|
|
||||||
theme: 'success',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/static/home/card3.png',
|
|
||||||
desc: '仰望星空的少年',
|
|
||||||
tags: [
|
|
||||||
{
|
|
||||||
text: 'AI绘画',
|
|
||||||
theme: 'primary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '版权素材',
|
|
||||||
theme: 'success',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/static/home/card2.png',
|
|
||||||
desc: '少年,星空与梦想',
|
|
||||||
tags: [
|
|
||||||
{
|
|
||||||
text: 'AI绘画',
|
|
||||||
theme: 'primary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '版权素材',
|
|
||||||
theme: 'success',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/static/home/card4.png',
|
|
||||||
desc: '多彩的天空',
|
|
||||||
tags: [
|
|
||||||
{
|
|
||||||
text: 'AI绘画',
|
|
||||||
theme: 'primary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '版权素材',
|
|
||||||
theme: 'success',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/home/swipers',
|
|
||||||
data: {
|
|
||||||
code: 200,
|
|
||||||
message: '请求成功',
|
|
||||||
data: new Array(6).fill('/static/home/swiper0.png'),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
import getHomeCards from './getHomeCards';
|
|
||||||
import getHomeSwipers from './getHomeSwipers';
|
|
||||||
|
|
||||||
export default [getHomeCards, getHomeSwipers];
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
import Mock from './WxMock';
|
|
||||||
// 导入包含path和data的对象
|
|
||||||
import loginMock from './login/index';
|
|
||||||
import homeMock from './home/index';
|
|
||||||
import searchMock from './search/index';
|
|
||||||
import dataCenter from './dataCenter/index';
|
|
||||||
import my from './my/index';
|
|
||||||
|
|
||||||
export default () => {
|
|
||||||
// 在这里添加新的mock数据
|
|
||||||
const mockData = [...loginMock, ...homeMock, ...searchMock, ...dataCenter, ...my];
|
|
||||||
mockData.forEach((item) => {
|
|
||||||
Mock.mock(item.path, { code: 200, success: true, data: item.data });
|
|
||||||
});
|
|
||||||
};
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/login/getSendMessage',
|
|
||||||
data: {
|
|
||||||
message: '发送成功',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
import getSendMessage from './getSendMessage';
|
|
||||||
import postCodeVerify from './postCodeVerify';
|
|
||||||
import postPasswordLogin from './postPasswordLogin';
|
|
||||||
|
|
||||||
export default [getSendMessage, postCodeVerify, postPasswordLogin];
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/login/postCodeVerify',
|
|
||||||
data: {
|
|
||||||
message: '验证码正确',
|
|
||||||
token: '@guid()',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/login/postPasswordLogin',
|
|
||||||
data: {
|
|
||||||
message: '登录成功',
|
|
||||||
token: '@guid()',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
9189
mock/mock.js
@ -1,21 +0,0 @@
|
|||||||
import { getLocalUrl } from '~/utils/util.js';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
path: '/api/genPersonalInfo',
|
|
||||||
data: {
|
|
||||||
code: 200,
|
|
||||||
message: 'success',
|
|
||||||
data: {
|
|
||||||
image: '/static/avatar1.png',
|
|
||||||
name: '小小轩',
|
|
||||||
star: '天枰座',
|
|
||||||
gender: 0,
|
|
||||||
birth: '1994-09-27',
|
|
||||||
address: ['440000', '440300'],
|
|
||||||
brief: '在你身边,为你设计',
|
|
||||||
photos: [
|
|
||||||
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/api/getServiceList',
|
|
||||||
data: {
|
|
||||||
code: 200,
|
|
||||||
message: 'success',
|
|
||||||
data: {
|
|
||||||
service: [
|
|
||||||
{ image: '/static/icon_wx.png', name: '微信', type: 'weixin', url: '' },
|
|
||||||
{ image: '/static/icon_qq.png', name: 'QQ', type: 'QQ', url: '' },
|
|
||||||
{ image: '/static/icon_doc.png', name: '腾讯文档', type: 'document', url: '' },
|
|
||||||
{ image: '/static/icon_map.png', name: '腾讯地图', type: 'map', url: '' },
|
|
||||||
{ image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
|
|
||||||
{ image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
|
|
||||||
{ image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
|
|
||||||
{ image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
import getServiceList from './getServiceList';
|
|
||||||
import getPersonalInfo from './getPersonalInfo';
|
|
||||||
|
|
||||||
export default [getServiceList, getPersonalInfo];
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
import service from './service/index';
|
|
||||||
|
|
||||||
const failResponse = {
|
|
||||||
code: null,
|
|
||||||
data: null,
|
|
||||||
message: 'invaild path',
|
|
||||||
};
|
|
||||||
|
|
||||||
export const request = (url, data) =>
|
|
||||||
new Promise((resolve, reject) => {
|
|
||||||
const waitTime = Math.random() * 300 + 200;
|
|
||||||
const target = service.find((item) => item.path === url);
|
|
||||||
setTimeout(() => {
|
|
||||||
if (target) {
|
|
||||||
const { response } = target;
|
|
||||||
resolve(typeof response === 'function' ? response(data) : response);
|
|
||||||
} else {
|
|
||||||
reject(failResponse);
|
|
||||||
}
|
|
||||||
}, waitTime); // 200-500ms
|
|
||||||
});
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/api/searchHistory',
|
|
||||||
code: 200,
|
|
||||||
message: '请求成功',
|
|
||||||
data: {
|
|
||||||
historyWords: ['AI绘画', 'Stable Diffusion', '版权素材', '星空', 'illustration', '原创'],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
export default {
|
|
||||||
path: '/api/searchPopular',
|
|
||||||
code: 200,
|
|
||||||
message: '请求成功',
|
|
||||||
data: {
|
|
||||||
popularWords: [
|
|
||||||
'考研和靠边同时上岸应该怎么选?有哪些参考建议',
|
|
||||||
'日常饮食中,如何选择优质蛋白',
|
|
||||||
'你有没有网购维权成功的经历?求分享经验',
|
|
||||||
'夏季带孩子旅游,你的必备物品有哪些',
|
|
||||||
'在海外越卖越贵,中国汽车做对了什么',
|
|
||||||
'当HR问你离职原因,怎么回答最能被接受',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
import getSearchHistory from './getSearchHistory';
|
|
||||||
import getSearchPopular from './getSearchPopular';
|
|
||||||
|
|
||||||
export default [getSearchHistory, getSearchPopular];
|
|
||||||
@ -14,6 +14,7 @@ Page({
|
|||||||
imageList: [],
|
imageList: [],
|
||||||
imageIndex: 1,
|
imageIndex: 1,
|
||||||
},
|
},
|
||||||
|
userId: '',
|
||||||
openSelect(){
|
openSelect(){
|
||||||
this.setData({
|
this.setData({
|
||||||
visible: true
|
visible: true
|
||||||
@ -31,7 +32,7 @@ Page({
|
|||||||
},
|
},
|
||||||
|
|
||||||
async getlist(){
|
async getlist(){
|
||||||
const res = await request('doctor/patient/questionnaires/1')
|
const res = await request('doctor/patient/questionnaires/' + this.userId)
|
||||||
this.setData({
|
this.setData({
|
||||||
followUpList: res.list
|
followUpList: res.list
|
||||||
})
|
})
|
||||||
@ -76,7 +77,8 @@ Page({
|
|||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
this.userId = options.userId;
|
||||||
|
this.getlist();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,7 +92,7 @@ Page({
|
|||||||
* 生命周期函数--监听页面显示
|
* 生命周期函数--监听页面显示
|
||||||
*/
|
*/
|
||||||
onShow() {
|
onShow() {
|
||||||
this.getlist();
|
// this.getlist();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"styleIsolation": "apply-shared",
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"t-col": "tdesign-miniprogram/col/col",
|
"t-col": "tdesign-miniprogram/col/col",
|
||||||
"t-row": "tdesign-miniprogram/row/row",
|
"t-row": "tdesign-miniprogram/row/row",
|
||||||
"t-image-viewer": "tdesign-miniprogram/image-viewer/image-viewer",
|
"t-image-viewer": "tdesign-miniprogram/image-viewer/image-viewer",
|
||||||
"t-popup": "tdesign-miniprogram/popup/popup"
|
"t-popup": "tdesign-miniprogram/popup/popup",
|
||||||
|
"t-navbar": "tdesign-miniprogram/navbar/navbar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,12 @@
|
|||||||
.container{
|
.container{
|
||||||
padding: 24rpx;
|
padding: 24rpx;
|
||||||
|
.t-navbar__content{
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
.no-data{
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 100rpx;
|
||||||
|
}
|
||||||
.follow-up{
|
.follow-up{
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 24rpx;
|
border-radius: 24rpx;
|
||||||
@ -82,7 +89,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.block {
|
.popup-block {
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
min-height: 30vh;
|
min-height: 30vh;
|
||||||
min-height: 60vh;
|
min-height: 60vh;
|
||||||
@ -130,3 +137,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1,5 +1,10 @@
|
|||||||
<!-- pages/followUp/index.wxml -->
|
<!-- pages/followUp/index.wxml -->
|
||||||
<view class="container">
|
<view class="container">
|
||||||
|
<t-navbar t-class-placeholder="t-navbar-placeholder" t-class-content="t-navbar-content" class="block" title="患者详情" left-arrow bind:go-back="handleBack" />
|
||||||
|
<view class="no-data" wx:if="{{followUpList.length == 0}}">
|
||||||
|
暂无随访记录
|
||||||
|
</view>
|
||||||
|
<view wx:else>
|
||||||
<view class="follow-up" bind:tap="openSelect">
|
<view class="follow-up" bind:tap="openSelect">
|
||||||
<view class="follow-up-time">{{followUpDetail.follow_date}}</view>
|
<view class="follow-up-time">{{followUpDetail.follow_date}}</view>
|
||||||
<view class="follow-name">{{followUpDetail.follow_name}}</view>
|
<view class="follow-name">{{followUpDetail.follow_name}}</view>
|
||||||
@ -295,11 +300,11 @@
|
|||||||
</t-col>
|
</t-col>
|
||||||
</t-row>
|
</t-row>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<t-popup visible="{{visible}}" bind:visible-change="onVisibleChange" placement="bottom" custom-style="custom-style" prevent-scroll-through="{{true}}">
|
<t-popup visible="{{visible}}" bind:visible-change="onVisibleChange" placement="bottom" custom-style="custom-style" prevent-scroll-through="{{true}}">
|
||||||
<view class="block">
|
<view class="popup-block">
|
||||||
<view class="header">
|
<view class="header">
|
||||||
<view class="btn btn--cancel" aria-role="button" bindtap="close">取消</view>
|
<view class="btn btn--cancel" aria-role="button" bindtap="close">取消</view>
|
||||||
<view class="title"></view>
|
<view class="title"></view>
|
||||||
|
|||||||
@ -1,131 +1,8 @@
|
|||||||
import * as echarts from '../../ec-canvas/echarts.min';
|
import * as echarts from '../../ec-canvas/echarts.min';
|
||||||
import request from '~/api/request';
|
import request from '~/api/request';
|
||||||
|
import { heightList, weightList } from '../../assets/js/heightWeight';
|
||||||
const app = getApp();
|
const app = getApp();
|
||||||
|
|
||||||
function initChart(canvas, width, height, dpr) {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr
|
|
||||||
});
|
|
||||||
canvas.setChart(chart);
|
|
||||||
|
|
||||||
var option = {
|
|
||||||
title: {
|
|
||||||
text: '',
|
|
||||||
left: 'left',
|
|
||||||
fontSize: 6
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['实际身高', '标准范围'],
|
|
||||||
bottom: 0,
|
|
||||||
left: 'center',
|
|
||||||
z: 100
|
|
||||||
},
|
|
||||||
grid: {
|
|
||||||
containLabel: true,
|
|
||||||
top: '5%',
|
|
||||||
left: '1%',
|
|
||||||
right: '5%',
|
|
||||||
bottom: '10%'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
show: true,
|
|
||||||
trigger: 'axis'
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: false,
|
|
||||||
data: ['出生', '1月', '2月', '3月', '4月', '5月'],
|
|
||||||
},
|
|
||||||
yAxis: {
|
|
||||||
x: 'center',
|
|
||||||
type: 'value',
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
type: 'dashed'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: [{
|
|
||||||
name: '实际身高',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: []
|
|
||||||
}, {
|
|
||||||
name: '标准范围',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: [120, 130, 140, 150, 160, 170]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
chart.setOption(option);
|
|
||||||
return chart;
|
|
||||||
}
|
|
||||||
|
|
||||||
function initChart2(canvas, width, height, dpr) {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr
|
|
||||||
});
|
|
||||||
canvas.setChart(chart);
|
|
||||||
|
|
||||||
var option = {
|
|
||||||
title: {
|
|
||||||
text: '',
|
|
||||||
left: 'left',
|
|
||||||
fontSize: 12
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['实际体重', '标准范围'],
|
|
||||||
bottom: 0,
|
|
||||||
left: 'center',
|
|
||||||
z: 100
|
|
||||||
},
|
|
||||||
grid: {
|
|
||||||
containLabel: true,
|
|
||||||
top: '5%',
|
|
||||||
left: '1%',
|
|
||||||
right: '5%',
|
|
||||||
bottom: '10%'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
show: true,
|
|
||||||
trigger: 'axis'
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: false,
|
|
||||||
data: ['出生', '1月', '2月', '3月', '4月', '5月'],
|
|
||||||
},
|
|
||||||
yAxis: {
|
|
||||||
x: 'center',
|
|
||||||
type: 'value',
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
type: 'dashed'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: [{
|
|
||||||
name: '实际体重',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: []
|
|
||||||
}, {
|
|
||||||
name: '标准范围',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: [120, 130, 140, 150, 160, 170]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
chart.setOption(option);
|
|
||||||
return chart;
|
|
||||||
}
|
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
onShareAppMessage: function (res) {
|
onShareAppMessage: function (res) {
|
||||||
return {
|
return {
|
||||||
@ -142,6 +19,12 @@ Page({
|
|||||||
ec2: {
|
ec2: {
|
||||||
lazyLoad: true
|
lazyLoad: true
|
||||||
},
|
},
|
||||||
|
ec3: {
|
||||||
|
lazyLoad: true
|
||||||
|
},
|
||||||
|
ec4: {
|
||||||
|
lazyLoad: true
|
||||||
|
},
|
||||||
activeIndex: 0,
|
activeIndex: 0,
|
||||||
sfData: {},
|
sfData: {},
|
||||||
sfListLength: 0,
|
sfListLength: 0,
|
||||||
@ -152,276 +35,81 @@ Page({
|
|||||||
heightChart: null,
|
heightChart: null,
|
||||||
weightChart: null,
|
weightChart: null,
|
||||||
carList: [],
|
carList: [],
|
||||||
carLength: 0
|
carLength: 0,
|
||||||
|
userInfo: {},
|
||||||
|
totalBilirubin: [],
|
||||||
|
directBilirubin: []
|
||||||
},
|
},
|
||||||
|
standardHeight: [],
|
||||||
|
standardWeight: [],
|
||||||
|
userId: '',
|
||||||
// Helper function to strip HTML tags and convert to plain text
|
// Helper function to strip HTML tags and convert to plain text
|
||||||
stripHtml(html) {
|
stripHtml(html) {
|
||||||
if (!html) return '';
|
if (!html) return '';
|
||||||
return html.replace(/<[^>]*>/g, '');
|
return html.replace(/<[^>]*>/g, '');
|
||||||
},
|
},
|
||||||
|
async getPersonalInfo(id) {
|
||||||
async getSfList(){
|
const info = await request('doctor/patient/basic/'+id).then((res) => res);
|
||||||
|
console.log(info)
|
||||||
this.followPlans()
|
|
||||||
this.getArticleList()
|
|
||||||
this.getCarList()
|
|
||||||
},
|
|
||||||
async followPlans(){
|
|
||||||
const res = await request('patient/follow_plans', 'get', {
|
|
||||||
page: 1,
|
|
||||||
page_size: 10,
|
|
||||||
type: 1
|
|
||||||
})
|
|
||||||
|
|
||||||
// Calculate days between today and plan_date
|
|
||||||
const today = new Date()
|
|
||||||
const planDate = new Date(res.list[0].plan_date)
|
|
||||||
const diffTime = planDate - today
|
|
||||||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
|
||||||
|
|
||||||
this.setData({
|
this.setData({
|
||||||
sfListLength: res.total,
|
userInfo: info
|
||||||
sfData: {
|
})
|
||||||
...res.list[0],
|
if(info.sex == 1){
|
||||||
daysUntilPlan: diffDays
|
this.standardHeight = heightList.boy
|
||||||
|
this.standardWeight = weightList.boy
|
||||||
|
}else{
|
||||||
|
this.standardHeight = heightList.girl
|
||||||
|
this.standardWeight = weightList.girl
|
||||||
}
|
}
|
||||||
})
|
this.getChartData()
|
||||||
},
|
|
||||||
async getArticleList(){
|
|
||||||
const res2 = await request('patient/articles', 'get', { title: '', page: 1, page_size: 2 });
|
|
||||||
// Convert rich text content to plain text
|
|
||||||
const plainTextContent = this.stripHtml(res2.list[0].content);
|
|
||||||
const articleList = res2.list.map(item => {
|
|
||||||
return {
|
|
||||||
...item,
|
|
||||||
contentText: this.stripHtml(item.content)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.setData({
|
|
||||||
articlesLength: res2.total,
|
|
||||||
articles: articleList
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async getCarList() {
|
|
||||||
const res3 = await request('patient/medicine_records', 'get', {
|
|
||||||
time_type: 1,
|
|
||||||
status: 0,
|
|
||||||
page: 1,
|
|
||||||
page_size: 10
|
|
||||||
})
|
|
||||||
const carList = res3.list.map(item => {
|
|
||||||
item.detail = JSON.parse(item.detail)
|
|
||||||
return item
|
|
||||||
})
|
|
||||||
setTimeout(() => {
|
|
||||||
this.setData({
|
|
||||||
carLength: res3.total,
|
|
||||||
carList: carList
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
async medicineRecord(e){
|
|
||||||
const {id, status} = e.currentTarget.dataset
|
|
||||||
if(status == 1){
|
|
||||||
await request('patient/medicine_record/'+id, 'put', {})
|
|
||||||
wx.showToast({
|
|
||||||
type: 'success',
|
|
||||||
title: '打卡成功',
|
|
||||||
})
|
|
||||||
this.getCarList()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
async getChartData(){
|
async getChartData(){
|
||||||
const res = await request('patient/chat/0', 'get')
|
const res = await request('doctor/patient/chat/'+this.userId, 'get')
|
||||||
const heightData = []
|
const heightData = []
|
||||||
const weightData = []
|
const weightData = []
|
||||||
|
const totalBilirubin = []
|
||||||
|
const directBilirubin = []
|
||||||
if(res.list.length > 0){
|
if(res.list.length > 0){
|
||||||
res.list.forEach(item => {
|
res.list.forEach(item => {
|
||||||
heightData.push(item.height)
|
heightData.push(item.height)
|
||||||
weightData.push(item.weight)
|
weightData.push(item.weight)
|
||||||
|
totalBilirubin.push(item.total_bilirubin)
|
||||||
|
directBilirubin.push(item.directBilirubin)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setData({
|
this.setData({
|
||||||
heightData,
|
heightData,
|
||||||
weightData
|
weightData,
|
||||||
}, () => {
|
totalBilirubin,
|
||||||
this.initCharts();
|
directBilirubin
|
||||||
});
|
});
|
||||||
|
this.initHeightChart()
|
||||||
|
this.initDirectChart()
|
||||||
|
this.initIndirectChart()
|
||||||
},
|
},
|
||||||
|
|
||||||
initCharts() {
|
|
||||||
// 初始化身高图表
|
|
||||||
if (!this.heightChart) {
|
|
||||||
const chart1 = this.selectComponent('#mychart-dom-height');
|
|
||||||
if (chart1) {
|
|
||||||
chart1.init((canvas, width, height, dpr) => {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr
|
|
||||||
});
|
|
||||||
canvas.setChart(chart);
|
|
||||||
|
|
||||||
const option = {
|
|
||||||
title: {
|
|
||||||
text: '',
|
|
||||||
left: 'left',
|
|
||||||
fontSize: 6
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['实际身高', '标准范围'],
|
|
||||||
bottom: 0,
|
|
||||||
left: 'center',
|
|
||||||
z: 100
|
|
||||||
},
|
|
||||||
grid: {
|
|
||||||
containLabel: true,
|
|
||||||
top: '5%',
|
|
||||||
left: '1%',
|
|
||||||
right: '5%',
|
|
||||||
bottom: '10%'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
show: true,
|
|
||||||
trigger: 'axis'
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: false,
|
|
||||||
data: ['出生', '1月', '2月', '3月', '4月', '5月'],
|
|
||||||
},
|
|
||||||
yAxis: {
|
|
||||||
x: 'center',
|
|
||||||
type: 'value',
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
type: 'dashed'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: [{
|
|
||||||
name: '实际身高',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: this.data.heightData
|
|
||||||
}, {
|
|
||||||
name: '标准范围',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: [120, 130, 140, 150, 160, 170]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
chart.setOption(option);
|
|
||||||
this.heightChart = chart;
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化体重图表
|
|
||||||
if (!this.weightChart) {
|
|
||||||
const chart2 = this.selectComponent('#mychart-dom-weight');
|
|
||||||
if (chart2) {
|
|
||||||
chart2.init((canvas, width, height, dpr) => {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr
|
|
||||||
});
|
|
||||||
canvas.setChart(chart);
|
|
||||||
|
|
||||||
const option = {
|
|
||||||
title: {
|
|
||||||
text: '',
|
|
||||||
left: 'left',
|
|
||||||
fontSize: 12
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['实际体重', '标准范围'],
|
|
||||||
bottom: 0,
|
|
||||||
left: 'center',
|
|
||||||
z: 100
|
|
||||||
},
|
|
||||||
grid: {
|
|
||||||
containLabel: true,
|
|
||||||
top: '5%',
|
|
||||||
left: '1%',
|
|
||||||
right: '5%',
|
|
||||||
bottom: '10%'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
show: true,
|
|
||||||
trigger: 'axis'
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: false,
|
|
||||||
data: ['出生', '1月', '2月', '3月', '4月', '5月'],
|
|
||||||
},
|
|
||||||
yAxis: {
|
|
||||||
x: 'center',
|
|
||||||
type: 'value',
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
type: 'dashed'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: [{
|
|
||||||
name: '实际体重',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: this.data.weightData
|
|
||||||
}, {
|
|
||||||
name: '标准范围',
|
|
||||||
type: 'line',
|
|
||||||
smooth: true,
|
|
||||||
data: [120, 130, 140, 150, 160, 170]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
chart.setOption(option);
|
|
||||||
this.weightChart = chart;
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
toBack() {
|
toBack() {
|
||||||
wx.navigateBack({
|
wx.navigateBack({
|
||||||
delta: 1
|
delta: 1
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onLoad(){
|
onLoad(options) {
|
||||||
// this.getSfList()
|
this.userId = options.userId
|
||||||
// setTimeout(() => {
|
this.getPersonalInfo(options.userId)
|
||||||
// this.getChartData().then(() => {
|
|
||||||
// if (this.data.activeIndex === 0) {
|
|
||||||
// this.initHeightChart();
|
|
||||||
// } else {
|
|
||||||
// this.initWeightChart();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }, 500);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onReady() {
|
onReady() {
|
||||||
// setTimeout(() => {
|
|
||||||
// this.getChartData().then(() => {
|
|
||||||
// if (this.data.activeIndex === 0) {
|
},
|
||||||
// this.initHeightChart();
|
toLink(){
|
||||||
// } else {
|
wx.navigateTo({
|
||||||
// this.initWeightChart();
|
url: '/pages/followUp/index?userId=' + this.userId
|
||||||
// }
|
})
|
||||||
// });
|
|
||||||
// }, 500);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
changeChart(e) {
|
changeChart(e) {
|
||||||
@ -442,28 +130,6 @@ Page({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
toClockIn(){
|
|
||||||
wx.navigateTo({
|
|
||||||
url: '/pages/clockIn/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
toEmergency(){
|
|
||||||
wx.navigateTo({
|
|
||||||
url: '/pages/emergency/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
toArticle(){
|
|
||||||
wx.navigateTo({
|
|
||||||
url: '/pages/articleList/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
async toArticleDelit(e){
|
|
||||||
const index = e.currentTarget.dataset.index;
|
|
||||||
await wx.setStorageSync('article',JSON.stringify(this.data.articles[index]));
|
|
||||||
wx.navigateTo({
|
|
||||||
url: '/pages/article/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
onUnload() {
|
onUnload() {
|
||||||
// 页面卸载时销毁图表实例
|
// 页面卸载时销毁图表实例
|
||||||
@ -479,6 +145,11 @@ Page({
|
|||||||
|
|
||||||
// 初始化身高图表
|
// 初始化身高图表
|
||||||
initHeightChart() {
|
initHeightChart() {
|
||||||
|
const standardHeight = this.standardHeight;
|
||||||
|
const standardLower = standardHeight.map(item => item[0]);
|
||||||
|
const standardUpper = standardHeight.map(item => item[1]);
|
||||||
|
const standardRange = standardUpper.map((up, i) => up - standardLower[i]);
|
||||||
|
|
||||||
const chartComp = this.selectComponent('#mychart-dom-height');
|
const chartComp = this.selectComponent('#mychart-dom-height');
|
||||||
if (chartComp) {
|
if (chartComp) {
|
||||||
chartComp.init((canvas, width, height, dpr) => {
|
chartComp.init((canvas, width, height, dpr) => {
|
||||||
@ -486,14 +157,44 @@ Page({
|
|||||||
canvas.setChart(chart);
|
canvas.setChart(chart);
|
||||||
chart.setOption({
|
chart.setOption({
|
||||||
title: { text: '', left: 'left', fontSize: 6 },
|
title: { text: '', left: 'left', fontSize: 6 },
|
||||||
legend: { data: ['实际身高', '标准范围'], bottom: 0, left: 'center', z: 100 },
|
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '3%' },
|
||||||
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '10%' },
|
tooltip: {
|
||||||
tooltip: { show: true, trigger: 'axis' },
|
show: true,
|
||||||
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月'] },
|
trigger: 'axis',
|
||||||
|
formatter: function (params) {
|
||||||
|
const param = params[0];
|
||||||
|
return `${param.axisValue}\n${param.seriesName}: ${param.value} cm`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月', '6月'] },
|
||||||
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
||||||
series: [
|
series: [
|
||||||
{ name: '实际身高', type: 'line', smooth: true, data: this.data.heightData },
|
{
|
||||||
{ name: '标准范围', type: 'line', smooth: true, data: [120, 130, 140, 150, 160, 170] }
|
name: '实际身高',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
data: this.data.heightData
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '标准下界',
|
||||||
|
type: 'line',
|
||||||
|
symbol: 'none',
|
||||||
|
data: standardLower,
|
||||||
|
lineStyle: { opacity: 0 },
|
||||||
|
stack: '标准范围',
|
||||||
|
areaStyle: { opacity: 0 },
|
||||||
|
tooltip: { show: false }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '标准范围',
|
||||||
|
type: 'line',
|
||||||
|
symbol: 'none',
|
||||||
|
data: standardRange,
|
||||||
|
lineStyle: { opacity: 0 },
|
||||||
|
stack: '标准范围',
|
||||||
|
areaStyle: { color: 'rgba(135,206,250,0.3)' },
|
||||||
|
tooltip: { show: false }
|
||||||
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
return chart;
|
return chart;
|
||||||
@ -503,21 +204,128 @@ Page({
|
|||||||
|
|
||||||
// 初始化体重图表
|
// 初始化体重图表
|
||||||
initWeightChart() {
|
initWeightChart() {
|
||||||
|
const standardWeight = this.standardWeight;
|
||||||
|
const standardLower = standardWeight.map(item => item[0]);
|
||||||
|
const standardUpper = standardWeight.map(item => item[1]);
|
||||||
|
const standardRange = standardUpper.map((up, i) => up - standardLower[i]);
|
||||||
|
|
||||||
const chartComp = this.selectComponent('#mychart-dom-weight');
|
const chartComp = this.selectComponent('#mychart-dom-weight');
|
||||||
if (chartComp) {
|
if (chartComp) {
|
||||||
chartComp.init((canvas, width, height, dpr) => {
|
chartComp.init((canvas, width, height, dpr) => {
|
||||||
const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
|
const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
|
||||||
canvas.setChart(chart);
|
canvas.setChart(chart);
|
||||||
chart.setOption({
|
chart.setOption({
|
||||||
title: { text: '', left: 'left', fontSize: 12 },
|
title: { text: '', left: 'left', fontSize: 6 },
|
||||||
legend: { data: ['实际体重', '标准范围'], bottom: 0, left: 'center', z: 100 },
|
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '3%' },
|
||||||
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '10%' },
|
tooltip: {
|
||||||
tooltip: { show: true, trigger: 'axis' },
|
show: true,
|
||||||
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月'] },
|
trigger: 'axis',
|
||||||
|
formatter: function (params) {
|
||||||
|
const param = params[0];
|
||||||
|
return `${param.axisValue}\n${param.seriesName}: ${param.value} cm`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月', '6月'] },
|
||||||
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
||||||
series: [
|
series: [
|
||||||
{ name: '实际体重', type: 'line', smooth: true, data: this.data.weightData },
|
{
|
||||||
{ name: '标准范围', type: 'line', smooth: true, data: [120, 130, 140, 150, 160, 170] }
|
name: '实际体重',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
data: this.data.weightData
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '标准下界',
|
||||||
|
type: 'line',
|
||||||
|
symbol: 'none',
|
||||||
|
data: standardLower,
|
||||||
|
lineStyle: { opacity: 0 },
|
||||||
|
stack: '标准范围',
|
||||||
|
areaStyle: { opacity: 0 },
|
||||||
|
tooltip: { show: false }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '标准范围',
|
||||||
|
type: 'line',
|
||||||
|
symbol: 'none',
|
||||||
|
data: standardRange,
|
||||||
|
lineStyle: { opacity: 0 },
|
||||||
|
stack: '标准范围',
|
||||||
|
areaStyle: { color: 'rgba(135,206,250,0.3)' },
|
||||||
|
tooltip: { show: false }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
return chart;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 初始化体直接胆红素趋势
|
||||||
|
initDirectChart() {
|
||||||
|
|
||||||
|
|
||||||
|
const chartComp = this.selectComponent('#mychart-dom-direct');
|
||||||
|
if (chartComp) {
|
||||||
|
chartComp.init((canvas, width, height, dpr) => {
|
||||||
|
const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
|
||||||
|
canvas.setChart(chart);
|
||||||
|
chart.setOption({
|
||||||
|
title: { text: '', left: 'left', fontSize: 6 },
|
||||||
|
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '3%' },
|
||||||
|
tooltip: {
|
||||||
|
show: true,
|
||||||
|
trigger: 'axis',
|
||||||
|
formatter: function (params) {
|
||||||
|
const param = params[0];
|
||||||
|
return `${param.axisValue}\n${param.seriesName}: ${param.value} μmol/L`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月', '6月'] },
|
||||||
|
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '总胆红素',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
data: this.data.totalBilirubin
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
});
|
||||||
|
return chart;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 初始化体间接胆红素趋势
|
||||||
|
initIndirectChart() {
|
||||||
|
|
||||||
|
|
||||||
|
const chartComp = this.selectComponent('#mychart-dom-indirect');
|
||||||
|
if (chartComp) {
|
||||||
|
chartComp.init((canvas, width, height, dpr) => {
|
||||||
|
const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
|
||||||
|
canvas.setChart(chart);
|
||||||
|
chart.setOption({
|
||||||
|
title: { text: '', left: 'left', fontSize: 6 },
|
||||||
|
grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '3%' },
|
||||||
|
tooltip: {
|
||||||
|
show: true,
|
||||||
|
trigger: 'axis',
|
||||||
|
formatter: function (params) {
|
||||||
|
const param = params[0];
|
||||||
|
return `${param.axisValue}\n${param.seriesName}: ${param.value} μmol/L`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月', '6月'] },
|
||||||
|
yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '直接胆红素',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
data: this.data.directBilirubin
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
return chart;
|
return chart;
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
"t-button": "tdesign-miniprogram/button/button",
|
"t-button": "tdesign-miniprogram/button/button",
|
||||||
"ec-canvas": "../../ec-canvas/ec-canvas",
|
"ec-canvas": "../../ec-canvas/ec-canvas",
|
||||||
"t-col": "tdesign-miniprogram/col/col",
|
"t-col": "tdesign-miniprogram/col/col",
|
||||||
"t-row": "tdesign-miniprogram/row/row"
|
"t-row": "tdesign-miniprogram/row/row",
|
||||||
|
"t-navbar": "tdesign-miniprogram/navbar/navbar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,9 +3,10 @@
|
|||||||
@home-tab-item-height: 96rpx;
|
@home-tab-item-height: 96rpx;
|
||||||
|
|
||||||
.home-container {
|
.home-container {
|
||||||
height: calc(100vh - @tab-bar-height);
|
|
||||||
padding-top: 88rpx;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
.home-top-bg {
|
.home-top-bg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
@ -15,7 +16,25 @@
|
|||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hot {
|
||||||
|
color: #D00F16;
|
||||||
|
font-size: 36rpx;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
// margin-top: ;
|
||||||
|
}
|
||||||
|
.waring{
|
||||||
|
color:#ed7b2f ;
|
||||||
|
}
|
||||||
|
.success{
|
||||||
|
color:#00a870;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
font-size: 36rpx;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
.group_2 {
|
.group_2 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
@ -31,6 +50,7 @@
|
|||||||
z-index: 1;
|
z-index: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 28rpx;
|
padding: 28rpx;
|
||||||
|
|
||||||
.box_1 {
|
.box_1 {
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/e2d2f77550f64a02bebd425d1db7d2e3_mergeImage.png);
|
background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/e2d2f77550f64a02bebd425d1db7d2e3_mergeImage.png);
|
||||||
@ -40,11 +60,13 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-group_1 {
|
.text-group_1 {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin: 16rpx 0 16rpx 24rpx;
|
margin: 16rpx 0 16rpx 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_2 {
|
.text_2 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(17, 17, 17, 1);
|
color: rgba(17, 17, 17, 1);
|
||||||
@ -56,6 +78,7 @@
|
|||||||
line-height: 36rpx;
|
line-height: 36rpx;
|
||||||
margin-right: 24rpx;
|
margin-right: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_3 {
|
.text_3 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(96, 98, 102, 1);
|
color: rgba(96, 98, 102, 1);
|
||||||
@ -67,6 +90,7 @@
|
|||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
margin-top: 24rpx;
|
margin-top: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_4 {
|
.text_4 {
|
||||||
color: rgba(96, 98, 102, 1);
|
color: rgba(96, 98, 102, 1);
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
@ -75,6 +99,7 @@
|
|||||||
margin: 28rpx 0 0 0rpx;
|
margin: 28rpx 0 0 0rpx;
|
||||||
margin-left: 24rpx;
|
margin-left: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box_2 {
|
.box_2 {
|
||||||
background-color: rgba(255, 93, 93, 0.000000);
|
background-color: rgba(255, 93, 93, 0.000000);
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
@ -97,6 +122,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin: 16rpx 0 16rpx 24rpx;
|
margin: 16rpx 0 16rpx 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image_2 {
|
.image_2 {
|
||||||
width: 24rpx;
|
width: 24rpx;
|
||||||
height: 48rpx;
|
height: 48rpx;
|
||||||
@ -105,10 +131,12 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_1 {
|
.text_1 {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image_3 {
|
.image_3 {
|
||||||
width: 174rpx;
|
width: 174rpx;
|
||||||
height: 64rpx;
|
height: 64rpx;
|
||||||
@ -116,27 +144,61 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.home-content {
|
.home-content {
|
||||||
// height: calc(100% - @nav-bar-height);
|
height: calc(100vh - 180rpx);
|
||||||
background-color: #F8F8F8;
|
overflow: scroll;
|
||||||
padding: 28rpx;
|
// padding: 28rpx;
|
||||||
padding-bottom: 0;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
|
.table-group {
|
||||||
|
background: #F8F8F8;
|
||||||
|
|
||||||
border-radius: 40rpx 40rpx 0rpx 0rpx;
|
border-radius: 40rpx 40rpx 0rpx 0rpx;
|
||||||
|
padding: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.text_1 {
|
.text_1 {
|
||||||
font-size: 36rpx;
|
font-size: 36rpx;
|
||||||
color: var(--td-text-color);
|
color: var(--td-text-color);
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-indicators {
|
.core-indicators {
|
||||||
.box_2 {
|
.box_2 {
|
||||||
margin-top: 24rpx;
|
margin-top: 24rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 24rpx;
|
border-radius: 24rpx;
|
||||||
box-shadow: 0 0 30rpx 0 rgba(0,0,0,0.1);
|
// box-shadow: 0 0 30rpx 0 rgba(0,0,0,0.1);
|
||||||
padding: 24rpx;
|
padding: 40rpx 32rpx;
|
||||||
|
|
||||||
.box_2_item {
|
.box_2_item {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 200rpx;
|
padding-bottom: 20rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-top: 50rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
.text{
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
// height: 200rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box_3_item {
|
||||||
|
border-top: 2rpx solid #f5f5f5;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 20rpx;
|
||||||
|
.text{
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.border-left {
|
||||||
|
border-left: 2rpx solid #f5f5f5;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,12 +208,14 @@
|
|||||||
height: 36rpx;
|
height: 36rpx;
|
||||||
// width: auto;
|
// width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-title-img-2 {
|
.item-title-img-2 {
|
||||||
height: 96rpx;
|
height: 96rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
left: -24rpx;
|
left: -24rpx;
|
||||||
// margin-top: -28rpx;
|
// margin-top: -28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-title {
|
.item-title {
|
||||||
font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
|
font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
@ -161,29 +225,21 @@
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
margin-bottom: 28rpx;
|
margin-bottom: 28rpx;
|
||||||
.item-title-icon{
|
margin-top: 28rpx;
|
||||||
vertical-align: middle;
|
font-weight: bold;
|
||||||
width: 36rpx;
|
|
||||||
height: 36rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
position: relative;
|
|
||||||
top: -4rpx;
|
|
||||||
left: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-content {
|
.item-content {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 24rpx;
|
border-radius: 24rpx;
|
||||||
padding: 28rpx;
|
padding: 28rpx;
|
||||||
margin-bottom: 28rpx;
|
margin-bottom: 28rpx;
|
||||||
|
box-shadow: 0rpx 2rpx 20rpx 0rpx rgba(178, 178, 178, 0.05);
|
||||||
|
|
||||||
|
|
||||||
.echarts-canvas-container {
|
.echarts-canvas-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 600rpx;
|
height: 500rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.echarts-canvas {
|
.echarts-canvas {
|
||||||
@ -208,12 +264,14 @@
|
|||||||
|
|
||||||
.item-title {
|
.item-title {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.item-title-icon {
|
.item-title-icon {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
width: 36rpx;
|
width: 36rpx;
|
||||||
height: 36rpx;
|
height: 36rpx;
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-title-right-text {
|
.item-title-right-text {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
@ -222,6 +280,7 @@
|
|||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-content-1-bg {
|
.item-content-1-bg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
@ -230,6 +289,7 @@
|
|||||||
width: 240rpx;
|
width: 240rpx;
|
||||||
height: 240rpx;
|
height: 240rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-box {
|
.item-box {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 12rpx;
|
border-radius: 12rpx;
|
||||||
@ -296,20 +356,34 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.btn{
|
||||||
|
width: 100%;
|
||||||
|
height: 96rpx;
|
||||||
|
background: #005BA2;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
.item-content-3 {
|
.item-content-3 {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
|
||||||
.item-box {
|
.item-box {
|
||||||
// background-color: transparent;
|
// background-color: transparent;
|
||||||
box-shadow: 0rpx 2rpx 20rpx 0rpx rgba(178, 178, 178, 0.05);
|
box-shadow: 0rpx 2rpx 20rpx 0rpx rgba(178, 178, 178, 0.05);
|
||||||
border-radius: 24rpx;
|
border-radius: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-title-icon {
|
.item-title-icon {
|
||||||
margin-right: 18rpx;
|
margin-right: 18rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-content-2 {
|
.item-content-2 {
|
||||||
background: linear-gradient(180deg, #E7F2F2 0%, #F7FCFC 100%);
|
background: linear-gradient(180deg, #E7F2F2 0%, #F7FCFC 100%);
|
||||||
box-shadow: 0rpx 2rpx 20rpx 0rpx #E9F4F3;
|
box-shadow: 0rpx 2rpx 20rpx 0rpx #E9F4F3;
|
||||||
@ -317,14 +391,17 @@
|
|||||||
border: 2rpx solid #FFFFFF;
|
border: 2rpx solid #FFFFFF;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
|
|
||||||
.item-title {
|
.item-title {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-box {
|
.item-box {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-content-1 {
|
.item-content-1 {
|
||||||
background: linear-gradient(180deg, #EDF3F8 0%, #F7FAFC 100%);
|
background: linear-gradient(180deg, #EDF3F8 0%, #F7FAFC 100%);
|
||||||
box-shadow: 0rpx 2rpx 20rpx 0rpx #EDF3F8;
|
box-shadow: 0rpx 2rpx 20rpx 0rpx #EDF3F8;
|
||||||
@ -365,16 +442,19 @@
|
|||||||
margin-bottom: 16rpx;
|
margin-bottom: 16rpx;
|
||||||
margin-left: -4rpx;
|
margin-left: -4rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-wrapper_1 {
|
.text-wrapper_1 {
|
||||||
border-radius: 28rpx;
|
border-radius: 28rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 12rpx 24rpx 12rpx 24rpx;
|
padding: 12rpx 24rpx 12rpx 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-act {
|
.text-act {
|
||||||
background-color: rgba(255, 255, 255, 1.000000);
|
background-color: rgba(255, 255, 255, 1.000000);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_2 {
|
.text_2 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(34, 34, 34, 1);
|
color: rgba(34, 34, 34, 1);
|
||||||
@ -385,11 +465,13 @@
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
line-height: 24rpx;
|
line-height: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.echarts-title {
|
.echarts-title {
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #909399;
|
color: #909399;
|
||||||
line-height: 34rpx;
|
line-height: 34rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-text_3 {
|
.image-text_3 {
|
||||||
width: 110rpx;
|
width: 110rpx;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -397,6 +479,7 @@
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: 32rpx 0rpx 18rpx 0;
|
margin: 32rpx 0rpx 18rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box_6 {
|
.box_6 {
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
width: 16rpx;
|
width: 16rpx;
|
||||||
@ -407,6 +490,7 @@
|
|||||||
margin: 6rpx 0 6rpx 0;
|
margin: 6rpx 0 6rpx 0;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-group_3 {
|
.text-group_3 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(34, 34, 34, 1);
|
color: rgba(34, 34, 34, 1);
|
||||||
@ -417,6 +501,7 @@
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box_9 {
|
.box_9 {
|
||||||
background-color: rgba(255, 255, 255, 1.000000);
|
background-color: rgba(255, 255, 255, 1.000000);
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
@ -428,12 +513,14 @@
|
|||||||
padding: 24rpx 24rpx 24rpx 24rpx;
|
padding: 24rpx 24rpx 24rpx 24rpx;
|
||||||
margin-left: 30rpx;
|
margin-left: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-text_5 {
|
.image-text_5 {
|
||||||
width: 298rpx;
|
width: 298rpx;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box_10 {
|
.box_10 {
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/c46fcd8a7c644cbbb347a75b175350c6_mergeImage.png);
|
background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/c46fcd8a7c644cbbb347a75b175350c6_mergeImage.png);
|
||||||
@ -445,11 +532,13 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
margin-right: 16rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-group_5 {
|
.text-group_5 {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin: 12rpx 0 12rpx 0;
|
margin: 12rpx 0 12rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_21 {
|
.text_21 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(34, 34, 34, 1);
|
color: rgba(34, 34, 34, 1);
|
||||||
@ -459,6 +548,7 @@
|
|||||||
line-height: 32rpx;
|
line-height: 32rpx;
|
||||||
margin-right: 86rpx;
|
margin-right: 86rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_22 {
|
.text_22 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
color: rgba(144, 147, 153, 1);
|
color: rgba(144, 147, 153, 1);
|
||||||
@ -470,6 +560,7 @@
|
|||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
margin-top: 16rpx;
|
margin-top: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box_11 {
|
.box_11 {
|
||||||
background-color: rgba(237, 243, 248, 1.000000);
|
background-color: rgba(237, 243, 248, 1.000000);
|
||||||
width: 2rpx;
|
width: 2rpx;
|
||||||
@ -478,6 +569,7 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin: 20rpx 0 18rpx 100rpx;
|
margin: 20rpx 0 18rpx 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-wrapper_6 {
|
.text-wrapper_6 {
|
||||||
|
|
||||||
border-radius: 32rpx;
|
border-radius: 32rpx;
|
||||||
@ -485,10 +577,12 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin: 22rpx 0 22rpx 24rpx;
|
margin: 22rpx 0 22rpx 24rpx;
|
||||||
padding: 12rpx 40rpx 12rpx 40rpx;
|
padding: 12rpx 40rpx 12rpx 40rpx;
|
||||||
|
|
||||||
.text_23 {
|
.text_23 {
|
||||||
color: rgba(0, 91, 162, 1.000000);
|
color: rgba(0, 91, 162, 1.000000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.catArt {
|
.catArt {
|
||||||
background-color: rgba(0, 91, 162, 1.000000);
|
background-color: rgba(0, 91, 162, 1.000000);
|
||||||
|
|
||||||
@ -496,6 +590,7 @@
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.text_23 {
|
.text_23 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
|
|||||||
@ -1,42 +1,59 @@
|
|||||||
<!-- <nav nav-type="search" /> -->
|
<!-- <nav nav-type="search" /> -->
|
||||||
<view class="home-container">
|
<view class="home-container">
|
||||||
<image class="home-top-bg" mode="widthFix" src="../../assets/images/my/my-top-bg.png" />
|
<image class="home-top-bg" mode="widthFix" src="https://image-fudan.oss-cn-beijing.aliyuncs.com/mini_images/my/my-top-bg.png" />
|
||||||
<view class="group_1">
|
<t-navbar t-class-placeholder="t-navbar-placeholder" t-class-content="t-navbar-content" class="block" title="患者详情" left-arrow bind:go-back="handleBack" />
|
||||||
<text class="iconfont icon-fanhui image_2" bind:tap="toBack"></text>
|
<view class="home-content">
|
||||||
<text lines="1" class="text_1">患者详情页</text>
|
|
||||||
</view>
|
|
||||||
<view class="group_2">
|
<view class="group_2">
|
||||||
<view class="box_1"></view>
|
<view class="box_1"></view>
|
||||||
<view class="text-group_1">
|
<view class="text-group_1">
|
||||||
<text lines="1" class="text_2">张知梦<text lines="1" decode="true" class="text_4">女 · 2岁5个月</text></text>
|
<text lines="1" class="text_2">{{userInfo.username}}<text lines="1" decode="true" class="text_4">{{userInfo.sex == 1 ? '男':'女'}} · {{ userInfo.age }}</text></text>
|
||||||
<text lines="1" class="text_3">下次随访时间:2025-12-12</text>
|
<text lines="1" class="text_3">下次随访时间:{{ userInfo.next_follow_date }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="home-content">
|
<view class="table-group">
|
||||||
|
|
||||||
<view class="core-indicators">
|
<view class="core-indicators">
|
||||||
<text lines="1" class="text_1">核心指标</text>
|
<text lines="1" class="text_1">核心指标</text>
|
||||||
<view class="box_2">
|
<view class="box_2">
|
||||||
<t-row>
|
<t-row>
|
||||||
<t-col span="12" t-class="dark">
|
<t-col span="12" t-class="dark">
|
||||||
<view class="box_2_item">
|
<view class="box_2_item">
|
||||||
<view>术后时长3个月</view>
|
<view class="info">{{userInfo.postoperative_duration}}</view>
|
||||||
|
<view class="text">术后时长</view>
|
||||||
</view>
|
</view>
|
||||||
</t-col>
|
</t-col>
|
||||||
<t-col span="12" t-class="light">
|
<t-col span="12" t-class="light">
|
||||||
<view >高危/PELD 12</view>
|
<view class="box_2_item border-left">
|
||||||
<view></view>
|
<view class="hot" wx:if="{{userInfo.risk_type == 3}}">高危/PELD {{userInfo.risk_value}}</view>
|
||||||
|
<view class="hot wargin" wx:if="{{userInfo.risk_type == 2}}">中危/PELD {{userInfo.risk_value}}</view>
|
||||||
|
<view class="hot success" wx:if="{{userInfo.risk_type == 1}}">低危/PELD {{userInfo.risk_value}}</view>
|
||||||
|
<view class="hot success" wx:if="{{userInfo.risk_type == 0}}">未知 {{userInfo.risk_value}}</view>
|
||||||
|
<view class="text">当前风险</view>
|
||||||
|
</view>
|
||||||
|
</t-col>
|
||||||
|
<t-col span="12" t-class="dark">
|
||||||
|
<view class="box_3_item">
|
||||||
|
<view class="hot">40%</view>
|
||||||
|
<view class="text">GGT指数/较上次</view>
|
||||||
|
</view>
|
||||||
|
</t-col>
|
||||||
|
<t-col span="12" t-class="dark">
|
||||||
|
<view class="box_3_item border-left">
|
||||||
|
<view class="info" wx:if="{{userInfo.height_growth_curve_type == 0}}">未知</view>
|
||||||
|
<view class="info" wx:if="{{userInfo.height_growth_curve_type == 1}}">轻度偏离</view>
|
||||||
|
<view class="info" wx:if="{{userInfo.height_growth_curve_type == 2}}">正常</view>
|
||||||
|
<view class="info" wx:if="{{userInfo.height_growth_curve_type == 3}}">重度偏离</view>
|
||||||
|
<view class="text">生长曲线</view>
|
||||||
|
</view>
|
||||||
</t-col>
|
</t-col>
|
||||||
<t-col span="12" t-class="dark">col-8</t-col>
|
|
||||||
</t-row>
|
</t-row>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item-title">
|
<view class="item-title">
|
||||||
<image class="item-title-icon" src="../../assets/images/home/icon_1.svg"></image>
|
生长曲线</view>
|
||||||
宝宝成长曲线</view>
|
|
||||||
<view class="item-content">
|
<view class="item-content">
|
||||||
|
|
||||||
<view class="box_3">
|
<view class="box_3">
|
||||||
@ -53,76 +70,26 @@
|
|||||||
<ec-canvas wx:else id="mychart-dom-weight" canvas-id="mychart-weight" ec="{{ ec2 }}" force-use-old-canvas="true"></ec-canvas>
|
<ec-canvas wx:else id="mychart-dom-weight" canvas-id="mychart-weight" ec="{{ ec2 }}" force-use-old-canvas="true"></ec-canvas>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item-content item-content-1">
|
|
||||||
<image class="item-content-1-bg" src="../../assets/images/home/img_1.png" mode="widthFix"></image>
|
|
||||||
<view class="item-title">
|
<view class="item-title">
|
||||||
<image class="item-title-img" src="../../assets/images/home/img_title_1.png" mode="heightFix"></image>
|
总胆红素趋势</view>
|
||||||
<view class="item-title-right-text" bindtap="toClockIn">
|
<view class="item-content">
|
||||||
更多
|
<view class="echarts-canvas-container">
|
||||||
|
<ec-canvas id="mychart-dom-direct" canvas-id="mychart-direct" ec="{{ ec3 }}" force-use-old-canvas="true"></ec-canvas>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view wx:for="{{carList}}">
|
<view class="item-title">
|
||||||
|
直接胆红素趋势</view>
|
||||||
|
<view class="item-content">
|
||||||
|
<view class="echarts-canvas-container">
|
||||||
|
<ec-canvas id="mychart-dom-indirect" canvas-id="mychart-indirect" ec="{{ ec4 }}" force-use-old-canvas="true"></ec-canvas>
|
||||||
|
|
||||||
<view class="image-text_3">
|
|
||||||
<view class="box_6"></view>
|
|
||||||
<text lines="1" class="text-group_3">{{item.medicine_time}}</text>
|
|
||||||
</view>
|
|
||||||
<view class="box_9" wx:for="{{item.detail}}" wx:for-item="item2">
|
|
||||||
<view class="image-text_5">
|
|
||||||
<view class="box_10"></view>
|
|
||||||
<view class="text-group_5">
|
|
||||||
<text lines="1" class="text_21">{{item2.name}}</text>
|
|
||||||
<text lines="1" class="text_22">{{item2.frequency}}片,{{item2.time}}服用</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="box_11"></view>
|
|
||||||
<view class="text-wrapper_6 {{item.status=='2'?'':'catArt'}}" data-id="{{item.id}}" data-status="{{item.status}}" bind:tap="medicineRecord">
|
|
||||||
<text lines="1" class="text_23">{{item.status=='2'?'已打卡':'打卡'}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="item-content item-content-2" wx:if="{{sfListLength > 0}}">
|
|
||||||
<image class="item-content-1-bg" src="../../assets/images/home/img_2.png" mode="widthFix"></image>
|
|
||||||
<view class="item-title">
|
|
||||||
<image class="item-title-img-2" src="../../assets/images/home/img_title_2.png" mode="heightFix"></image>
|
|
||||||
</view>
|
|
||||||
<view class="item-box">
|
|
||||||
<view class="drug-name">
|
|
||||||
{{sfData.plan_name}}
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="follow-up-itme">
|
|
||||||
随访时间:{{sfData.plan_date}}
|
|
||||||
</view>
|
|
||||||
<text class="follow-itme-ed">{{sfData.daysUntilPlan}}天后</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="item-content item-content-3" wx:if="articlesLength > 0">
|
|
||||||
<view class="item-title">
|
|
||||||
<image class="item-title-icon" src="../../assets/images/home/icon_2.png"></image> 健康推送
|
|
||||||
<view class="item-title-right-text" bind:tap="toArticle">
|
|
||||||
更多
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="item-box" wx:for="{{articles}}" wx:key="index" bind:tap="toArticleDelit" data-index="{{index}}">
|
|
||||||
<view class="drug-name">
|
|
||||||
{{item.title}}
|
|
||||||
</view>
|
|
||||||
<view class="article-content">
|
|
||||||
{{item.contentText}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="home-release">
|
|
||||||
<t-button theme="primary" size="large" icon="add" shape="round" bindtap="goRelease">
|
|
||||||
发布
|
|
||||||
</t-button>
|
|
||||||
</view> -->
|
|
||||||
<!-- <t-message id="t-message" /> -->
|
|
||||||
|
|
||||||
<view class="emergency-access" bindtap="toEmergency">
|
</view>
|
||||||
<t-icon name="call-1-filled" size="42rpx" />
|
<view class="btn" bind:tap="toLink">
|
||||||
|
查看患者随访问卷
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import request from '~/api/request';
|
import request from '~/api/request';
|
||||||
|
|
||||||
import aesCryptoJS from '~/utils/aesCryptoJS';
|
import aesCryptoJS from '~/utils/aesCryptoJS.js';
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
data: {
|
data: {
|
||||||
@ -8,8 +8,8 @@ Page({
|
|||||||
phoneNumber: '',
|
phoneNumber: '',
|
||||||
timer: null,
|
timer: null,
|
||||||
getCodeText: '获取验证码',
|
getCodeText: '获取验证码',
|
||||||
mobile: '13888888888',
|
mobile: '',//13888888888
|
||||||
password: 'doctor2025',
|
password: '',//doctor2025
|
||||||
showPassword: false,
|
showPassword: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"t-navbar": "tdesign-miniprogram/navbar/navbar",
|
|
||||||
"t-input": "tdesign-miniprogram/input/input",
|
|
||||||
"t-link": "tdesign-miniprogram/link/link",
|
|
||||||
"t-button": "tdesign-miniprogram/button/button"
|
|
||||||
},
|
},
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"t-button": "tdesign-miniprogram/button/button"
|
"t-navbar": "tdesign-miniprogram/navbar/navbar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -167,7 +167,6 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 120rpx;
|
width: 120rpx;
|
||||||
height: 120rpx;
|
height: 120rpx;
|
||||||
margin-bottom: 48rpx;
|
|
||||||
background-color: rgba(255,255,255,0.5);
|
background-color: rgba(255,255,255,0.5);
|
||||||
// padding: 20rpx;
|
// padding: 20rpx;
|
||||||
border-radius: 120rpx;
|
border-radius: 120rpx;
|
||||||
@ -182,11 +181,10 @@
|
|||||||
height: 120rpx;
|
height: 120rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
padding-left: 20rpx;
|
padding-left: 20rpx;
|
||||||
}
|
}
|
||||||
.text-group_4 {
|
.text-group_4 {
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
}
|
||||||
.text_3 {
|
.text_3 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
|
|||||||
@ -1,4 +1,10 @@
|
|||||||
<view class="page">
|
<view class="page">
|
||||||
|
<t-navbar
|
||||||
|
t-class-placeholder="t-navbar-placeholder"
|
||||||
|
t-class-content="t-navbar-content"
|
||||||
|
class="block"
|
||||||
|
title="首页"
|
||||||
|
/>
|
||||||
<view class="block_1">
|
<view class="block_1">
|
||||||
<view class="box_1">
|
<view class="box_1">
|
||||||
<view class="text-wrapper_1" wx:if="{{isLogin}}" bind:tap="logOut">
|
<view class="text-wrapper_1" wx:if="{{isLogin}}" bind:tap="logOut">
|
||||||
@ -8,11 +14,11 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block_3">
|
<view class="block_3">
|
||||||
<image src="../../assets/images/my/my-top-bg.png" class="image_3"></image>
|
<image src="https://image-fudan.oss-cn-beijing.aliyuncs.com/mini_images/my/my-top-bg.png" class="image_3"></image>
|
||||||
|
|
||||||
<view class="section_2" wx:if="{{isLogin}}" >
|
<view class="section_2" wx:if="{{isLogin}}" >
|
||||||
<view class="image_5">
|
<view class="image_5">
|
||||||
<image src="../../assets/images/logo.jpg" class=""></image>
|
<image src="https://image-fudan.oss-cn-beijing.aliyuncs.com/mini_images/logo.jpg" class=""></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block_4">
|
<view class="block_4">
|
||||||
@ -23,7 +29,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="section_2" wx:if="{{!isLogin}}" bind:tap="onLogin">
|
<view class="section_2" wx:if="{{!isLogin}}" bind:tap="onLogin">
|
||||||
<view class="image_5">
|
<view class="image_5">
|
||||||
<image src="../../assets/images/logo.jpg" class=""></image>
|
<image src="https://image-fudan.oss-cn-beijing.aliyuncs.com/mini_images/logo.jpg" class=""></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block_4">
|
<view class="block_4">
|
||||||
|
|||||||
@ -6,27 +6,33 @@ Page({
|
|||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
username: '',
|
username: '',
|
||||||
list: []
|
list: [],
|
||||||
|
hasMore: true
|
||||||
},
|
},
|
||||||
page: 1,
|
page: 1,
|
||||||
|
page_size: 20,
|
||||||
|
|
||||||
handleClick(e){
|
handleClick(e){
|
||||||
wx.navigateTo({
|
wx.navigateTo({
|
||||||
url: '/pages/home/index',
|
url: '/pages/home/index?userId=' + e.currentTarget.dataset.id,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async getList() {
|
async getList(append = false) {
|
||||||
|
if (!this.data.hasMore && append) return;
|
||||||
const res = await request('doctor/patients', {
|
const res = await request('doctor/patients', {
|
||||||
username: this.data.username,
|
username: this.data.username,
|
||||||
page: this.page,
|
page: this.page,
|
||||||
page_size: 20
|
page_size: this.page_size
|
||||||
})
|
})
|
||||||
|
const newList = append ? this.data.list.concat(res.list) : res.list;
|
||||||
this.setData({
|
this.setData({
|
||||||
list: res.list
|
list: newList,
|
||||||
|
hasMore: res.list.length === this.page_size
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
changeUsername(){
|
changeUsername(){
|
||||||
this.page = 1
|
this.page = 1
|
||||||
|
this.setData({ hasMore: true })
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -48,6 +54,8 @@ Page({
|
|||||||
* 生命周期函数--监听页面显示
|
* 生命周期函数--监听页面显示
|
||||||
*/
|
*/
|
||||||
onShow() {
|
onShow() {
|
||||||
|
this.page = 1;
|
||||||
|
this.setData({ hasMore: true })
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -71,7 +79,12 @@ Page({
|
|||||||
onPullDownRefresh() {
|
onPullDownRefresh() {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
scrolltolower(){
|
||||||
|
console.log('上拉触底');
|
||||||
|
if (!this.data.hasMore) return;
|
||||||
|
this.page++;
|
||||||
|
this.getList(true);
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 页面上拉触底事件的处理函数
|
* 页面上拉触底事件的处理函数
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {},
|
"usingComponents": {
|
||||||
|
"t-navbar": "tdesign-miniprogram/navbar/navbar"
|
||||||
|
},
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
@ -1,7 +1,8 @@
|
|||||||
.page {
|
.page {
|
||||||
background-color: rgba(248,248,248,1.000000);
|
background-color: rgba(248,248,248,1.000000);
|
||||||
position: relative;
|
position: relative;
|
||||||
flex-direction: column;
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
.home-top-bg{
|
.home-top-bg{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
@ -16,11 +17,20 @@
|
|||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
}
|
}
|
||||||
.box_1 {
|
.box_1 {
|
||||||
|
height: calc(100% - 200rpx);
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
display: flex;
|
padding: 24rpx;
|
||||||
flex-direction: column;
|
padding-top: 0;
|
||||||
padding: 12rpx 12rpx 24rpx 24rpx;
|
scroll-view{
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
// padding-top: 24rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scroll-top{
|
||||||
|
margin-top: 24rpx;
|
||||||
}
|
}
|
||||||
.box_2 {
|
.box_2 {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -45,7 +55,6 @@
|
|||||||
.box_3 {
|
.box_3 {
|
||||||
background-color: rgba(255,255,255,1.000000);
|
background-color: rgba(255,255,255,1.000000);
|
||||||
border-radius: 40rpx;
|
border-radius: 40rpx;
|
||||||
margin: 36rpx 12rpx 0 0;
|
|
||||||
padding: 0 24rpx;
|
padding: 0 24rpx;
|
||||||
height: 78rpx;
|
height: 78rpx;
|
||||||
}
|
}
|
||||||
@ -80,20 +89,15 @@
|
|||||||
margin-top: 2rpx;
|
margin-top: 2rpx;
|
||||||
}
|
}
|
||||||
.box_4 {
|
.box_4 {
|
||||||
display: flex;
|
margin-top: 24rpx;
|
||||||
flex-direction: column;
|
|
||||||
margin: 24rpx 12rpx 0 0;
|
|
||||||
}
|
}
|
||||||
.block_1 {
|
.block_1 {
|
||||||
background-color: rgba(255,255,255,1.000000);
|
background-color: rgba(255,255,255,1.000000);
|
||||||
border-radius: 24rpx;
|
border-radius: 24rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 32rpx;
|
padding: 32rpx;
|
||||||
margin-bottom: 24rpx;
|
margin-bottom: 24rpx;
|
||||||
}
|
}
|
||||||
.image-text_2 {
|
.image-text_2 {
|
||||||
margin-right: 92rpx;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
.box_5 {
|
.box_5 {
|
||||||
@ -103,6 +107,7 @@
|
|||||||
height: 84rpx;
|
height: 84rpx;
|
||||||
border-radius: 84rpx;
|
border-radius: 84rpx;
|
||||||
border: 1px solid rgba(248,248,248,1);
|
border: 1px solid rgba(248,248,248,1);
|
||||||
|
flex: none;
|
||||||
image{
|
image{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -110,38 +115,33 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.text-group_2 {
|
.text-group_2 {
|
||||||
|
flex: auto;
|
||||||
margin-bottom: 8rpx;
|
margin-bottom: 8rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
}
|
||||||
.text-wrapper_1 {
|
.text-wrapper_1 {
|
||||||
display: flex;
|
overflow: hidden;
|
||||||
|
height: 50rpx;
|
||||||
}
|
}
|
||||||
.text_2 {
|
.text_2 {
|
||||||
overflow-wrap: break-word;
|
float: left;
|
||||||
color: rgba(17,17,17,1);
|
color: rgba(17,17,17,1);
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
font-family: Alibaba-PuHuiTi-M;
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 32rpx;
|
|
||||||
margin-left: 20rpx;
|
margin-left: 20rpx;
|
||||||
}
|
}
|
||||||
.text_3 {
|
.text_3 {
|
||||||
overflow-wrap: break-word;
|
float: left;
|
||||||
color: rgba(96,98,102,1);
|
color: rgba(96,98,102,1);
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
font-family: Alibaba-PuHuiTi-R;
|
position: relative;
|
||||||
font-weight: normal;
|
margin-left: 20rpx;
|
||||||
white-space: nowrap;
|
top: -24rpx;
|
||||||
line-height: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
}
|
}
|
||||||
.text_4 {
|
.text_4 {
|
||||||
color: rgba(96,98,102,1);
|
color: rgba(96,98,102,1);
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
font-family: Alibaba-PuHuiTi-R;
|
font-family: Alibaba-PuHuiTi-R;
|
||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
margin: 16rpx 74rpx 0 0;
|
margin: 16rpx 0 0 0;
|
||||||
padding-left: 20rpx;
|
padding-left: 20rpx;
|
||||||
}
|
}
|
||||||
.text_5 {
|
.text_5 {
|
||||||
@ -156,18 +156,16 @@
|
|||||||
margin: 8rpx 0 0 100rpx;
|
margin: 8rpx 0 0 100rpx;
|
||||||
}
|
}
|
||||||
.box_6 {
|
.box_6 {
|
||||||
width: 188rpx;
|
margin: 16rpx 0rpx 0 100rpx;
|
||||||
flex-direction: row;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin: 16rpx 160rpx 0 100rpx;
|
|
||||||
}
|
}
|
||||||
.text-wrapper_2 {
|
.text-wrapper_2 {
|
||||||
background-color: rgba(208,15,22,0.100000);
|
background-color: rgba(208,15,22,0.100000);
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 6rpx 6rpx 6rpx 8rpx;
|
padding: 6rpx 6rpx 6rpx 8rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
.text_6 {
|
.text_6 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
@ -183,9 +181,10 @@
|
|||||||
.text-wrapper_3 {
|
.text-wrapper_3 {
|
||||||
background-color: rgba(0,91,162,0.100000);
|
background-color: rgba(0,91,162,0.100000);
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 6rpx 8rpx 6rpx 10rpx;
|
padding: 6rpx 8rpx 6rpx 10rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
}
|
}
|
||||||
.text_7 {
|
.text_7 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
@ -286,9 +285,10 @@
|
|||||||
.text-wrapper_5 {
|
.text-wrapper_5 {
|
||||||
background-color: rgba(255,142,0,0.100000);
|
background-color: rgba(255,142,0,0.100000);
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 6rpx 6rpx 6rpx 8rpx;
|
padding: 6rpx 6rpx 6rpx 8rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 24rpx;
|
||||||
}
|
}
|
||||||
.text_12 {
|
.text_12 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
@ -402,9 +402,10 @@
|
|||||||
.text-wrapper_8 {
|
.text-wrapper_8 {
|
||||||
background-color: rgba(27,163,167,0.100000);
|
background-color: rgba(27,163,167,0.100000);
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 6rpx 6rpx 6rpx 8rpx;
|
padding: 6rpx 6rpx 6rpx 8rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
}
|
}
|
||||||
.text_18 {
|
.text_18 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
<view class="page">
|
<view class="page">
|
||||||
<image src="" class="image_1"></image>
|
<image class="home-top-bg" mode="widthFix" src="https://image-fudan.oss-cn-beijing.aliyuncs.com/mini_images/home/top-bg.png" />
|
||||||
<image class="home-top-bg" mode="widthFix" src="../../assets/images/home/top-bg.png" />
|
<t-navbar t-class-placeholder="t-navbar-placeholder" t-class-content="t-navbar-content" class="block" title="患者管理" />
|
||||||
<view class="box_1">
|
<view class="box_1">
|
||||||
<view class="box_2">
|
<scroll-view scroll-y="true" bindscrolltolower="scrolltolower">
|
||||||
<text lines="1" class="text_1">患者管理</text>
|
<view class="scroll-top">
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="box_3">
|
<view class="box_3">
|
||||||
<view class="image-text_1">
|
<view class="image-text_1">
|
||||||
@ -13,15 +12,17 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="box_4">
|
<view class="box_4">
|
||||||
<view class="block_1" wx:for="{{list}}" bind:tap="handleClick">
|
<view class="block_1" wx:for="{{list}}" data-id="{{item.id}}" bind:tap="handleClick">
|
||||||
<view class="image-text_2">
|
<view class="image-text_2">
|
||||||
<view class="box_5">
|
<view class="box_5">
|
||||||
<image :src="{{item.avatar}}" class="label_1"></image>
|
<image :src="{{item.avatar}}" class="label_1"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-group_2">
|
<view class="text-group_2">
|
||||||
<view class="text-wrapper_1">
|
<view class="text-wrapper_1">
|
||||||
<text lines="1" class="text_2">{{item.username}}</text>
|
<text class="text_2">{{item.username}}</text>
|
||||||
<text lines="1" decode="true" class="text_3">{{item.sex == 1 ? '男':'女'}} · {{item.age}}</text>
|
<text decode="true" class="text_3">
|
||||||
|
{{item.sex == 1 ? '男':'女'}} · {{item.age}}
|
||||||
|
</text>
|
||||||
</view>
|
</view>
|
||||||
<text lines="1" class="text_4">PELD评分:{{item.risk_value}}</text>
|
<text lines="1" class="text_4">PELD评分:{{item.risk_value}}</text>
|
||||||
</view>
|
</view>
|
||||||
@ -40,7 +41,6 @@
|
|||||||
<view class="text-wrapper_3">
|
<view class="text-wrapper_3">
|
||||||
<text lines="1" class="text_7">术后{{item.postoperative_duration}}</text>
|
<text lines="1" class="text_7">术后{{item.postoperative_duration}}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="block_2">
|
<!-- <view class="block_2">
|
||||||
@ -86,6 +86,6 @@
|
|||||||
</view>
|
</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
<image src="https://lanhu-oss-2537-2.lanhuapp.com/SketchPng5307b1af86169f255826abaf863153204cb2945f88383eb8f7ba6d59f57697e1" class="image_3"></image>
|
|
||||||
</view>
|
</view>
|
||||||