Browse Source

订单的字段选择

main
Mac 2 weeks ago
parent
commit
074bec1d2f
  1. 5
      app/screens/productStatus/OrderDatails.tsx
  2. 27
      app/utils/languageUtils.ts

5
app/screens/productStatus/OrderDatails.tsx

@ -54,7 +54,8 @@ import { cartApi } from "../../services/api/cart";
import IconComponent from "../../components/IconComponent"; import IconComponent from "../../components/IconComponent";
import AsyncStorage from "@react-native-async-storage/async-storage"; import AsyncStorage from "@react-native-async-storage/async-storage";
import { CountryList } from "../../constants/countries"; import { CountryList } from "../../constants/countries";
import { getOrderTransLanguage } from "../../utils/languageUtils"; import { getOrderTransLanguage,getAttributeTransLanguage,getAttributeNameTransLanguage } from "../../utils/languageUtils";
// 定义选项类型 // 定义选项类型
interface PaymentOption { interface PaymentOption {
@ -1044,7 +1045,7 @@ export const OrderDetails = () => {
key={index} key={index}
style={styles.productItemInfoSkuText} style={styles.productItemInfoSkuText}
> >
{sku.attribute_name}:{sku.attribute_value} {getAttributeNameTransLanguage(sku) || sku.attribute_name}:{getAttributeTransLanguage(sku) || sku.attribute_value}
</Text> </Text>
))} ))}
{/* <text>{item.product_name}</text> */} {/* <text>{item.product_name}</text> */}

27
app/utils/languageUtils.ts

@ -56,6 +56,33 @@ export const getAttributeTransLanguage = <T extends Record<string, any>>(data: T
return (data[matchedField || 'value_trans'] as string) || ''; return (data[matchedField || 'value_trans'] as string) || '';
}; };
export const getAttributeNameTransLanguage = <T extends Record<string, any>>(data: T): string => {
// 获取当前i18n语言
const currentLang = getCurrentLanguage();
// 特殊处理中文
if (currentLang === 'zh' && 'attribute_name' in data) {
return data.attribute_name as string;
}
// 获取所有attribute_name_trans开头的字段
const translationFields = Object.keys(data).filter(key =>
key.startsWith('attribute_name_trans')
);
// 查找匹配的字段
const matchedField = translationFields.find(field => {
// 从字段名中提取语言代码
const langCode = field.replace('attribute_name_trans_', '');
// 如果没有后缀,则为法语
return langCode === '' ? currentLang === 'fr' : langCode === currentLang;
});
// 返回匹配的翻译值,如果没有匹配则返回法语
return (data[matchedField || 'attribute_name_trans'] as string) || '';
}
export const getSkuTransLanguage = <T extends Record<string, any>>(data: T): string => { export const getSkuTransLanguage = <T extends Record<string, any>>(data: T): string => {
// 获取当前i18n语言 // 获取当前i18n语言
const currentLang = getCurrentLanguage(); const currentLang = getCurrentLanguage();

Loading…
Cancel
Save