diff --git a/src/components/SectionList/index.jsx b/src/components/SectionList/index.jsx
index e329549..8e22b03 100644
--- a/src/components/SectionList/index.jsx
+++ b/src/components/SectionList/index.jsx
@@ -22,12 +22,15 @@ import { v4 as uuidv4 } from "uuid";
import { supabase } from "@/config/supabase";
import { supabaseService } from "@/hooks/supabaseService";
const { Text } = Typography;
+import { defaultSymbol, formatExchangeRate } from "@/utils/exchange_rate";
const SectionList = ({
form,
isView,
formValues,
type,
currentCurrency = "TWD",
+ taxRate,
+ setTaxRate,
}) => {
const [editingSectionIndex, setEditingSectionIndex] = useState(null);
const [editingSectionName, setEditingSectionName] = useState("");
@@ -36,33 +39,6 @@ const SectionList = ({
const [loading, setLoading] = useState(false);
const [units, setUnits] = useState([]);
const [loadingUnits, setLoadingUnits] = useState(false);
- const CURRENCY_SYMBOLS = {
- CNY: "¥",
- TWD: "NT$",
- USD: "$",
- };
-
- const calculateItemAmount = (quantity, price) => {
- const safeQuantity = Number(quantity) || 0;
- const safePrice = Number(price) || 0;
- return safeQuantity * safePrice;
- };
-
- const calculateSectionTotal = (items = []) => {
- if (!Array.isArray(items)) return 0;
- return items.reduce((sum, item) => {
- if (!item) return sum;
- return sum + calculateItemAmount(item.quantity, item.price);
- }, 0);
- };
-
- const formatCurrency = (amount) => {
- const safeAmount = Number(amount) || 0;
- return `${CURRENCY_SYMBOLS[currentCurrency] || "NT$"}${safeAmount.toLocaleString("zh-TW", {
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- })}`;
- };
const fetchAvailableSections = async () => {
try {
@@ -236,7 +212,7 @@ const SectionList = ({
{item.name}
- {formatCurrency(item.price)}
+ {formatExchangeRate(currentCurrency, item.price)}
))}
@@ -250,7 +226,8 @@ const SectionList = ({
总金额
- {formatCurrency(
+ {formatExchangeRate(
+ currentCurrency,
(section.attributes.items || []).reduce(
(sum, item) =>
sum + (item.price * (item.quantity || 1) || 0),
@@ -323,7 +300,7 @@ const SectionList = ({
return (
- {formatCurrency(subtotal, currentCurrency)}
+ {formatExchangeRate(currentCurrency, subtotal)}
);
@@ -345,13 +322,12 @@ const SectionList = ({
小计总额:
- {formatCurrency(total, currentCurrency)}
+ {formatExchangeRate(currentCurrency, total)}
);
});
-
return (
<>
@@ -442,127 +418,137 @@ const SectionList = ({
描述/备注
单位
数量
- 单价
+
+ 单价({defaultSymbol})
+
小计
- {itemFields.map((itemField, itemIndex) => (
-
-
{
+ const { key, ...restItemField } = itemField;
+ return (
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {!isView && itemFields.length > 1 && (
-
}
- onClick={() => removeItem(itemField.name)}
- className="flex items-center justify-center"
- />
- )}
-
- ))}
+ {!isView && itemFields.length > 1 && (
+ }
+ onClick={() => removeItem(itemField.name)}
+ className="flex items-center justify-center"
+ />
+ )}
+
+ );
+ })}
{!isView && (