Эх сурвалжийг харах

fix: 禁止输入框输入表情符号

周玉环 1 долоо хоног өмнө
parent
commit
738e1b1326

+ 14 - 1
xinkeaboard-seller/src/components/SldEditFormCom/SldEditFormCom.js

@@ -43,13 +43,26 @@ export default  class SldEditFormCom extends Component {
     	  //普通输入框
       item_width  = item_width!=undefined?item_width:'auto'
 			if(val.type == 'input'){
+        // 统一规则定义
+        const unifyInputRules = [
+          {
+            validator: (_, value, callback) => {
+              const hasEmoji = /([\u2700-\u27BF]|[\uE000-\uF8FF]|[\uD800-\uDBFF][\uDC00-\uDFFF])/.test(value);
+              if (hasEmoji) {
+                callback('不支持输入表情符号');
+              } else {
+                callback();
+              }
+            },
+          },
+        ];
 				return (<FormItem
 							key={index}
 							label={val.label}
 							extra={val.extra}
               style={{width:val.width!=undefined?val.width+80:250}}
 						>
-							{getFieldDecorator(val.name,{initialValue:val.initialValue,rules:val.rules})(
+							{getFieldDecorator(val.name,{initialValue:val.initialValue,rules: [...(val.rules || []), ...unifyInputRules]})(
 								<Input maxLength={val.maxLength!=undefined&&val.maxLength?val.maxLength:99999999} className={styles.item}  disabled={val.disable} placeholder={val.placeholder}/>
 							)}
 						</FormItem>

+ 14 - 1
xinkeaboard-seller/src/components/SldTableRowThree/index.js

@@ -80,12 +80,25 @@ export default class SldTableRowTwo extends PureComponent {
       </div>
     );
     if (val.type == 'input') {
+      // 统一规则定义
+      const unifyInputRules = [
+        {
+          validator: (_, value, callback) => {
+            const hasEmoji = /([\u2700-\u27BF]|[\uE000-\uF8FF]|[\uD800-\uDBFF][\uDC00-\uDFFF])/.test(value);
+            if (hasEmoji) {
+              callback('不支持输入表情符号');
+            } else {
+              callback();
+            }
+          },
+        },
+      ];
       return (<FormItem
           key={index}
           extra={val.extra}
           style={{width: `${val.ipwidth != undefined ? val.ipwidth : 80}%`}}
         >
-          {getFieldDecorator(val.name, { initialValue: val.initialValue, rules: val.rules })(
+          {getFieldDecorator(val.name, { initialValue: val.initialValue, rules: [...(val.rules || []), ...unifyInputRules] })(
             <Input maxLength={val.maxLength!=undefined&&val.maxLength?val.maxLength:input_limit_length} disabled={val.disable != undefined ? val.disable : false} className={styles.item}
                    placeholder={val.placeholder}/>,
           )}

+ 16 - 2
xinkeaboard-seller/src/components/SldTableRowTwo/index.js

@@ -130,15 +130,29 @@ export default class SldTableRowTwo extends PureComponent {
       </div>
     );
     if (val.type == 'input') {
+      // 统一规则定义
+      const unifyInputRules = [
+        {
+          validator: (_, value, callback) => {
+            const hasEmoji = /([\u2700-\u27BF]|[\uE000-\uF8FF]|[\uD800-\uDBFF][\uDC00-\uDFFF])/.test(value);
+            if (hasEmoji) {
+              callback('不支持输入表情符号');
+            } else {
+              callback();
+            }
+          },
+        },
+      ];
       return (<FormItem
           key={index}
           extra={val.extra}
           style={{ width: '80%' }}
         >
-          {getFieldDecorator(val.name, { initialValue: val.initialValue, rules: val.rules })(
+          {getFieldDecorator(val.name, { initialValue: val.initialValue, rules: [...(val.rules || []), ...unifyInputRules] })(
             <Input maxLength={val.maxLength != undefined ? val.maxLength : 250}
                    disabled={val.disable != undefined ? val.disable : false} className={styles.item}
-                   placeholder={val.placeholder}/>,
+                   placeholder={val.placeholder}
+            />,
           )}
         </FormItem>
       );