| | |
| | | let _style = card.style ? {...card.style} : {} |
| | | |
| | | if (card.$sync) { |
| | | if (card.eval === 'false') { |
| | | val = '' |
| | | } |
| | | this.props.syncData.forEach(item => { |
| | | let _val = card.formula |
| | | Object.keys(item).forEach(key => { |
| | | let reg = new RegExp('@' + key + '@', 'ig') |
| | | _val = _val.replace(reg, item[key]) |
| | | }) |
| | | try { |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | _val = 0 |
| | | if (card.eval !== 'false') { |
| | | try { |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | _val = 0 |
| | | } |
| | | } |
| | | |
| | | if (!val) return |
| | | |
| | | val += _val |
| | | }) |
| | |
| | | _val = _val.replace(reg, data[key]) |
| | | }) |
| | | |
| | | try { |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | _val = 0 |
| | | if (card.eval !== 'false') { |
| | | try { |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | _val = '' |
| | | } |
| | | } |
| | | |
| | | val = _val |
| | | val = _val === undefined ? '' : _val |
| | | } |
| | | |
| | | if (val !== '') { |
| | | val = `${card.prefix || ''}${val}${card.postfix || ''}` |
| | | if (card.eval === 'false' && /\s/ig.test(val)) { |
| | | val = val.replace(/\s/ig, ' ') |
| | | val = <span dangerouslySetInnerHTML={{__html: val}}></span> |
| | | } |
| | | } |
| | | |
| | | if (card.marks) { |