From 5ba94ec7b5ad34098ff9c5d21b4139b1b91c2865 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 29 五月 2020 18:24:11 +0800 Subject: [PATCH] 2020-05-29 --- src/tabviews/formtab/formgroup/index.jsx | 72 +++++++++++++++++++++++++++++++++--- 1 files changed, 66 insertions(+), 6 deletions(-) diff --git a/src/tabviews/formtab/formgroup/index.jsx b/src/tabviews/formtab/formgroup/index.jsx index 5153f62..726eeee 100644 --- a/src/tabviews/formtab/formgroup/index.jsx +++ b/src/tabviews/formtab/formgroup/index.jsx @@ -29,11 +29,13 @@ fieldlen: null, groups: null, formlist: [], + encrypts: [], // 鍔犲瘑瀛楁 + intercepts: [], // 鎴彇瀛楁 record: {} } UNSAFE_componentWillReceiveProps (nextProps) { - const { datatype } = this.state + const { datatype, encrypts } = this.state if (nextProps.data && !is(fromJS(this.props.data), fromJS(nextProps.data))) { let _fieldsvalue = {} @@ -89,11 +91,31 @@ } _fieldsvalue[key] = _val + } else if (datatype[key] === 'text' || datatype[key] === 'textarea') { + let _value = nextProps.data[key] + if (encrypts.includes(key)) { // 鍔犲瘑瀛楁 + try { + _value = window.btoa(window.encodeURIComponent(_value)) + } catch (e) { + console.warn(e) + } + } + + _fieldsvalue[key] = _value } else { _fieldsvalue[key] = nextProps.data[key] } } else { - _record[key] = nextProps.data[key] + let _value = nextProps.data[key] + if (encrypts.includes(key)) { // 鍔犲瘑瀛楁 + try { + _value = window.btoa(window.encodeURIComponent(_value)) + } catch (e) { + console.warn(e) + } + } + + _record[key] = _value } }) @@ -115,6 +137,8 @@ let readin = {} let fieldlen = {} let _formlist = [] + let encrypts = [] + let intercepts = [] let _groups = groups.map(group => { group.sublist = group.sublist.map(item => { @@ -122,6 +146,13 @@ if (item.type === 'funcvar') { _readin = false item.initval = '' // 鍒濆鍖栦负绌� + } + + if (item.type === 'textarea' && item.encryption === 'true') { + encrypts.push(item.field) + } + if (item.interception === 'true') { + intercepts.push(item.field) } item.initVal = item.initval ? JSON.parse(JSON.stringify(item.initval)) : '' @@ -139,7 +170,17 @@ fieldlen[item.field] = _fieldlen if (_readin && !/^date/.test(item.type) && data && data.hasOwnProperty(item.field)) { - item.initval = data[item.field] + let newval = data[item.field] + + if (encrypts.includes(item.field) && newval) { + try { + newval = window.decodeURIComponent(window.atob(newval)) + } catch (e) { + console.warn(e) + } + } + + item.initval = newval } if (item.supvalue) { @@ -559,7 +600,7 @@ } handleConfirm = () => { - const { record } = this.state + const { record, encrypts, intercepts } = this.state // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { @@ -646,9 +687,12 @@ } _value = vals.join(',') - } else if (this.state.datatype[key] === 'text') { - _value = values[key].replace(/(^\s*|\s*$) | \t* | \v*/ig, '') + } else if (this.state.datatype[key] === 'text' || this.state.datatype[key] === 'textarea') { + _value = values[key].replace(/\t*|\v*/g, '') // 鍘婚櫎鍒惰〃绗� + if (intercepts.includes(key)) { // 鍘婚櫎棣栧熬绌烘牸 + _value = _value.replace(/(^\s*|\s*$)/g, '') + } } else { _value = values[key] @@ -663,6 +707,22 @@ value: _value }) }) + + if (encrypts && encrypts.length > 0) { + search = search.map(item => { + let _value = item.value + if (encrypts.includes(item.key)) { + try { + _value = window.btoa(window.encodeURIComponent(_value)) + } catch (e) { + console.warn(e) + } + } + item.value = _value + + return item + }) + } resolve(search) } else { reject(err) -- Gitblit v1.8.0