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
67e3f569
Commit
67e3f569
authored
Aug 27, 2025
by
张九刚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: copyback
parent
d177b5a6
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
346 additions
and
124 deletions
+346
-124
BabyFeedSwitchPopup.vue
components/BabyFeedSwitchPopup.vue
+48
-48
BabySwitchPopup.vue
components/BabySwitchPopup.vue
+24
-0
BabyTestTipsPopup.vue
components/BabyTestTipsPopup.vue
+18
-1
DatePickerPopup.vue
components/DatePickerPopup.vue
+11
-1
shengzhangQuxianTipsPopup.vue
components/shengzhangQuxianTipsPopup.vue
+18
-1
md.js
md.js
+45
-0
feedingIndex.vue
pages/feedingIndex/feedingIndex.vue
+58
-3
feedingRecord.vue
pages/feedingRecord/feedingRecord.vue
+18
-0
postnatalCheckUp.vue
pages/postnatalCheckUp/postnatalCheckUp.vue
+77
-61
productionDetails.vue
pages/productionDetails/productionDetails.vue
+4
-0
shengzhangTools.vue
pages/shengzhangTools/shengzhangTools.vue
+5
-0
Home.vue
views/Home.vue
+20
-9
No files found.
components/BabyFeedSwitchPopup.vue
View file @
67e3f569
...
@@ -3,20 +3,11 @@
...
@@ -3,20 +3,11 @@
<view
class=
"popup-content"
@
click
.
stop
>
<view
class=
"popup-content"
@
click
.
stop
>
<!-- 喂养方式列表 -->
<!-- 喂养方式列表 -->
<view
class=
"feed-list"
>
<view
class=
"feed-list"
>
<view
<view
v-for=
"(item, index) in feedOptions"
:key=
"index"
class=
"feed-item"
v-for=
"(item, index) in feedOptions"
:class=
"
{ selected: selectedIndex === index }" @click="selectFeed(index)">
:key=
"index"
class=
"feed-item"
:class=
"
{ selected: selectedIndex === index }"
@click="selectFeed(index)"
>
<!-- 选中背景 -->
<!-- 选中背景 -->
<image
<image
v-if=
"selectedIndex === index"
class=
"feed-item-bg"
v-if=
"selectedIndex === index"
:src=
"`$
{$baseUrl}shengzhangTool/1001/changeFeed/itemBg.png`" mode="aspectFit" />
class=
"feed-item-bg"
:src=
"`$
{$baseUrl}shengzhangTool/1001/changeFeed/itemBg.png`"
mode="aspectFit"
/>
<!-- 喂养方式文本 -->
<!-- 喂养方式文本 -->
<text
class=
"feed-text"
>
{{
item
.
name
}}
</text>
<text
class=
"feed-text"
>
{{
item
.
name
}}
</text>
...
@@ -25,30 +16,21 @@
...
@@ -25,30 +16,21 @@
<!-- 底部按钮 -->
<!-- 底部按钮 -->
<view
class=
"bottom-buttons"
>
<view
class=
"bottom-buttons"
>
<image
<image
class=
"cancel-btn"
:class=
"
{ 'cancel-btn-active': isCancelPressed }"
class=
"cancel-btn"
:class=
"
{'cancel-btn-active': isCancelPressed}"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/cancelBtn.png`"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/cancelBtn.png`"
@touchstart="handleCancelTouchStart"
@touchstart="handleCancelTouchStart" @touchend="handleCancelTouchEnd" mode="aspectFit" />
@touchend="handleCancelTouchEnd"
mode="aspectFit"
<image
class=
"ok-btn"
:class=
"
{ 'ok-btn-active': isOkPressed }"
/>
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/okBtn.png`" @touchstart="handleOkTouchStart"
@touchend="handleOkTouchEnd" mode="aspectFit" />
<image
class=
"ok-btn"
:class=
"
{'ok-btn-active': isOkPressed}"
:src="`${$baseUrl}shengzhangTool/1001/changeFeed/okBtn.png`"
@touchstart="handleOkTouchStart"
@touchend="handleOkTouchEnd"
mode="aspectFit"
/>
</view>
</view>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
,
defineEmits
,
defineProps
,
onMounted
}
from
'vue'
import
{
ref
,
defineEmits
,
defineProps
,
watch
,
onMounted
}
from
'vue'
import
md
from
'../md.js'
const
props
=
defineProps
({
const
props
=
defineProps
({
visible
:
{
visible
:
{
...
@@ -109,12 +91,18 @@ const handleOkTouchStart = () => {
...
@@ -109,12 +91,18 @@ const handleOkTouchStart = () => {
const
handleOkTouchEnd
=
()
=>
{
const
handleOkTouchEnd
=
()
=>
{
isOkPressed
.
value
=
false
isOkPressed
.
value
=
false
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"喂养方式选择弹窗"
,
buttonName
:
"确认"
});
const
index
=
selectIndex
.
value
const
index
=
selectIndex
.
value
const
selectedFeed
=
feedOptions
.
value
[
index
]
const
selectedFeed
=
feedOptions
.
value
[
index
]
// 发送事件通知主页面
// 发送事件通知主页面
emit
(
'change'
,
selectedFeed
,
index
)
//只能传一个参数
emit
(
'change'
,
selectedFeed
,
index
)
//只能传一个参数
closePopup
()
closePopup
()
}
}
...
@@ -139,10 +127,23 @@ const onFeedChange = (feedOption, index) => {
...
@@ -139,10 +127,23 @@ const onFeedChange = (feedOption, index) => {
}
}
const
closePopup
=
()
=>
{
const
closePopup
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"喂养方式选择弹窗"
,
buttonName
:
"取消"
});
emit
(
'update:visible'
,
false
)
emit
(
'update:visible'
,
false
)
}
}
onMounted
(()
=>
{
watch
(()
=>
props
.
visible
,
(
newVal
)
=>
{
if
(
newVal
)
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"喂养方式选择弹窗"
});
}
})
})
</
script
>
</
script
>
...
@@ -270,4 +271,3 @@ onMounted(() => {
...
@@ -270,4 +271,3 @@ onMounted(() => {
}
}
}
}
</
style
>
</
style
>
components/BabySwitchPopup.vue
View file @
67e3f569
...
@@ -67,6 +67,7 @@
...
@@ -67,6 +67,7 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
defineEmits
,
defineProps
,
onMounted
}
from
'vue'
import
{
ref
,
defineEmits
,
defineProps
,
onMounted
}
from
'vue'
import
{
useUserStore
}
from
"@/stores/user"
;
import
{
useUserStore
}
from
"@/stores/user"
;
import
md
from
'../md.js'
// const props = defineProps({
// const props = defineProps({
// visible: {
// visible: {
...
@@ -104,6 +105,12 @@ const handleOkTouchStart = () => {
...
@@ -104,6 +105,12 @@ const handleOkTouchStart = () => {
}
}
const
handleOkTouchEnd
=
async
()
=>
{
const
handleOkTouchEnd
=
async
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"切换宝宝弹窗"
,
buttonName
:
"确认"
});
isOkPressed
.
value
=
false
isOkPressed
.
value
=
false
const
index
=
selectIndex
.
value
;
const
index
=
selectIndex
.
value
;
...
@@ -116,11 +123,23 @@ const handleOkTouchEnd = async () => {
...
@@ -116,11 +123,23 @@ const handleOkTouchEnd = async () => {
}
}
const
closePopup
=
()
=>
{
const
closePopup
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"切换宝宝弹窗"
,
buttonName
:
"关闭"
});
emit
(
'update:visible'
,
false
)
emit
(
'update:visible'
,
false
)
}
}
const
selectIndex
=
ref
(
0
)
const
selectIndex
=
ref
(
0
)
const
selectBaby
=
(
index
)
=>
{
const
selectBaby
=
(
index
)
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"切换宝宝弹窗"
,
buttonName
:
"宝宝列表"
});
selectIndex
.
value
=
index
;
selectIndex
.
value
=
index
;
emit
(
'update:selectedIndex'
,
index
);
emit
(
'update:selectedIndex'
,
index
);
}
}
...
@@ -135,6 +154,11 @@ onMounted(() => {
...
@@ -135,6 +154,11 @@ onMounted(() => {
const
selectedIndexInList
=
babyList
.
value
.
findIndex
(
item
=>
item
.
selected
===
true
)
const
selectedIndexInList
=
babyList
.
value
.
findIndex
(
item
=>
item
.
selected
===
true
)
console
.
log
(
'选中宝宝的索引:'
,
selectedIndexInList
)
console
.
log
(
'选中宝宝的索引:'
,
selectedIndexInList
)
selectIndex
.
value
=
selectedIndexInList
;
selectIndex
.
value
=
selectedIndexInList
;
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"切换宝宝弹窗"
});
})
})
...
...
components/BabyTestTipsPopup.vue
View file @
67e3f569
...
@@ -27,7 +27,8 @@
...
@@ -27,7 +27,8 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
,
defineEmits
,
defineProps
}
from
'vue'
import
{
ref
,
defineEmits
,
defineProps
,
watch
}
from
'vue'
import
md
from
'../md.js'
const
props
=
defineProps
({
const
props
=
defineProps
({
visible
:
{
visible
:
{
...
@@ -67,11 +68,27 @@ const handleOkTouchStart = () => {
...
@@ -67,11 +68,27 @@ const handleOkTouchStart = () => {
const
handleOkTouchEnd
=
()
=>
{
const
handleOkTouchEnd
=
()
=>
{
isOkPressed
.
value
=
false
isOkPressed
.
value
=
false
closePopup
()
closePopup
()
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"测量方式提示弹窗"
,
buttonName
:
"我知道了"
});
}
}
const
closePopup
=
()
=>
{
const
closePopup
=
()
=>
{
emit
(
'update:visible'
,
false
)
emit
(
'update:visible'
,
false
)
}
}
watch
(()
=>
props
.
visible
,
(
newVal
)
=>
{
if
(
newVal
)
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"测量方式提示弹窗"
});
}
})
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
...
...
components/DatePickerPopup.vue
View file @
67e3f569
...
@@ -65,7 +65,8 @@
...
@@ -65,7 +65,8 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
,
defineEmits
,
defineProps
,
watch
,
computed
}
from
'vue'
import
{
ref
,
defineEmits
,
defineProps
,
watch
,
computed
,
onMounted
}
from
'vue'
import
md
from
'../md.js'
const
props
=
defineProps
({
const
props
=
defineProps
({
visible
:
{
visible
:
{
...
@@ -107,6 +108,9 @@ const yearRange = computed(() => {
...
@@ -107,6 +108,9 @@ const yearRange = computed(() => {
return
yearRange
return
yearRange
})
})
onMounted
(()
=>
{
})
// 生成月份范围 (1-12)
// 生成月份范围 (1-12)
const
monthRange
=
computed
(()
=>
{
const
monthRange
=
computed
(()
=>
{
...
@@ -252,6 +256,12 @@ const handleOkTouchEnd = () => {
...
@@ -252,6 +256,12 @@ const handleOkTouchEnd = () => {
}
}
const
closePopup
=
()
=>
{
const
closePopup
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"选择本次测评日期弹窗"
,
buttonName
:
"关闭"
});
// 格式化日期为 YYYY-MM-DD
// 格式化日期为 YYYY-MM-DD
const
year
=
currentDate
.
value
.
getFullYear
()
const
year
=
currentDate
.
value
.
getFullYear
()
const
month
=
String
(
currentDate
.
value
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)
const
month
=
String
(
currentDate
.
value
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)
...
...
components/shengzhangQuxianTipsPopup.vue
View file @
67e3f569
...
@@ -25,7 +25,8 @@
...
@@ -25,7 +25,8 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
defineProps
,
defineEmits
}
from
'vue'
import
{
defineProps
,
defineEmits
,
watch
}
from
'vue'
import
md
from
'../md.js'
// 定义props
// 定义props
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -40,8 +41,24 @@ const emit = defineEmits(['close'])
...
@@ -40,8 +41,24 @@ const emit = defineEmits(['close'])
// 关闭弹窗
// 关闭弹窗
const
closePopup
=
()
=>
{
const
closePopup
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"生长曲线介绍弹窗"
,
buttonName
:
"我知道了"
});
emit
(
'close'
)
emit
(
'close'
)
}
}
watch
(()
=>
props
.
visible
,
(
newVal
)
=>
{
if
(
newVal
)
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"生长曲线介绍弹窗"
});
}
})
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
...
...
md.js
View file @
67e3f569
...
@@ -135,6 +135,49 @@ const sensorComponentLogTake = (logObj) => {
...
@@ -135,6 +135,49 @@ const sensorComponentLogTake = (logObj) => {
sensorComponentLog
(
evt
);
sensorComponentLog
(
evt
);
};
};
const
sensorPopLog
=
(
evt
)
=>
{
const
_dataset
=
evt
.
currentTarget
.
dataset
;
const
logObj
=
_dataset
.
poplog
;
if
(
!
logObj
)
{
return
;
}
const
{
xcxPopExposure
,
xcxPopClick
}
=
logObj
;
let
trackObj
=
{};
for
(
let
key
in
logObj
)
{
trackObj
[
key
]
=
logObj
[
key
];
}
if
(
xcxPopExposure
&&
xcxPopExposure
.
length
>
0
)
{
console
.
warn
(
"-----xcxPopExposure-----"
,
trackObj
);
sensors
.
track
(
"xcxPopExposure"
,
{
...
trackObj
,
});
}
if
(
xcxPopClick
&&
xcxPopClick
.
length
>
0
)
{
console
.
warn
(
"-----xcxPopClick-----"
,
trackObj
);
sensors
.
track
(
"xcxPopClick"
,
{
...
trackObj
,
});
}
};
/**
* 主动通过配置数据触发埋点
* @param {*} evt
*/
const
sensorPopLogTake
=
(
logObj
)
=>
{
if
(
!
logObj
)
{
return
;
}
const
evt
=
{
currentTarget
:
{
dataset
:
{
poplog
:
logObj
,
},
},
};
sensorPopLog
(
evt
);
};
export
default
{
export
default
{
init
,
init
,
sensors
,
sensors
,
...
@@ -143,4 +186,6 @@ export default {
...
@@ -143,4 +186,6 @@ export default {
sensorLogTake
,
sensorLogTake
,
sensorComponentLog
,
sensorComponentLog
,
sensorComponentLogTake
,
sensorComponentLogTake
,
sensorPopLog
,
sensorPopLogTake
,
};
};
pages/feedingIndex/feedingIndex.vue
View file @
67e3f569
...
@@ -1885,6 +1885,12 @@ async function completeRecord() {
...
@@ -1885,6 +1885,12 @@ async function completeRecord() {
// 显示成功弹窗
// 显示成功弹窗
successPopup
.
value
.
open
()
successPopup
.
value
.
open
()
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"添加成功弹窗"
});
...
@@ -2406,6 +2412,7 @@ function showAddFoodPopup(categoryName) {
...
@@ -2406,6 +2412,7 @@ function showAddFoodPopup(categoryName) {
pageName
:
"喂养工具首页"
,
pageName
:
"喂养工具首页"
,
buttonName
:
"辅食添加"
+
categoryName
,
buttonName
:
"辅食添加"
+
categoryName
,
});
});
// 防连点检查
// 防连点检查
if
(
foodSelectionState
.
value
.
isAddingFood
)
{
if
(
foodSelectionState
.
value
.
isAddingFood
)
{
console
.
log
(
'防连点:添加辅食按钮被阻止'
)
console
.
log
(
'防连点:添加辅食按钮被阻止'
)
...
@@ -2439,7 +2446,11 @@ function showAddFoodPopup(categoryName) {
...
@@ -2439,7 +2446,11 @@ function showAddFoodPopup(categoryName) {
foodSelectionState
.
value
.
newFoodItem
=
''
foodSelectionState
.
value
.
newFoodItem
=
''
// 显示弹窗
// 显示弹窗
addFoodPopup
.
value
.
open
()
addFoodPopup
.
value
.
open
()
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"新增辅食弹窗"
,
});
// 立即重置防连点状态(弹窗显示后)
// 立即重置防连点状态(弹窗显示后)
setTimeout
(()
=>
{
setTimeout
(()
=>
{
foodSelectionState
.
value
.
isAddingFood
=
false
foodSelectionState
.
value
.
isAddingFood
=
false
...
@@ -2458,6 +2469,12 @@ function toggleCategoryExpansion(categoryName) {
...
@@ -2458,6 +2469,12 @@ function toggleCategoryExpansion(categoryName) {
function
cancelAddFood
()
{
function
cancelAddFood
()
{
addFoodPopup
.
value
.
close
()
addFoodPopup
.
value
.
close
()
foodSelectionState
.
value
.
newFoodItem
=
''
foodSelectionState
.
value
.
newFoodItem
=
''
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"新增辅食弹窗"
,
buttonName
:
"取消"
});
}
}
function
confirmAddFood
()
{
function
confirmAddFood
()
{
...
@@ -2465,6 +2482,12 @@ function confirmAddFood() {
...
@@ -2465,6 +2482,12 @@ function confirmAddFood() {
console
.
log
(
'防连点:添加辅食按钮被阻止'
)
console
.
log
(
'防连点:添加辅食按钮被阻止'
)
return
return
}
}
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"新增辅食弹窗"
,
buttonName
:
"添加"
});
foodSelectionState
.
value
.
isAddingFood
=
true
foodSelectionState
.
value
.
isAddingFood
=
true
console
.
log
(
'防连点:设置添加辅食状态为true'
)
console
.
log
(
'防连点:设置添加辅食状态为true'
)
...
@@ -3246,7 +3269,11 @@ async function startPollingRecognitionResult(taskId) {
...
@@ -3246,7 +3269,11 @@ async function startPollingRecognitionResult(taskId) {
voiceRecognitionState
.
value
.
voiceDateTime
=
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:00`
voiceRecognitionState
.
value
.
voiceDateTime
=
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:00`
}
}
voiceRecognitionState
.
value
.
showResultPage
=
true
voiceRecognitionState
.
value
.
showResultPage
=
true
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"语音识别结果弹窗"
});
// 显示识别成功提示
// 显示识别成功提示
uni
.
showToast
({
uni
.
showToast
({
title
:
'语音识别成功'
,
title
:
'语音识别成功'
,
...
@@ -3402,7 +3429,12 @@ function formatRecordingDuration(seconds) {
...
@@ -3402,7 +3429,12 @@ function formatRecordingDuration(seconds) {
function
reRecognize
()
{
function
reRecognize
()
{
console
.
log
(
'重新识别...'
)
console
.
log
(
'重新识别...'
)
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"语音识别结果弹窗"
,
buttonName
:
"不对,重新识别"
});
// 清理轮询状态
// 清理轮询状态
clearPollingInterval
()
clearPollingInterval
()
...
@@ -3429,6 +3461,12 @@ async function completeVoiceRecord() {
...
@@ -3429,6 +3461,12 @@ async function completeVoiceRecord() {
if
(
isSubmitting
.
value
)
{
if
(
isSubmitting
.
value
)
{
return
return
}
}
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"语音识别结果弹窗"
,
buttonName
:
"完成记录"
});
const
detailText
=
voiceRecognitionState
.
value
.
recognizedText
.
trim
()
const
detailText
=
voiceRecognitionState
.
value
.
recognizedText
.
trim
()
...
@@ -3486,6 +3524,11 @@ async function completeVoiceRecord() {
...
@@ -3486,6 +3524,11 @@ async function completeVoiceRecord() {
// 显示成功弹窗
// 显示成功弹窗
successPopup
.
value
.
open
()
successPopup
.
value
.
open
()
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"添加成功弹窗"
});
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'保存语音记录失败:'
,
error
)
console
.
error
(
'保存语音记录失败:'
,
error
)
// uni.hideLoading()
// uni.hideLoading()
...
@@ -3543,11 +3586,23 @@ async function onSuccessJump() {
...
@@ -3543,11 +3586,23 @@ async function onSuccessJump() {
},
},
});
// 关闭弹窗
});
// 关闭弹窗
successPopup
.
value
.
close
()
successPopup
.
value
.
close
()
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"添加成功弹窗"
,
buttonName
:
"关闭"
});
}
}
function
onSuccessClose
()
{
function
onSuccessClose
()
{
// 关闭弹窗
// 关闭弹窗
successPopup
.
value
.
close
()
successPopup
.
value
.
close
()
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"添加成功弹窗"
,
buttonName
:
"咨询专家"
});
// 跳转至记录页面
// 跳转至记录页面
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/pages/feedingRecord/feedingRecord'
url
:
'/pages/feedingRecord/feedingRecord'
...
...
pages/feedingRecord/feedingRecord.vue
View file @
67e3f569
...
@@ -723,9 +723,21 @@ function editRecord(index) {
...
@@ -723,9 +723,21 @@ function editRecord(index) {
editingRecord
.
value
=
{
index
,
record
}
editingRecord
.
value
=
{
index
,
record
}
showEditPopup
.
value
=
true
showEditPopup
.
value
=
true
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"日历页确认修改内容弹窗"
});
}
}
function
closeEditPopup
()
{
function
closeEditPopup
()
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"日历页确认修改内容弹窗"
,
buttonName
:
"取消"
});
showEditPopup
.
value
=
false
showEditPopup
.
value
=
false
editingRecord
.
value
=
null
editingRecord
.
value
=
null
editForm
.
value
=
{
time
:
''
,
type
:
''
,
content
:
''
}
editForm
.
value
=
{
time
:
''
,
type
:
''
,
content
:
''
}
...
@@ -800,6 +812,12 @@ function onEditTypeChange(event) {
...
@@ -800,6 +812,12 @@ function onEditTypeChange(event) {
}
}
async
function
saveEditRecord
()
{
async
function
saveEditRecord
()
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"喂养记录"
,
popName
:
"日历页确认修改内容弹窗"
,
buttonName
:
"保存修改"
});
if
(
!
editForm
.
value
.
time
||
!
editForm
.
value
.
type
)
{
if
(
!
editForm
.
value
.
time
||
!
editForm
.
value
.
type
)
{
uni
.
showToast
({
title
:
'请填写完整信息'
,
icon
:
'none'
})
uni
.
showToast
({
title
:
'请填写完整信息'
,
icon
:
'none'
})
return
return
...
...
pages/postnatalCheckUp/postnatalCheckUp.vue
View file @
67e3f569
...
@@ -11,10 +11,10 @@
...
@@ -11,10 +11,10 @@
<view
class=
"page_title"
>
产检提醒
</view>
<view
class=
"page_title"
>
产检提醒
</view>
</view>
</view>
</
template
>
</
template
>
</customize-navigation>
-->
</customize-navigation>
-->
<view
class=
"postnatal-con"
>
<view
class=
"postnatal-con"
>
<!-- 轮播图 -->
<!-- 轮播图 -->
<swiper
class=
"banner-swiper"
:autoplay=
"true"
:circular=
"true"
v-if=
"bannerList.length > 0
"
>
<swiper
class=
"banner-swiper"
:autoplay=
"true"
:circular=
"true"
v-if=
"bannerList.length > 0"
>
<swiper-item
v-for=
"(item, index) in bannerList"
:key=
"index"
>
<swiper-item
v-for=
"(item, index) in bannerList"
:key=
"index"
>
<image
class=
"banner-img"
:src=
"`${item.img}`"
mode=
"aspectFill"
<image
class=
"banner-img"
:src=
"`${item.img}`"
mode=
"aspectFill"
@
click=
"handleBannerClick(item, index)"
/>
@
click=
"handleBannerClick(item, index)"
/>
...
@@ -258,7 +258,7 @@ const backHandler = () => {
...
@@ -258,7 +258,7 @@ const backHandler = () => {
const
handleBannerClick
=
(
item
,
index
)
=>
{
const
handleBannerClick
=
(
item
,
index
)
=>
{
console
.
log
(
item
)
console
.
log
(
item
)
let
buttonName
=
''
;
let
buttonName
=
''
;
switch
(
index
)
{
switch
(
index
)
{
case
0
:
case
0
:
buttonName
=
'第一张焦点图'
;
buttonName
=
'第一张焦点图'
;
break
;
break
;
...
@@ -307,6 +307,13 @@ const onBtn = (type) => {
...
@@ -307,6 +307,13 @@ const onBtn = (type) => {
case
0
:
case
0
:
// 如果授权就不弹出提醒
// 如果授权就不弹出提醒
showPicker
.
value
=
isWxNotification
.
value
?
true
:
false
showPicker
.
value
=
isWxNotification
.
value
?
true
:
false
if
(
showPicker
.
value
)
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"产检提醒"
,
popName
:
"设置提醒时间弹窗"
});
}
buttonName
=
'提醒'
buttonName
=
'提醒'
break
;
break
;
...
@@ -336,6 +343,12 @@ const onBtn = (type) => {
...
@@ -336,6 +343,12 @@ const onBtn = (type) => {
// 提醒关闭
// 提醒关闭
const
close
=
()
=>
{
const
close
=
()
=>
{
showPicker
.
value
=
false
;
showPicker
.
value
=
false
;
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"产检提醒"
,
popName
:
"设置提醒时间弹窗"
,
buttonName
:
"取消"
});
}
}
// 选择提醒事件
// 选择提醒事件
const
handleChange
=
(
e
)
=>
{
const
handleChange
=
(
e
)
=>
{
...
@@ -495,7 +508,7 @@ const getSettingFn = () => {
...
@@ -495,7 +508,7 @@ const getSettingFn = () => {
success
(
res
)
{
success
(
res
)
{
// console.log(res.authSetting, '授权信息')
// console.log(res.authSetting, '授权信息')
console
.
log
(
res
.
subscriptionsSetting
,
'订阅信息'
)
console
.
log
(
res
.
subscriptionsSetting
,
'订阅信息'
)
if
(
res
.
subscriptionsSetting
.
itemSettings
)
{
if
(
res
.
subscriptionsSetting
.
itemSettings
)
{
isWxNotification
.
value
=
false
isWxNotification
.
value
=
false
console
.
log
(
"🚀 ~ success ~ isWxNotification111:"
,
isWxNotification
.
value
)
console
.
log
(
"🚀 ~ success ~ isWxNotification111:"
,
isWxNotification
.
value
)
}
else
{
}
else
{
...
@@ -506,14 +519,14 @@ const getSettingFn = () => {
...
@@ -506,14 +519,14 @@ const getSettingFn = () => {
})
})
}
}
// 提示弹窗回调
// 提示弹窗回调
const
onBabyChange
=
()
=>
{
const
onBabyChange
=
()
=>
{
publicFn
()
publicFn
()
}
}
// 公共函数
// 公共函数
const
publicFn
=
()
=>
{
const
publicFn
=
()
=>
{
console
.
log
(
"🚀 ~ onShow ~ userStore:"
,
userStore
.
babyInfo
)
console
.
log
(
"🚀 ~ onShow ~ userStore:"
,
userStore
.
babyInfo
)
const
babyInfo
=
userStore
.
babyInfo
const
babyInfo
=
userStore
.
babyInfo
if
(
babyInfo
&&
babyInfo
.
babyStage
==
1
)
{
if
(
babyInfo
&&
babyInfo
.
babyStage
==
1
)
{
isTip
.
value
=
false
isTip
.
value
=
false
babyId
.
value
=
userStore
.
babyInfo
?.
content
?.
id
babyId
.
value
=
userStore
.
babyInfo
?.
content
?.
id
getSettingFn
()
getSettingFn
()
...
@@ -521,7 +534,7 @@ const publicFn = () => {
...
@@ -521,7 +534,7 @@ const publicFn = () => {
postnatalJSONFn
()
postnatalJSONFn
()
// 获取信息
// 获取信息
getInfoFn
()
getInfoFn
()
}
else
{
}
else
{
isTip
.
value
=
true
isTip
.
value
=
true
}
}
}
}
...
@@ -563,6 +576,7 @@ onMounted(() => {
...
@@ -563,6 +576,7 @@ onMounted(() => {
font-weight: 500;
font-weight: 500;
flex-shrink: 0;
flex-shrink: 0;
height: 32rpx;
height: 32rpx;
.info-c {
.info-c {
width: 2rpx;
width: 2rpx;
height: 22rpx;
height: 22rpx;
...
@@ -583,6 +597,7 @@ onMounted(() => {
...
@@ -583,6 +597,7 @@ onMounted(() => {
justify-content: space-between;
justify-content: space-between;
margin-bottom: 30rpx;
margin-bottom: 30rpx;
flex-shrink: 0;
flex-shrink: 0;
.btn-item {
.btn-item {
display: flex;
display: flex;
align-items: center;
align-items: center;
...
@@ -813,6 +828,7 @@ onMounted(() => {
...
@@ -813,6 +828,7 @@ onMounted(() => {
height: 177rpx;
height: 177rpx;
border-radius: 12rpx;
border-radius: 12rpx;
overflow: hidden;
overflow: hidden;
.banner-img {
.banner-img {
width: 100%;
width: 100%;
height: 100%;
height: 100%;
...
...
pages/productionDetails/productionDetails.vue
View file @
67e3f569
...
@@ -459,11 +459,14 @@ const onRemind = () => {
...
@@ -459,11 +459,14 @@ const onRemind = () => {
}
}
// 如果授权就不弹出提醒
// 如果授权就不弹出提醒
showPicker
.
value
=
isWxNotification
.
value
?
true
:
false
showPicker
.
value
=
isWxNotification
.
value
?
true
:
false
}
}
// 提醒关闭
// 提醒关闭
const
close
=
()
=>
{
const
close
=
()
=>
{
showPicker
.
value
=
false
;
showPicker
.
value
=
false
;
}
}
// 选择提醒事件
// 选择提醒事件
...
@@ -472,6 +475,7 @@ const handleChange = (e) => {
...
@@ -472,6 +475,7 @@ const handleChange = (e) => {
}
}
// 确认选择
// 确认选择
const
handleConfirm
=
()
=>
{
const
handleConfirm
=
()
=>
{
selectedValue
.
value
=
options
[
pickerValue
.
value
].
id
;
selectedValue
.
value
=
options
[
pickerValue
.
value
].
id
;
console
.
log
(
selectedValue
.
value
,
infoData
.
value
.
wxTemplateId
,
babyId
.
value
)
console
.
log
(
selectedValue
.
value
,
infoData
.
value
.
wxTemplateId
,
babyId
.
value
)
close
();
close
();
...
...
pages/shengzhangTools/shengzhangTools.vue
View file @
67e3f569
...
@@ -380,6 +380,11 @@ const showDatePicker = () => {
...
@@ -380,6 +380,11 @@ const showDatePicker = () => {
});
});
console
.
log
(
'显示日期选择器'
)
console
.
log
(
'显示日期选择器'
)
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"生长曲线"
,
popName
:
"选择本次测评日期弹窗"
});
showDatePickerPopup
.
value
=
true
showDatePickerPopup
.
value
=
true
}
}
...
...
views/Home.vue
View file @
67e3f569
...
@@ -274,7 +274,8 @@
...
@@ -274,7 +274,8 @@
<view
id=
"fourthScreen"
class=
"bottomlink"
>
<view
id=
"fourthScreen"
class=
"bottomlink"
>
<image
class=
"bottombg"
:src=
"$baseUrl + 'homepage/bottombg.png'"
></image>
<image
class=
"bottombg"
:src=
"$baseUrl + 'homepage/bottombg.png'"
></image>
<view
class=
"box"
>
<view
class=
"box"
>
<image
class=
"icon"
:id=
"'bottomLink' + index"
v-for=
"(icon, index) in bottomLinkList"
:key=
"index"
:data-log=
"
{
<image
class=
"icon"
:id=
"'bottomLink' + index"
v-for=
"(icon, index) in bottomLinkList"
:key=
"index"
:data-log=
"
{
xcxClick: '首页-四屏页面点击',
xcxClick: '首页-四屏页面点击',
pageName: '首页-四屏',
pageName: '首页-四屏',
buttonName: `${qrNameList[index]}`
buttonName: `${qrNameList[index]}`
...
@@ -566,7 +567,7 @@ export default {
...
@@ -566,7 +567,7 @@ export default {
md
.
sensorComponentLogTake
({
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
xcxComponentExposure
:
"true"
,
pageName
:
"首页"
,
pageName
:
"首页"
,
componentName
:
"
焦点图
"
,
componentName
:
"
首页banner
"
,
componentContent
:
this
.
swiperList
[
0
]?.
title
||
''
componentContent
:
this
.
swiperList
[
0
]?.
title
||
''
});
});
...
@@ -705,8 +706,7 @@ export default {
...
@@ -705,8 +706,7 @@ export default {
jumpLink
(
link
,
videoUrl
,
index
,
evt
)
{
jumpLink
(
link
,
videoUrl
,
index
,
evt
)
{
if
(
evt
)
{
if
(
evt
)
{
md
.
sensorLog
(
evt
);
md
.
sensorLog
(
evt
);
if
(
evt
.
currentTarget
.
dataset
.
comlog
)
if
(
evt
.
currentTarget
.
dataset
.
comlog
)
{
{
md
.
sensorComponentLog
(
evt
);
md
.
sensorComponentLog
(
evt
);
}
}
}
}
...
@@ -890,7 +890,7 @@ export default {
...
@@ -890,7 +890,7 @@ export default {
md
.
sensorComponentLogTake
({
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
xcxComponentExposure
:
"true"
,
pageName
:
"首页"
,
pageName
:
"首页"
,
componentName
:
"
焦点图
"
,
componentName
:
"
首页banner
"
,
componentContent
:
this
.
swiperList
[
e
.
detail
.
current
].
title
componentContent
:
this
.
swiperList
[
e
.
detail
.
current
].
title
});
});
},
},
...
@@ -1003,6 +1003,12 @@ export default {
...
@@ -1003,6 +1003,12 @@ export default {
},
},
imagePopupJump
()
{
imagePopupJump
()
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"首页"
,
popName
:
this
.
popupImageObj
.
title
||
"北纬47°鲜活溯源之旅"
,
buttonName
:
this
.
popupImageObj
.
btnName
||
"立即寻宝"
});
jump
({
jump
({
type
:
this
.
popupImageObj
.
jumpType
,
type
:
this
.
popupImageObj
.
jumpType
,
url
:
this
.
popupImageObj
.
jumpUrl
,
url
:
this
.
popupImageObj
.
jumpUrl
,
...
@@ -1010,6 +1016,11 @@ export default {
...
@@ -1010,6 +1016,11 @@ export default {
});
});
},
},
showImagePopup
()
{
showImagePopup
()
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"首页"
,
popName
:
this
.
popupImageObj
.
title
||
"北纬47°鲜活溯源之旅"
});
this
.
$refs
.
imagePopup
.
open
(
'center'
);
this
.
$refs
.
imagePopup
.
open
(
'center'
);
},
},
closePop1
()
{
closePop1
()
{
...
...
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