| | |
| | | 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 = {} |
| | |
| | | } |
| | | |
| | | _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 |
| | | } |
| | | }) |
| | | |
| | |
| | | let readin = {} |
| | | let fieldlen = {} |
| | | let _formlist = [] |
| | | let encrypts = [] |
| | | let intercepts = [] |
| | | |
| | | let _groups = groups.map(group => { |
| | | group.sublist = group.sublist.map(item => { |
| | |
| | | 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)) : '' |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | handleConfirm = () => { |
| | | const { record } = this.state |
| | | const { record, encrypts, intercepts } = this.state |
| | | // 表单提交时检查输入值是否正确 |
| | | return new Promise((resolve, reject) => { |
| | | this.props.form.validateFieldsAndScroll((err, values) => { |
| | |
| | | } |
| | | |
| | | _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] |
| | | |
| | |
| | | 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) |