diff --git a/src/api/health/medicationAdherence.js b/src/api/health/medicationAdherence.js
new file mode 100644
index 0000000..f4d75e2
--- /dev/null
+++ b/src/api/health/medicationAdherence.js
@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+// 获取总体依从性统计
+export function getOverallAdherence(query) {
+ return request({
+ url: '/health/adherence/overall',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获取每日依从性统计列表
+export function getDailyAdherence(query) {
+ return request({
+ url: '/health/adherence/daily',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获取日历视图数据
+export function getCalendarData(personId, yearMonth) {
+ return request({
+ url: '/health/adherence/calendar',
+ method: 'get',
+ params: { personId, yearMonth }
+ })
+}
+
+// 获取各时段服药统计
+export function getTimeSlotAdherence(query) {
+ return request({
+ url: '/health/adherence/timeSlot',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获取仪表盘概览数据
+export function getDashboard(personId) {
+ return request({
+ url: '/health/adherence/dashboard',
+ method: 'get',
+ params: { personId }
+ })
+}
\ No newline at end of file
diff --git a/src/pages.json b/src/pages.json
index 65a2421..fa6dbda 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -238,6 +238,14 @@
}
}
,
+ {
+ "path": "pages/statistic/medication/index",
+ "style": {
+ "navigationBarTitleText": "用药统计",
+ "navigationStyle": "custom"
+ }
+ }
+ ,
{
"path": "pages/work/accounts/accountDealRecord/list",
"style": {
diff --git a/src/pages/statistic/index.vue b/src/pages/statistic/index.vue
index 500dcc1..3012752 100644
--- a/src/pages/statistic/index.vue
+++ b/src/pages/statistic/index.vue
@@ -74,6 +74,26 @@
+
+
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
+
@@ -109,6 +129,9 @@
{ path: '/pages/statistic/bill/investAnalysis/index', text: '收益统计分析', icon: 'settings', color: 'linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%)', permission: 'invest:investAnalysis:list'},
{ path: '/pages/statistic/bill/futuresAnalysis/index', text: '期货统计分析', icon: 'fire', color: 'linear-gradient(135deg, #fc5c65 0%, #fd79a8 100%)', permission: 'invest:futuresAnalysis:list'},
{ path: '/pages/statistic/bill/stocksAnalysis/index', text: '股票统计分析', icon: 'flag-filled', color: 'linear-gradient(135deg, #5f72bd 0%, #9b23ea 100%)', permission: 'invest:stocksAnalysis:list' }
+ ])
+ const healthGridList=ref([
+ { path: '/pages/statistic/medication/index', text: '用药统计', icon: 'heart-filled', color: 'linear-gradient(135deg, #409EFF 0%, #67C23A 100%)', permission: 'health:medicationStatistic:query' }
])
function navigateTo(path) {
uni.navigateTo({
diff --git a/src/pages/statistic/medication/index.vue b/src/pages/statistic/medication/index.vue
new file mode 100644
index 0000000..5aa9bba
--- /dev/null
+++ b/src/pages/statistic/medication/index.vue
@@ -0,0 +1,591 @@
+
+
+
+
+
+
+
+
+ 用药统计
+
+
+
+
+
+
+ 近7天
+ 近30天
+ 近90天
+
+
+
+
+
+
+ {{ overview.totalTasks || 0 }}
+ 总任务
+
+
+ {{ overview.completedTasks || 0 }}
+ 已服药
+
+
+ {{ overview.missedTasks || 0 }}
+ 漏服
+
+
+
+
+
+ {{ overview.adherenceRate || 0 }}%
+ 服药率
+
+
+
+
+
+ {{ overview.ontimeRate || 0 }}%
+ 准时率
+
+
+
+
+
+
+
+
+ 服药趋势
+
+
+
+
+
+
+
+
+ 时段分布
+
+
+ {{ timeSlotNames[key] }}
+ {{ item.adherenceRate || 0 }}%
+
+ 已服 {{ item.completedTasks || 0 }}
+ / {{ item.totalTasks || 0 }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ day.day }}
+
+
+
+
+
+
+
+
+
+ 服药率 ≥ 80%
+
+
+
+ 服药率 50-80%
+
+
+
+ 服药率 < 50%
+
+
+
+
+
+
+
+
+
\ No newline at end of file