Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
飞
飞鹤小程序
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
FH
飞鹤小程序
Commits
59557367
Commit
59557367
authored
Jul 30, 2025
by
王炽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
问题修复
parent
48329f8d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
154 additions
and
40 deletions
+154
-40
request.js
api/request.js
+37
-8
shengzhangTools.js
api/shengzhangTools.js
+1
-1
shengzhangTestResult.vue
pages/shengzhangTestResult/shengzhangTestResult.vue
+72
-16
shengzhangTools.vue
pages/shengzhangTools/shengzhangTools.vue
+14
-6
shengzhangResult.js
stores/shengzhangResult.js
+7
-2
My.vue
views/My.vue
+23
-7
No files found.
api/request.js
View file @
59557367
...
...
@@ -48,7 +48,13 @@ const request = (options = {}) => {
title
:
data
.
errMsg
,
icon
:
'none'
});
reject
(
data
);
// 返回完整的响应数据,包括状态码和错误信息
reject
({
statusCode
:
data
.
statusCode
,
errMsg
:
data
.
errMsg
,
data
:
data
.
data
,
success
:
false
});
globalStore
.
setIsShowLoading
(
false
);
}
else
if
(
!
data
.
data
?.
ok
)
{
...
...
@@ -56,7 +62,12 @@ const request = (options = {}) => {
title
:
data
.
data
?.
message
,
icon
:
'none'
});
reject
(
data
.
data
);
// 返回业务逻辑错误的数据
reject
({
...
data
.
data
,
statusCode
:
data
.
statusCode
,
success
:
false
});
globalStore
.
setIsShowLoading
(
false
);
}
else
{
...
...
@@ -64,25 +75,43 @@ const request = (options = {}) => {
}
})
.
catch
((
error
)
=>
{
reject
(
error
);
// 网络错误或其他异常
reject
({
statusCode
:
-
1
,
errMsg
:
error
.
errMsg
||
'网络请求失败'
,
data
:
null
,
success
:
false
,
error
:
error
});
globalStore
.
setIsShowLoading
(
false
);
});
});
};
const
get
=
(
url
,
data
,
options
=
{})
=>
{
const
get
=
async
(
url
,
data
,
options
=
{})
=>
{
options
.
type
=
"GET"
;
options
.
data
=
data
;
options
.
url
=
url
;
return
request
(
options
);
try
{
return
await
request
(
options
);
}
catch
(
error
)
{
// 返回错误数据,让调用方可以处理
return
error
;
}
};
const
post
=
(
url
,
data
,
options
=
{})
=>
{
const
post
=
async
(
url
,
data
,
options
=
{})
=>
{
options
.
type
=
"POST"
;
options
.
data
=
data
;
options
.
url
=
url
;
return
request
(
options
);
try
{
return
await
request
(
options
);
}
catch
(
error
)
{
// 返回错误数据,让调用方可以处理
return
error
;
}
};
export
default
{
...
...
api/shengzhangTools.js
View file @
59557367
...
...
@@ -17,5 +17,5 @@ export const getGrowthCurveData = (babyData) => api.post('/c/growth/curve/data',
export
const
getGrowthHistoryList
=
()
=>
api
.
post
(
'/c/growth/history/list'
);
export
const
getGrowthAssessmentDetail
=
(
assessmentId
)
=>
api
.
pos
t
(
'/c/growth/assessment/detail'
,
{
assessmentId
});
export
const
getGrowthAssessmentDetail
=
(
assessmentId
)
=>
api
.
ge
t
(
'/c/growth/assessment/detail'
,
{
assessmentId
});
// export const fetchHomeJSON = () => api.get('/c/front/content',{type:'home'});
\ No newline at end of file
pages/shengzhangTestResult/shengzhangTestResult.vue
View file @
59557367
...
...
@@ -40,7 +40,7 @@
<view
class=
"baby-basic-info"
>
<text
class=
"gender"
>
{{
babyInfo
.
gender
==
'M'
?
'男'
:
'女'
}}
</text>
<text
class=
"age"
>
{{
babyInfo
.
monthAge
}}
月龄
</text>
<text
class=
"test-date"
>
测评于
{{
babyInfo
.
assessmentDate
}}
</text>
<text
class=
"test-date"
>
测评于
{{
dateConvert
(
babyInfo
.
assessmentDate
)
}}
</text>
</view>
<view
class=
"measurement-summary"
>
<view
class=
"values-row"
>
...
...
@@ -230,7 +230,7 @@
<view
class=
"baby-basic-info"
>
<text
class=
"gender"
>
{{
item
.
gender
==
'M'
?
'男'
:
'女'
}}
</text>
<text
class=
"age"
>
{{
item
.
age
}}
月龄
</text>
<text
class=
"test-date"
>
测评于
{{
item
.
testDate
}}
</text>
<text
class=
"test-date"
>
测评于
{{
dateConvert
(
item
.
testDate
)
}}
</text>
</view>
<view
class=
"measurement-summary"
>
<view
class=
"values-row"
>
...
...
@@ -294,14 +294,18 @@
<
script
setup
>
import
{
ref
,
onMounted
}
from
'vue'
import
{
onLoad
}
from
"@dcloudio/uni-app"
;
import
{
onLoad
,
onShareAppMessage
}
from
"@dcloudio/uni-app"
;
import
{
useShengzhangStore
}
from
'../../stores/shengzhangResult.js'
;
import
{
formatDate
,
jump
,
JumpType
}
from
'../../utils/index.js'
;
import
{
getGrowthHistoryList
,
getGrowthAssessmentDetail
}
from
'../../api/shengzhangTools'
;
import
ShengzhangQuxianTipsPopup
from
'../../components/shengzhangQuxianTipsPopup.vue'
;
import
{
useUserStore
}
from
"@/stores/user"
;
import
{
getHealthField
}
from
"@/api/common"
;
const
isRecords
=
ref
(
false
);
const
shareText
=
ref
(
''
)
onLoad
((
options
)
=>
{
isRecords
.
value
=
options
.
isRecords
;
activeTab
.
value
=
isRecords
.
value
?
'history'
:
'latest'
;
...
...
@@ -396,6 +400,11 @@ const historyList = ref([
])
const
dateConvert
=
(
date
)
=>
{
const
dateArray
=
date
.
split
(
'-'
);
return
dateArray
[
0
]
+
'年'
+
dateArray
[
1
]
+
'月'
+
dateArray
[
2
]
+
'日'
;
}
// 生长曲线数据
const
curveData
=
ref
([
...
...
@@ -475,6 +484,9 @@ const statusMap = {
const
switchTab
=
(
tab
)
=>
{
activeTab
.
value
=
tab
console
.
log
(
'切换到标签:'
,
tab
)
if
(
tab
===
'latest'
&&
isRecords
.
value
){
switchCurveTab
(
'height'
);
}
}
// 选择历史记录项
...
...
@@ -587,12 +599,36 @@ const closeTipsPopup = () => {
/**
* 处理专家咨询按钮点击事件
*/
const
consultExpert
=
()
=>
{
const
consultExpert
=
async
()
=>
{
console
.
log
(
'专家在线咨询'
)
uni
.
showToast
({
title
:
'正在连接专家...'
,
icon
:
'loading'
})
const
res
=
await
getHealthField
();
if
(
!
res
.
success
)
{
uni
.
showToast
({
title
:
"获取健康字段失败"
,
icon
:
"none"
,
});
return
;
}
const
{
sign
,
timestamp
,
appId
,
partnerUserId
,
env
}
=
res
.
data
;
jump
({
type
:
JumpType
.
MINI
,
url
:
"/pages/partner/redirect"
,
extra
:
{
appId
:
"wx81ecfb5aa3fb512f"
,
envVersion
:
env
,
extraData
:
{
sign
,
// 参考 4.请求参数
timestamp
,
// 参考 4.请求参数
appId
,
// 参考 4.请求参数
partnerUserId
,
// 参考 4.请求参数
targetApp
:
"/h5/partner/shining-like-a-start/landing-free-consult?sysType=CRF"
,
},
},
});
}
// 首页组件逻辑
...
...
@@ -621,11 +657,15 @@ const backFailHandler = () => {
console
.
log
(
'backFailHandler'
);
}
onShareAppMessage
(()
=>
{
return
{
title
:
shareText
.
value
,
path
:
`/pages/shengzhangTestResult/shengzhangTestResult`
,
imageUrl
:
undefined
}
})
onMounted
(
async
()
=>
{
// 初始化绘制曲线
setTimeout
(()
=>
{
drawGrowthCurve
()
},
100
)
//获取历史记录
const
historyListData
=
await
getGrowthHistoryList
();
...
...
@@ -670,9 +710,11 @@ onMounted(async () => {
}
}
const
userStore
=
useUserStore
();
const
babyId
=
userStore
.
babyInfo
?.
content
?.
id
;
const
babyDataHeight
=
{
babyId
:
shengzhangInfo
.
babyInfo
.
babyId
,
babyId
:
babyId
,
curveType
:
'HEIGHT'
,
startMonth
:
0
,
endMonth
:
36
,
...
...
@@ -681,7 +723,7 @@ onMounted(async () => {
await
shengzhangStore
.
getGrowthCurveData
(
babyDataHeight
);
const
babyDataWeight
=
{
babyId
:
shengzhangInfo
.
babyInfo
.
babyId
,
babyId
:
babyId
,
curveType
:
'WEIGHT'
,
startMonth
:
0
,
endMonth
:
36
,
...
...
@@ -689,18 +731,26 @@ onMounted(async () => {
await
shengzhangStore
.
getGrowthCurveData
(
babyDataWeight
);
const
babyDataHead
=
{
babyId
:
shengzhangInfo
.
babyInfo
.
babyId
,
babyId
:
babyId
,
curveType
:
'HEAD'
,
startMonth
:
0
,
endMonth
:
36
,
};
await
shengzhangStore
.
getGrowthCurveData
(
babyDataHead
);
// 初始化绘制曲线
// setTimeout(() => {
// drawGrowthCurve()
// }, 100)
}
else
{
shengzhangInfo
=
{...
shengzhangStore
.
shengzhangInfo
};
}
shareText
.
value
=
shengzhangInfo
?.
content
?.
shareText
;
console
.
log
(
'shareText.value='
,
shareText
.
value
);
//分析结果处理
const
data
=
{...
shengzhangInfo
.
babyInfo
};
...
...
@@ -753,10 +803,15 @@ onMounted(async () => {
slightlyHigh
:
generateCurveData1
(
curveDataPostHead
.
value
,
'head'
,
'slightHighRange'
,
'max'
),
}
};
// 初始化绘制曲线
setTimeout
(()
=>
{
drawGrowthCurve
()
},
100
)
})
// 绘制生长曲线
...
...
@@ -1054,6 +1109,7 @@ const drawBabyCurve = (ctx, data, margin, chartWidth, chartHeight, type) => {
const
onScroll
=
(
e
)
=>
{
scrollLeft
.
value
=
e
.
detail
.
scrollLeft
}
</
script
>
<
style
lang=
"less"
scoped
>
...
...
pages/shengzhangTools/shengzhangTools.vue
View file @
59557367
...
...
@@ -300,12 +300,14 @@ const generateRange = (min, max, step = 0.1) => {
range
.
push
(
parseFloat
(
i
.
toFixed
(
1
)))
}
}
console
.
log
(
'range='
,
range
)
return
range
}
// 日期选择器相关状态
const
showDatePickerPopup
=
ref
(
false
)
const
selectedDate
=
ref
(
'2025-06-06'
)
const
selectedDate
=
ref
()
const
showDatePicker
=
()
=>
{
console
.
log
(
'显示日期选择器'
)
...
...
@@ -326,15 +328,15 @@ const showFeedingPopup = () => {
}
// 身高范围 (40-80cm)
const
heightRange
=
generateRange
(
40
,
8
0
,
0.1
)
const
heightRange
=
generateRange
(
40
,
17
0
,
0.1
)
const
heightPickerValue
=
ref
([
heightRange
.
indexOf
(
parseFloat
(
height
.
value
))])
// 体重范围 (2-10kg)
const
weightRange
=
generateRange
(
2
,
1
0
,
0.01
)
const
weightRange
=
generateRange
(
0
,
5
0
,
0.01
)
const
weightPickerValue
=
ref
([
weightRange
.
indexOf
(
parseFloat
(
weight
.
value
))])
// 头围范围 (30-50cm)
const
headRange
=
generateRange
(
30
,
50
,
0.1
)
const
headRange
=
generateRange
(
20
,
60.1
,
0.1
)
const
headPickerValue
=
ref
([
headRange
.
indexOf
(
parseFloat
(
headCircumference
.
value
))])
// picker-view change事件处理
...
...
@@ -397,8 +399,13 @@ const submitData = throttleTap(async () => {
const
data11
=
await
shengzhangStore
.
assessmentSave
(
submitData
);
console
.
log
(
'data11='
,
data11
);
await
shengzhangStore
.
assessmentSave
(
submitData
);
if
(
shengzhangStore
.
shengzhangInfo
.
success
){
babyId
.
value
=
shengzhangStore
.
shengzhangInfo
.
babyId
;
}
else
{
showLoading
.
value
=
false
;
return
;
}
const
babyDataHeight
=
{
babyId
:
babyId
.
value
,
...
...
@@ -582,6 +589,7 @@ onMounted(async () => {
console
.
log
(
'babyId.value='
,
babyId
.
value
);
const
{
data
}
=
await
growthHome
(
babyId
.
value
);
selectedDate
.
value
=
formatDate
(
new
Date
());
// const data = {"babyId":1234,"babyName":"小强","gender":"M","monthAge":3,"avatar":"https://momclub.feihe.com/pmall/momclub-picture/integral/1009/yuerBtn.png","birthDate":"2018-10-28 14:06:45","guideFlag":false};
babyName
.
value
=
data
.
babyName
...
...
stores/shengzhangResult.js
View file @
59557367
...
...
@@ -24,11 +24,16 @@ export const useShengzhangStore = defineStore("shengzhangInfo", {
},
async
assessmentSave
(
submitData
)
{
const
data
=
await
assessmentSave
(
submitData
)
if
(
data
.
data
){
data
.
data
.
success
=
data
.
success
;
}
const
data
=
await
assessmentSave
(
submitData
);
data
.
data
.
success
=
data
.
success
;
if
(
data
.
success
){
this
.
setShengzhangInfo
(
data
.
data
);
}
else
{
this
.
setShengzhangInfo
(
data
);
}
},
...
...
views/My.vue
View file @
59557367
...
...
@@ -309,7 +309,7 @@ const handleToolClick = async (item) => {
const
hasPregnancy
=
listData
.
some
(
item
=>
item
.
typeName
===
"孕中"
&&
item
.
selected
===
true
)
console
.
log
(
hasPregnancy
,
'hasPregnancy'
)
if
(
hasPregnancy
){
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
}
else
{
uni
.
showToast
({
title
:
"需要是孕中状态哦"
,
...
...
@@ -317,13 +317,29 @@ const handleToolClick = async (item) => {
});
}
}
}
else
{
const
extra
=
item
.
link
.
extra
;
if
(
extra
&&
extra
.
babyId
){
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
+
'?babyId='
+
extra
.
babyId
});
}
else
{
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
}
else
if
(
item
.
title
===
'生长测评'
){
if
(
listData
.
length
>
0
){
const
hasPregnancy
=
listData
.
some
(
item
=>
item
.
typeName
!==
"孕中"
&&
item
.
typeName
!==
"备孕"
&&
item
.
selected
===
true
)
if
(
hasPregnancy
){
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
}
else
{
uni
.
showToast
({
title
:
"需要已生育的宝宝状态哦"
,
icon
:
"none"
,
});
}
}
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
}
else
{
jump
({
type
:
item
.
link
.
type
,
url
:
item
.
link
.
url
});
// const extra = item.link.extra;
// if(extra && extra.babyId){
// jump({ type: item.link.type, url: item.link.url+'?babyId='+extra.babyId});
// }else{
// jump({ type: item.link.type, url: item.link.url});
// }
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment