import { View, Text, Image } from "@tarojs/components";
import './MetricHistory.scss'
import RecordItem from "@/features/common/RecordItem";
import { deleteMetricRecord } from "@/services/trackSomething";
import { useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { TimeFormatter } from "@/utils/time_format";
import { ColorType } from "@/context/themes/color";
import { rpxToPx } from "@/utils/tools";
import Taro from "@tarojs/taro";
export default function Component(props: { records: any[] }) {
const user = useSelector((state: any) => state.user);
const [list, setList] = useState(props.records)
const [selReference, setSelReference] = useState(global.selMetricItem && global.selMetricItem.references.length > 0 ? global.selMetricItem.references[0] : null)
useEffect(() => {
setList(props.records)
}, [props.records])
function formateDate(date: string) {
//yyyyMMdd转换成日期,如果是今天,返回今天,如果是昨天,返回昨天,如果是昨天之前,返回日期
const dt = new Date(date.substring(0, 4) + '/' +
date.substring(4, 6) + '/' +
date.substring(6));
const now = new Date();
const diff = now.getTime() - dt.getTime();
const day = 1000 * 60 * 60 * 24;
if (diff < day) {
return TimeFormatter.getTodayUnit();
} else if (diff < 2 * day) {
return TimeFormatter.getYesterdayUnit();
} else {
return date.substring(0, 4) + '-' +
date.substring(4, 6) + '-' +
date.substring(6)//dt.toISOString().slice(0, 10);
}
}
function formateHourMinutes(timestamp: number) {
var date = new Date(timestamp)
var hour = date.getHours()
var minutes = date.getMinutes()
return `${hour < 10 ? '0' + hour : hour}:${minutes < 10 ? '0' + minutes : minutes}`
}
function deleteRecord(record: any) {
deleteMetricRecord({ id: record.id }).then(res => {
list.map(item => {
var index = item.records.findIndex(item => item.id == record.id);
if (index >= 0)
item.records.splice(index, 1)
})
for (let i = list.length; i > 0; i--) {
if (list[i - 1].records.length == 0) {
list.splice(i - 1, 1)
}
}
// console.log(list)
setList(JSON.parse(JSON.stringify(list)))
global.refreshMetric()
})
}
function showMore() {
var list:any = []
global.selMetricItem.references.map((item)=>{
list.push((item as any).standard)
})
Taro.showActionSheet({
itemList: list,
success: function (res) {
// console.log(res.tapIndex)
setSelReference(global.selMetricItem.references[res.tapIndex])
},
fail: function (res) {
console.log(res.errMsg)
}
})
}
function metricStandard() {
if (global.selMetricItem && global.selMetricItem.references.length > 0) {
return
{selReference.standard}
More
{
selReference.categories.map((item, index) => {
var cellClassName = 'cell_full'
var showLine = false
if (selReference.categories.length > 1) {
if (index == 0) {
cellClassName = 'cell_top'
showLine = true
}
else if (index == selReference.categories.length - 1) {
cellClassName = 'cell_bottom'
showLine = false
}
else {
cellClassName = 'cell_center'
showLine = true
}
}
return
{item.value_range}
{item.category}
{
showLine &&
}
})
}
}
}
var lastYearStr = '2025年'
return
{
user.test_user && global.clearHistory()}>删除全部
}
{
metricStandard()
}
{
(list as any).map(item => {
var showYear = lastYearStr != TimeFormatter.getYearByDate(item.date)
lastYearStr = TimeFormatter.getYearByDate(item.date)
return
{
showYear && {TimeFormatter.getYearByDate(item.date)}
}
{TimeFormatter.getMonthAndDayByDate(item.date)}
{
item.records.map(record => {
return deleteRecord(record)}>
{/*
*/}
{record.items[0].value}
{
record.items.length > 1 && /{record.items[1].value}
}
{
record.items.length > 2 && /{record.items[2].value}
}
{record.items[0].unit}
{formateHourMinutes(record.timestamp)}
})
}
})
}
}