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