From cbeffcc0902631909c0373f274752a97ddaf2d4e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 06 八月 2022 01:41:54 +0800
Subject: [PATCH] 2022-08-06

---
 src/tabviews/zshare/mutilform/mkInput/index.jsx |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/src/tabviews/zshare/mutilform/mkInput/index.jsx b/src/tabviews/zshare/mutilform/mkInput/index.jsx
index fd313ea..f147110 100644
--- a/src/tabviews/zshare/mutilform/mkInput/index.jsx
+++ b/src/tabviews/zshare/mutilform/mkInput/index.jsx
@@ -1,6 +1,7 @@
 import React, { Component } from 'react'
 import { is, fromJS } from 'immutable'
 import { Input } from 'antd'
+import md5 from 'md5'
 
 import MKEmitter from '@/utils/events.js'
 
@@ -14,9 +15,25 @@
     super(props)
     
     const config = props.config
+    let _value = config.initval
+    let encryption = 'false'
+
+    if (config.encryption === 'true') {
+      encryption = 'true'
+      if (_value) {
+        try {
+          _value = window.decodeURIComponent(window.atob(_value))
+        } catch (e) {
+          _value = config.initval
+        }
+      }
+    } else if (config.encryption === 'md5') {
+      encryption = 'md5'
+    }
     
     this.state = {
-      value: config.initval
+      value: _value,
+      encryption
     }
   }
   
@@ -43,27 +60,55 @@
       this.inputRef.current.select()
     } else if (type === 'input') {
       this.setState({value})
-      this.props.onChange(value, true)
+      let _val = value
+
+      if (this.state.encryption === 'true') {
+        try {
+          _val = window.btoa(window.encodeURIComponent(_val))
+        } catch (e) {
+          _val = value
+        }
+        this.props.onChange(_val)
+      } else if (this.state.encryption === 'md5') {
+        _val = _val + ''
+        _val = md5(_val.toLowerCase())
+        _val = _val.toUpperCase()
+        
+        this.props.onChange(_val)
+      } else {
+        this.props.onChange(_val, true)
+      }
     }
   }
 
   handleChange = (e) => {
     let val = e.target.value
+    let submit = /\n/ig.test(val)
 
-    if (!/\n/ig.test(val)) {
-      this.props.onChange(val)
-      this.setState({value: val})
-      if (!val) {
+    val = val.replace(/\n/ig, '')
+
+    let _val = val
+
+    if (this.state.encryption === 'true') {
+      try {
+        _val = window.btoa(window.encodeURIComponent(_val))
+      } catch (e) {
+        _val = val
+      }
+    } else if (this.state.encryption === 'md5') {
+      _val = md5(_val.toLowerCase())
+      _val = _val.toUpperCase()
+    }
+
+    this.props.onChange(_val)
+
+    this.setState({value: val}, () => {
+      if (submit) {
+        this.handleInputSubmit()
+      } else if (!val) {
         this.inputRef.current.focus()
       }
-    } else {
-      val = val.replace(/\n/ig, '')
-
-      this.props.onChange(val)
-      this.setState({value: val}, () => {
-        this.handleInputSubmit()
-      })
-    }
+    })
   }
 
   handleInputSubmit = () => {

--
Gitblit v1.8.0