Refactor code structure for improved readability and maintainability
This commit is contained in:
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
BIN
src/assets/nv.png
Normal file
BIN
src/assets/nv.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
@@ -2,7 +2,8 @@ import React, { useEffect, useState } from "react";
|
|||||||
import "./u2.css";
|
import "./u2.css";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import DecorLine from "../../components/DecorLine";
|
import DecorLine from "../../components/DecorLine";
|
||||||
import avatar from "../../assets/avatar.png";
|
import nan from "../../assets/nan.png";
|
||||||
|
import nv from "../../assets/nv.png";
|
||||||
import semicircle from "../../assets/semicircle.png";
|
import semicircle from "../../assets/semicircle.png";
|
||||||
import BackButton from "../../components/BackButton";
|
import BackButton from "../../components/BackButton";
|
||||||
import ConfirmButton from "../../components/ConfirmButton";
|
import ConfirmButton from "../../components/ConfirmButton";
|
||||||
@@ -117,31 +118,33 @@ const U2: React.FC = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 根据性别和姓名生成问候称呼:取姓名第一个字 + (先生|女士|先生/女士)
|
// 根据 gender_name 和姓名生成问候称呼:取姓名第一个字 + (先生|女士)
|
||||||
const getGreeting = () => {
|
const getGreeting = () => {
|
||||||
// 在加载中或没有姓名时不返回欢迎语,避免先渲染空的问候
|
// 在加载中或没有姓名时不返回欢迎语,避免先渲染空的问候
|
||||||
if (loading || !patientInfo?.name) return "";
|
if (loading || !patientInfo?.name) return "";
|
||||||
const name = patientInfo.name.trim();
|
const name = patientInfo.name.trim();
|
||||||
const firstChar = name ? name.charAt(0) : "";
|
const firstChar = name ? name.charAt(0) : "";
|
||||||
const genderName = (patientInfo?.gender_name || "").trim();
|
const genderName = (patientInfo?.gender_name || "").trim();
|
||||||
const sex = (patientInfo as any)?.sex;
|
|
||||||
let title = "";
|
let title = "";
|
||||||
if (genderName === "男" || sex === "1" || sex === 1) title = "先生";
|
if (genderName === "男") title = "先生";
|
||||||
else if (genderName === "女" || sex === "2" || sex === 2) title = "女士";
|
else if (genderName === "女") title = "女士";
|
||||||
return `尊敬的${
|
return `尊敬的${
|
||||||
firstChar ? `${firstChar}${title}` : title
|
firstChar ? `${firstChar}${title}` : title
|
||||||
},欢迎您的到来:`;
|
},欢迎您的到来:`;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 返回头像地址:优先使用读到的本地照片路径(file:///),否则使用默认 avatar
|
// 返回头像地址:使用 gender_name 字段("女" 显示女性头像),忽略 photo_path
|
||||||
const getAvatarSrc = () => {
|
const getAvatarSrc = () => {
|
||||||
const photoPath = (patientInfo as any)?.photo_path || "";
|
const genderName = (patientInfo?.gender_name || "").trim();
|
||||||
if (!photoPath) return avatar;
|
if (genderName === "女") return nv;
|
||||||
// 如果已经是 file:// 协议,直接返回
|
return nan;
|
||||||
if (photoPath.startsWith("file://")) return photoPath;
|
};
|
||||||
// 将 Windows 路径转换为 file:/// 格式(把反斜杠改为斜杠)
|
|
||||||
const normalized = photoPath.replace(/\\/g, "/").replace(/\\/g, "/");
|
// 根据 gender_name 返回显示的性别标签(用于界面展示)
|
||||||
return `file:///${normalized}`;
|
const getGenderLabel = () => {
|
||||||
|
const genderName = (patientInfo?.gender_name || "").trim();
|
||||||
|
if (!genderName) return "";
|
||||||
|
return genderName;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 在数据加载时显示占位,加载完成后再渲染完整内容
|
// 在数据加载时显示占位,加载完成后再渲染完整内容
|
||||||
@@ -168,7 +171,7 @@ const U2: React.FC = () => {
|
|||||||
<div className="u2-detail-row">
|
<div className="u2-detail-row">
|
||||||
<div className="u2-detail-bar" />
|
<div className="u2-detail-bar" />
|
||||||
<div className="u2-detail-text">
|
<div className="u2-detail-text">
|
||||||
性别:{loading ? "" : patientInfo?.gender_name || "---"}
|
性别:{loading ? "" : getGenderLabel()}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user