添加patient-info接口

This commit is contained in:
yuchenglong
2025-11-24 17:18:51 +08:00
parent 63500e2e68
commit c30bb416de
2 changed files with 69 additions and 25 deletions

View File

@@ -1,15 +1,41 @@
import React from "react";
import React, { useEffect, useState } from "react";
import "./u2.css";
import { useNavigate, useLocation } from "react-router-dom";
import { useNavigate } from "react-router-dom";
import DecorLine from "../../components/DecorLine";
import avatar from "../../assets/avatar.png";
import semicircle from "../../assets/semicircle.png";
import BackButton from "../../components/BackButton";
import ConfirmButton from "../../components/ConfirmButton";
import { getPatientInfo, PatientInfo } from "../../api/hisApi";
const U2: React.FC = () => {
const navigate = useNavigate();
const location = useLocation();
const idCardNo = (location.state as any)?.idCardNo;
// 不再通过路由传参,直接从 localStorage 读取上次保存的身份证号
const idCardNo = localStorage.getItem("lastIdCardNo");
const [patientInfo, setPatientInfo] = useState<PatientInfo | null>(null);
const [loading, setLoading] = useState(false);
useEffect(() => {
if (idCardNo) {
setLoading(true);
getPatientInfo(idCardNo)
.then((res) => {
if (res.Status === 200) {
setPatientInfo(res.Data);
} else {
alert(`获取用户信息失败: ${res.Message}`);
}
})
.catch((err) => {
console.error(err);
alert("获取用户信息出错,请重试");
})
.finally(() => {
setLoading(false);
});
}
}, [idCardNo]);
const handleBack = () => {
navigate(-1);
};
@@ -38,36 +64,46 @@ const U2: React.FC = () => {
<div className="u2-info-card">
<img className="u2-avatar" src={avatar} alt="avatar" />
<div className="u2-details-list">
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">xxx</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">x</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">56</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">
{idCardNo ?? "xxxxxxxxxxxxxx"}
{loading ? "" : patientInfo?.name || "---"}
</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">166xxxxxxxx</div>
<div className="u2-detail-text">
{loading ? "" : patientInfo?.gender_name || "---"}
</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text"></div>
<div className="u2-detail-text">
{loading ? "" : patientInfo?.age || "---"}
</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">
{idCardNo || patientInfo?.IdCard || "---"}
</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">
{loading ? "" : patientInfo?.phone || "---"}
</div>
</div>
<div className="u2-detail-row">
<div className="u2-detail-bar" />
<div className="u2-detail-text">
{loading ? "" : patientInfo?.marital_name || "---"}
</div>
</div>
</div>
</div>