| | |
| | | } else if (card.eleType === 'formula') { |
| | | let val = 0 |
| | | let _style = {...card.style} |
| | | |
| | | if (card.eval === 'func') { |
| | | let _data = [] |
| | | if (card.$sync) { |
| | | _data = this.props.syncData |
| | | } else if (data && !data.$$empty) { |
| | | _data = [data] |
| | | } |
| | | |
| | | if (card.$sync) { |
| | | try { |
| | | // eslint-disable-next-line |
| | | let func = new Function('data', card.formula) |
| | | val = func(_data) |
| | | } catch (e) { |
| | | if (window.debugger) { |
| | | console.warn(e) |
| | | } |
| | | val = '' |
| | | } |
| | | } else if (card.$sync) { |
| | | if (card.eval === 'false') { |
| | | val = '' |
| | | } |
| | |
| | | val = val.toFixed(card.decimal) |
| | | } |
| | | |
| | | if (val !== '') { |
| | | if (card.eval === 'func') { |
| | | val = <span dangerouslySetInnerHTML={{__html: val}}></span> |
| | | } else if (val !== '') { |
| | | if (val && typeof(val) === 'string') { |
| | | val = val.replace(/\n/ig, '<br/>') |
| | | if (!/<(span|div|p|a|img)\s/g.test(val)) { |