ERPTurbo_Client/packages/app-client/src/components/biz/CustomTheme.tsx
shenyifei 9213b90d61 feat(app-client): 重构采购审批页面并优化样式配置
- 重构采购审批页面,移除冗余的表单逻辑和校验代码
- 新增基础信息模块自动获取上一车次号功能
- 优化自定义主题配置,统一使用 Taro.pxTransform 处理单位
- 调整页面列表组件的数据加载逻辑,支持分页追加数据
- 优化成本相关组件的价格展示样式,统一字体大小和颜色
- 移除页面中冗余的状态管理和副作用逻辑
- 调整审批页面布局结构,提升用户体验
2025-11-13 11:47:00 +08:00

114 lines
4.5 KiB
TypeScript

import { ReactNode, useEffect, useState } from "react";
import { ConfigProvider } from "@nutui/nutui-react-taro";
import { View } from "@tarojs/components";
import Taro from "@tarojs/taro";
interface CustomThemeProps {
children: ReactNode;
}
export function CustomTheme(props: CustomThemeProps) {
const { children } = props;
const [scaleFactor, setScaleFactor] = useState(1);
useEffect(() => {
const appBaseInfo = Taro.getAppBaseInfo();
// @ts-ignore
const { fontSizeSetting = 17, fontSizeScaleFactor = 1 } = appBaseInfo;
console.log("appBaseInfo", appBaseInfo);
if (fontSizeScaleFactor == 1) {
setScaleFactor(fontSizeSetting / 17);
} else {
setScaleFactor(fontSizeScaleFactor);
}
}, []);
return (
<View
style={{
// @ts-ignore
"--scale-factor": scaleFactor,
"--text-xs": `calc(${Taro.pxTransform(12 * 2)} * var(--scale-factor))`,
"--text-sm": `calc(${Taro.pxTransform(14 * 2)} * var(--scale-factor))`,
"--text-base": `calc(${Taro.pxTransform(16 * 2)} * var(--scale-factor))`,
"--text-lg": `calc(${Taro.pxTransform(18 * 2)} * var(--scale-factor))`,
"--text-xl": `calc(${Taro.pxTransform(20 * 2)} * var(--scale-factor))`,
"--text-2xl": `calc(${Taro.pxTransform(24 * 2)} * var(--scale-factor))`,
"--text-3xl": `calc(${Taro.pxTransform(28 * 2)} * var(--scale-factor))`,
"--text-4xl": `calc(${Taro.pxTransform(32 * 2)} * var(--scale-factor))`,
//--spacing
"--spacing": `calc(${Taro.pxTransform(4 * 2)} * var(--scale-factor))`,
}}
>
<ConfigProvider
theme={{
nutuiCellGroupWrapMargin: "0",
nutuiCellGroupTitleFontSize: "var(--text-lg)",
nutuiCellGroupTitleLineHeight: Taro.pxTransform(56),
nutuiCellGroupTitlePadding: `0 ${Taro.pxTransform(32)}`,
nutuiCellFontSize: "var(--text-xs)",
nutuiCellLineHeight: Taro.pxTransform(56),
nutuiFontSizeS: "var(--text-sm)",
nutuiTabbarInactiveColor: "#6B7280",
nutuiPriceLineColor: "var(--color-primary)",
nutuiColorPrimary: "var(--color-primary)",
nutuiColorPrimaryStop1: "var(--color-primary)",
nutuiColorPrimaryStop2: "var(--color-primary)",
nutuiColorPrimaryDisabled: "#D1D5DB",
nutuiColorPrimaryDisabledSpecial: "#D1D5DB",
nutuiDisabledColor: "#D1D5DB",
nutuiStepsBaseHeadTextSize: Taro.pxTransform(36),
nutuiStepsBaseIconSize: Taro.pxTransform(24),
nutuiFontSizeBase: "var(--text-sm)",
nutuiFormItemRequiredColor: "#ff0f23",
nutuiFormItemBodySlotsTextAlign: "right",
nutuiNoticebarHeight: Taro.pxTransform(84),
nutuiSwitchHeight: Taro.pxTransform(54),
nutuiSwitchWidth: Taro.pxTransform(54),
nutuiSwitchLabelFontSize: Taro.pxTransform(28),
// nutuiInputFontSize: "40rpx",
nutuiInputBackgroundColor: "transparent",
nutuiInputPadding: `0 ${Taro.pxTransform(40)}`,
nutuiInputFontSize: "var(--text-sm)",
nutuiInputLineheight:
"var(--tw-leading, var(--text-sm--line-height))",
nutuiInputColorTitle: "#9CA3AF",
nutuiButtonXlargeHeight: "calc(var(--spacing) * 12)",
nutuiButtonXlargeFontSize: "var(--text-lg)",
nutuiButtonXlargePadding: "0 calc(var(--spacing) * 3)",
nutuiButtonXlargeBorderRadius: "calc(var(--spacing) * 2)",
nutuiButtonLargeHeight: "calc(var(--spacing) * 10)",
nutuiButtonLargeFontSize: "var(--text-base)",
nutuiButtonLargePadding: "0 calc(var(--spacing) * 3)",
nutuiButtonLargeBorderRadius: "calc(var(--spacing) * 2)",
// --nutui-button-small-height
nutuiButtonSmallHeight: "calc(var(--spacing) * 8)",
nutuiButtonSmallFontSize: "var(--text-sm)",
nutuiButtonSmallPadding: "0 calc(var(--spacing) * 3)",
nutuiButtonSmallBorderRadius: "calc(var(--spacing) * 2)",
// --nutui-textarea-padding
nutuiTextareaPadding: "0",
nutuiUploaderImageBorder: `${Taro.pxTransform(4)} dashed var(--color-gray-300)`,
nutuiUploaderImageWidth: "100%",
nutuiUploaderImageHeight: Taro.pxTransform(320),
nutuiUploaderPreviewMarginRight: "0",
nutuiUploaderPreviewMarginBottom: "0",
// --nutui-tabbar-height
nutuiTabbarHeight: "calc(92rpx * var(--scale-factor))",
}}
>
{children}
</ConfigProvider>
</View>
);
}