|
@@ -30,7 +30,7 @@
|
|
|
|
|
|
|
|
<view class="list">
|
|
<view class="list">
|
|
|
<view v-if="records.length === 0" class="empty">暂无记录,点击右下角 + 添加</view>
|
|
<view v-if="records.length === 0" class="empty">暂无记录,点击右下角 + 添加</view>
|
|
|
- <view v-for="item in records" :key="item.id" class="list-item">
|
|
|
|
|
|
|
+ <view v-for="item in records" :key="item.id" class="list-item" :style="{ backgroundColor: getItemColor(item.value, item.type) }">
|
|
|
<view class="date">{{ item.date }}</view>
|
|
<view class="date">{{ item.date }}</view>
|
|
|
<view class="value">{{ item.value }} mmol/L · {{ item.type }}</view>
|
|
<view class="value">{{ item.value }} mmol/L · {{ item.type }}</view>
|
|
|
<button class="btn-delete" @click="confirmDeleteRecord(item.id)">✕</button>
|
|
<button class="btn-delete" @click="confirmDeleteRecord(item.id)">✕</button>
|
|
@@ -208,6 +208,28 @@ const averageGlucose = computed(() => {
|
|
|
return (sum / records.value.length).toFixed(1)
|
|
return (sum / records.value.length).toFixed(1)
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+// 根据血糖值获取颜色
|
|
|
|
|
+function getItemColor(value: number, type: string): string {
|
|
|
|
|
+ if (type === '空腹') {
|
|
|
|
|
+ if (value > 7.0) {
|
|
|
|
|
+ return '#f8d7da' // 红
|
|
|
|
|
+ } else if (value > 6.1) {
|
|
|
|
|
+ return '#fff3cd' // 黄
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return '#e8f5e8' // 绿
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 随机血糖
|
|
|
|
|
+ if (value > 11.1) {
|
|
|
|
|
+ return '#f8d7da' // 红
|
|
|
|
|
+ } else if (value > 7.8) {
|
|
|
|
|
+ return '#fff3cd' // 黄
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return '#e8f5e8' // 绿
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 使用 daysInMonth 从 src/utils/date.ts
|
|
// 使用 daysInMonth 从 src/utils/date.ts
|
|
|
|
|
|
|
|
// Canvas / uCharts 绘图 - 使用 composable
|
|
// Canvas / uCharts 绘图 - 使用 composable
|
|
@@ -340,6 +362,16 @@ async function confirmAdd() {
|
|
|
uni.showToast && uni.showToast({ title: '请输入血糖值', icon: 'none' });
|
|
uni.showToast && uni.showToast({ title: '请输入血糖值', icon: 'none' });
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+ // 检查是否需要预警
|
|
|
|
|
+ // 设置弹窗预警:当输入血压>140/90或空腹血糖>7.0时,弹窗提示“建议尽快复诊”
|
|
|
|
|
+ if (types[typeIndex.value] === '空腹' && addGlucose.value > 7.0) {
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '血糖异常',
|
|
|
|
|
+ content: '建议尽快复诊',
|
|
|
|
|
+ showCancel: false,
|
|
|
|
|
+ confirmText: '知道了'
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
const id = `user-${Date.now()}`
|
|
const id = `user-${Date.now()}`
|
|
|
const item: RecordItem = {
|
|
const item: RecordItem = {
|
|
|
id,
|
|
id,
|