import SendOutlined from "@mui/icons-material/SendOutlined"; import Alert from "@mui/material/Alert"; import Button from "@mui/material/Button"; import InputAdornment from "@mui/material/InputAdornment"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; import { AppIdentity } from "@/shared/ui/AppIdentity.jsx"; import { UploadField } from "@/shared/ui/UploadField.jsx"; export function FinanceApplicationForm({ apps, disabled, error, form, loading, operations, walletIdentities, onChange, onCancel, onSubmit }) { const selectedOperation = operations.find((operation) => operation.value === form.operation); const needsWalletIdentity = Boolean(selectedOperation?.requiresWalletIdentity); const canSubmit = !disabled && !loading && apps.length > 0 && operations.length > 0; const updateField = (key, value) => { if (key === "operation") { const nextOperation = operations.find((operation) => operation.value === value); onChange({ ...form, operation: value, walletIdentity: nextOperation?.requiresWalletIdentity ? form.walletIdentity : "" }); return; } onChange({ ...form, [key]: value }); }; return (
{error ? {error} : null} {disabled ? 无发起财务申请权限 : null} {!loading && !disabled && (!apps.length || !operations.length) ? 暂无可用 APP 或操作权限 : null}
updateField("appCode", event.target.value)} > {apps.map((app) => ( ))} updateField("operation", event.target.value)} > {operations.map((operation) => ( {operation.label} ))} {needsWalletIdentity ? ( updateField("walletIdentity", event.target.value)} > {walletIdentities.map(([value, label]) => ( {label} ))} ) : null} updateField("targetUserId", event.target.value)} /> updateField("coinAmount", event.target.value)} /> USD }} inputProps={{ min: 0, step: "0.01" }} label="充值金额" required type="number" value={form.rechargeAmount} onChange={(event) => updateField("rechargeAmount", event.target.value)} />
updateField("credentialImageUrl", value)} /> updateField("credentialText", event.target.value)} />
{onCancel ? ( ) : null}
); }