From ebe2aaa7af43ba64fb09d2433f698892eb06c317 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 15 一月 2026 13:42:29 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/code/CodeEdit.jsx | 44 ++++++++++++++++++++++++++++++--------------
1 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/zy-acs-flow/src/page/code/CodeEdit.jsx b/zy-acs-flow/src/page/code/CodeEdit.jsx
index c7a7d56..ec0ab8b 100644
--- a/zy-acs-flow/src/page/code/CodeEdit.jsx
+++ b/zy-acs-flow/src/page/code/CodeEdit.jsx
@@ -23,7 +23,6 @@
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography, ToggleButton, ToggleButtonGroup } from '@mui/material';
import { alpha } from '@mui/material/styles';
-import * as Common from '@/utils/common';
import { EDIT_MODE } from '@/config/setting';
import EditBaseAside from "../components/EditBaseAside";
import CustomerTopToolBar from "../components/EditTopToolBar";
@@ -42,6 +41,7 @@
}
const DIR_RULE_ANGLES = [0, 90, 180, 270];
+const DEFAULT_DIR_RULES = DIR_RULE_ANGLES.map(angle => ({ angle, enabled: true }));
const normalizeDirRuleValue = (value) => {
let parsed = [];
@@ -92,6 +92,7 @@
const DirectionRuleInput = () => {
const translate = useTranslate();
+ const record = useRecordContext();
const { register, setValue } = useFormContext();
const dirRuleValue = useWatch({ name: 'dirRule' });
@@ -99,14 +100,27 @@
register('dirRule');
}, [register]);
- const rules = useMemo(() => normalizeDirRuleValue(dirRuleValue), [dirRuleValue]);
- const normalizedRulesString = useMemo(() => JSON.stringify(rules), [rules]);
+ const initialDirRuleString = useMemo(() => {
+ const source = record?.dirRule ?? DEFAULT_DIR_RULES;
+ return JSON.stringify(normalizeDirRuleValue(source));
+ }, [record]);
useEffect(() => {
- if (dirRuleValue !== normalizedRulesString) {
- setValue('dirRule', normalizedRulesString, { shouldDirty: false, shouldTouch: false });
+ if (dirRuleValue === undefined || dirRuleValue === null || dirRuleValue === '') {
+ setValue('dirRule', initialDirRuleString, { shouldDirty: false, shouldTouch: false });
+ return;
}
- }, [dirRuleValue, normalizedRulesString, setValue]);
+
+ const normalizedString = JSON.stringify(normalizeDirRuleValue(dirRuleValue));
+ if (dirRuleValue !== normalizedString) {
+ setValue('dirRule', normalizedString, { shouldDirty: false, shouldTouch: false });
+ }
+ }, [dirRuleValue, initialDirRuleString, setValue]);
+
+ const rules = useMemo(
+ () => normalizeDirRuleValue(dirRuleValue ?? initialDirRuleString),
+ [dirRuleValue, initialDirRuleString]
+ );
const disabledAngle = useMemo(() => {
const disabled = rules.find(rule => !rule.enabled);
@@ -149,6 +163,14 @@
>
{rules.map(rule => {
const isDisabled = !rule.enabled;
+ const disabledStyles = {
+ color: (theme) => theme.palette.error.main,
+ borderColor: (theme) => theme.palette.error.main,
+ bgcolor: (theme) => alpha(theme.palette.error.main, 0.08),
+ '&:hover': {
+ bgcolor: (theme) => alpha(theme.palette.error.main, 0.16),
+ },
+ };
return (
<ToggleButton
key={rule.angle}
@@ -159,14 +181,8 @@
flexDirection: 'column',
gap: 0.5,
py: 1.5,
- '&.Mui-selected': {
- color: (theme) => theme.palette.error.main,
- borderColor: (theme) => theme.palette.error.main,
- bgcolor: (theme) => alpha(theme.palette.error.main, 0.08),
- '&:hover': {
- bgcolor: (theme) => alpha(theme.palette.error.main, 0.16),
- },
- },
+ ...(isDisabled ? disabledStyles : {}),
+ '&.Mui-selected': disabledStyles,
'& .dirRuleStatus': {
color: isDisabled ? 'error.main' : 'text.secondary',
},
--
Gitblit v1.9.1