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)} }) } }) } }