|
|
@@ -45,16 +45,66 @@ const JsonParam = observer((props: Props) => {
|
|
|
return _data;
|
|
|
});
|
|
|
|
|
|
- const checkArray: any = (arr: any) => {
|
|
|
+ // const checkArray: any = (arr: any) => {
|
|
|
+ // if (Array.isArray(arr) && arr.length) {
|
|
|
+ // return arr.every((item: any) => {
|
|
|
+ // if (item.valueType?.type === 'object') {
|
|
|
+ // return item.id && item.name && checkArray(item.json?.properties);
|
|
|
+ // }
|
|
|
+ // return item.id && item.name && item.valueType;
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // return false;
|
|
|
+ // };
|
|
|
+
|
|
|
+ const checkArrayFormat: any = (arr: any) => {
|
|
|
+ const reg = new RegExp('^[0-9a-zA-Z_\\\\-]+$');
|
|
|
+ let str: string = '';
|
|
|
if (Array.isArray(arr) && arr.length) {
|
|
|
- return arr.every((item: any) => {
|
|
|
- if (item.valueType?.type === 'object') {
|
|
|
- return item.id && item.name && checkArray(item.json?.properties);
|
|
|
+ arr.every((item: any) => {
|
|
|
+ if (!item.id) {
|
|
|
+ str = '请输入标识';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!item.name) {
|
|
|
+ str = '请输入名称';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!item.valueType?.type) {
|
|
|
+ str = '请选择数据类型';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!reg.exec(item.id)) {
|
|
|
+ str = '标识只能由数字、字母、下划线、中划线组成';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (item.id.length > 64 && item.name.length > 64) {
|
|
|
+ str = '标识最多可输入64个字符';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (item.name.length > 64) {
|
|
|
+ str = '名称最多可输入64个字符';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (item.valueType?.type === 'boolean') {
|
|
|
+ if (!(item.valueType.falseText && item.valueType.trueText)) {
|
|
|
+ str = '请输入布尔值';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ item.valueType.falseValue === '' ||
|
|
|
+ item.valueType.trueValue === '' ||
|
|
|
+ item.valueType.falseValue === undefined ||
|
|
|
+ item.valueType.trueValue === undefined
|
|
|
+ ) {
|
|
|
+ str = '请输入布尔值';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
- return item.id && item.name && item.valueType;
|
|
|
+ return item.id && item.name && item.valueType?.type;
|
|
|
});
|
|
|
}
|
|
|
- return false;
|
|
|
+ return str;
|
|
|
};
|
|
|
|
|
|
const schema: ISchema = {
|
|
|
@@ -80,12 +130,8 @@ const JsonParam = observer((props: Props) => {
|
|
|
if (props.keys === 'inputs' && value.length === 0) {
|
|
|
resolve('');
|
|
|
}
|
|
|
- const flag = checkArray(value);
|
|
|
- if (!!flag) {
|
|
|
- resolve('');
|
|
|
- } else {
|
|
|
- resolve('请配置参数');
|
|
|
- }
|
|
|
+ const str = checkArrayFormat(value);
|
|
|
+ resolve(str);
|
|
|
});
|
|
|
},
|
|
|
},
|
|
|
@@ -162,6 +208,12 @@ const JsonParam = observer((props: Props) => {
|
|
|
item.value,
|
|
|
),
|
|
|
),
|
|
|
+ 'x-validator': [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择数据类型',
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
booleanConfig: {
|
|
|
title: '布尔值',
|