@@ -90,12 +100,7 @@ const PropertiesForm = (props: IProps) => {
name={[name, 'name']}
{...restField}
{...itemLayout}
- rules={[...nameRulesFn(), () => ({ validator: (_, value) => {
- if (!value || properties.filter((item, i) => item.name === value && i !== index).length === 0) {
- return Promise.resolve();
- }
- return Promise.reject(intl.get('schema.uniqProperty'));
- } })]}
+ rules={[...nameRulesFn()]}
>
@@ -153,6 +158,7 @@ const PropertiesForm = (props: IProps) => {
/>
+
))}
diff --git a/app/pages/SketchModeling/SchemaConfig/index.module.less b/app/pages/SketchModeling/SchemaConfig/index.module.less
index 9673eacf..17f7857b 100644
--- a/app/pages/SketchModeling/SchemaConfig/index.module.less
+++ b/app/pages/SketchModeling/SchemaConfig/index.module.less
@@ -71,6 +71,10 @@
height: 60px;
}
}
+ .errors {
+ position: relative;
+ top: -13px;
+ }
.label {
display: inline-block;
font-weight: 500;
diff --git a/app/pages/SketchModeling/SchemaConfig/index.tsx b/app/pages/SketchModeling/SchemaConfig/index.tsx
index d7c11025..dc3a0cf6 100644
--- a/app/pages/SketchModeling/SchemaConfig/index.tsx
+++ b/app/pages/SketchModeling/SchemaConfig/index.tsx
@@ -105,6 +105,12 @@ const SchemaConfig: React.FC = () => {
return null;
}
+ const handleCheck = (changedValues) => {
+ const { properties } = changedValues;
+ if (properties && properties.some(i => i.name !== undefined)) {
+ form.validateFields([['properties']]);
+ }
+ };
const { type, name, comment, properties } = active;
return (
@@ -123,6 +129,7 @@ const SchemaConfig: React.FC = () => {
form={form}
className={styles.configForm}
initialValues={{ name, comment, properties }}
+ onValuesChange={handleCheck}
onFieldsChange={handleUpdate}
name="form"
layout="vertical"
From af6ae3f7695f29e5e33a9ecb9b96ba25a15da960 Mon Sep 17 00:00:00 2001
From: hetao92 <18328704+hetao92@users.noreply.github.com>
Date: Fri, 31 Mar 2023 03:23:04 +0000
Subject: [PATCH 2/2] mod: code review
---
.../SchemaConfig/PropertiesForm.tsx | 125 +++++++++---------
1 file changed, 64 insertions(+), 61 deletions(-)
diff --git a/app/pages/SketchModeling/SchemaConfig/PropertiesForm.tsx b/app/pages/SketchModeling/SchemaConfig/PropertiesForm.tsx
index be6021d6..1a20e63e 100644
--- a/app/pages/SketchModeling/SchemaConfig/PropertiesForm.tsx
+++ b/app/pages/SketchModeling/SchemaConfig/PropertiesForm.tsx
@@ -61,7 +61,7 @@ const PropertiesForm = (props: IProps) => {
{
- const names = properties.map((item) => item.name);
+ const names = properties.map((item) => item.name).filter(Boolean);
if(names.length !== new Set(names).size) {
return Promise.reject(intl.get('schema.uniqProperty'));
}
@@ -92,76 +92,79 @@ const PropertiesForm = (props: IProps) => {
)}
- {fields.map(({ key, name, ...restField }, index) => (
-
-
-
-
-
-
-
-
-
-
-
- {fields?.[index] && properties[index].type === 'fixed_string' && (
+
+
+
+
-
+
- )}
-
-
-
- }
- onClick={() => remove(index)}
- />
-
-
-
-
-
- ))}
+ {fields?.[index] && properties[index].type === 'fixed_string' && (
+
+
+
+ )}
+
+
+
+ }
+ onClick={() => remove(index)}
+ />
+
+
+ {hasSameName && }
+
+
+ );
+ })}
);
}}