| | |
| | | ) |
| | | } else if (item.type === 'colspan') { |
| | | if (item.subColumn.length === 0) return '' |
| | | let ordertype = item.order |
| | | let contents = [] |
| | | let images = [] |
| | | |
| | | let contents = item.subColumn.map(col => { |
| | | let content = '' |
| | | if (col.type === 'text' || col.type === 'textarea') { |
| | | if (col.field && record.hasOwnProperty(col.field)) { |
| | | content = `${record[col.field]}` |
| | | } |
| | | item.subColumn.forEach(col => { |
| | | if (!col.field || !record.hasOwnProperty(col.field)) return |
| | | |
| | | if (col.type === 'number' && typeof(record[col.field]) === 'number') { |
| | | let content = record[col.field] |
| | | |
| | | content = (col.prefix || '') + content + (col.postfix || '') |
| | | } else if (col.type === 'number') { |
| | | if (col.field && record.hasOwnProperty(col.field)) { |
| | | content = +record[col.field] |
| | | } |
| | | if (content && col.format === 'thdSeparator') { |
| | | if (col.format === 'thdSeparator') { |
| | | content = `${content}` |
| | | content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') |
| | | } |
| | | content = (col.prefix || '') + content + (col.postfix || '') |
| | | } else if (col.type === 'picture') { |
| | | let photos = '' |
| | | if (col.field && record.hasOwnProperty(col.field)) { |
| | | photos = record[col.field].split(',') |
| | | } else { |
| | | photos = '' |
| | | } |
| | | content = <div className="picture-col"> |
| | | {photos && photos.map((url, i) => { |
| | | return <img key={`${i}`} src={url} alt=""/> |
| | | })} |
| | | </div> |
| | | } |
| | | |
| | | return content |
| | | content = (col.prefix || '') + content + (col.postfix || '') |
| | | |
| | | contents.push(content) |
| | | } else if (col.type === 'picture') { |
| | | let photos = [] |
| | | try { |
| | | photos = record[col.field].split(',') |
| | | } catch { |
| | | photos = [] |
| | | } |
| | | |
| | | images.push(...photos) |
| | | } else { |
| | | contents.push((col.prefix || '') + record[col.field] + (col.postfix || '')) |
| | | } |
| | | }) |
| | | |
| | | if (contents && item.order === 'vertical2') { |
| | | let _contents = [] |
| | | for(let i = 0; i < contents.length; i += 2) { |
| | | _contents.push(contents.slice(i, i + 2).join(' ')) |
| | | } |
| | | contents = _contents |
| | | if (images.length > 0 && ['vertical2', 'horizontal', 'vertical'].includes(ordertype)) { |
| | | ordertype = 'topPicBottomText' |
| | | } |
| | | |
| | | return ( |
| | | <div> |
| | | <div className="content" style={{ minWidth: (item.Width || 120) + 'px' }}> |
| | | {contents && item.order === 'vertical' && contents.map((content, index) => { |
| | | {this.getCospanContent(ordertype, contents, images)} |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | getCospanContent = (type, contents, images) => { |
| | | if (type === 'vertical') { |
| | | return contents.map((content, index) => { |
| | | return (<p key={index}>{content}</p>) |
| | | }) |
| | | } else if (type === 'horizontal') { |
| | | return contents.map((content, index) => { |
| | | return (<span key={index}>{content}</span>) |
| | | }) |
| | | } else if (type === 'vertical2') { |
| | | return ( |
| | | <div className="content-fence"> |
| | | <div className="content-fence-left"> |
| | | {contents.map((content, index) => { |
| | | if (index % 2 === 0) { |
| | | return (<p key={index}>{content}</p>) |
| | | } else { |
| | | return '' |
| | | } |
| | | })} |
| | | </div> |
| | | <div className="content-fence-right"> |
| | | {contents.map((content, index) => { |
| | | if (index % 2 === 1) { |
| | | return (<p key={index}>{content}</p>) |
| | | } else { |
| | | return '' |
| | | } |
| | | })} |
| | | </div> |
| | | </div> |
| | | ) |
| | | } else if (type === 'topPicBottomText') { |
| | | return ( |
| | | <div className="content-fence"> |
| | | <div className="content-fence-top"> |
| | | {images.map((url, index) => { |
| | | return (<img key={`${index}`} src={url} alt=""/>) |
| | | })} |
| | | {images.map((url, index) => { |
| | | return (<img key={`${index}`} src={url} alt=""/>) |
| | | })} |
| | | </div> |
| | | <div className="content-fence-bottom"> |
| | | {contents.map((content, index) => { |
| | | return (<p key={index}>{content}</p>) |
| | | })} |
| | | {contents && item.order === 'vertical2' && contents.map((content, index) => { |
| | | return (<p key={index}>{content}</p>) |
| | | </div> |
| | | </div> |
| | | ) |
| | | } else if (type === 'leftPicRightText') { |
| | | return ( |
| | | <div className="content-fence"> |
| | | <div className="content-fence-left"> |
| | | {images.map((url, index) => { |
| | | return (<img key={`${index}`} src={url} alt=""/>) |
| | | })} |
| | | {contents && item.order === 'horizontal' && contents.map((content, index) => { |
| | | return (<span key={index}>{content}</span>) |
| | | </div> |
| | | <div className="content-fence-right"> |
| | | {contents.map((content, index) => { |
| | | return (<p key={index}>{content}</p>) |
| | | })} |
| | | </div> |
| | | </div> |