| | |
| | | const FuncMegvii = asyncComponent(() => import('@/tabviews/zshare/actionList/funcMegvii')) |
| | | const FuncZip = asyncComponent(() => import('@/tabviews/zshare/actionList/funczip')) |
| | | const ExportPdf = asyncComponent(() => import('@/tabviews/zshare/actionList/exportPdf')) |
| | | const ShareLink = asyncComponent(() => import('@/tabviews/zshare/actionList/shareLink')) |
| | | const FuncButton = asyncComponent(() => import('@/tabviews/zshare/actionList/funcbutton')) |
| | | const EditLine = asyncComponent(() => import('@/tabviews/zshare/actionList/editLine')) |
| | | const BarCode = asyncComponent(() => import('@/components/barcode')) |
| | | const QrCode = asyncComponent(() => import('@/components/qrcode')) |
| | |
| | | if (card.linkType === 'linkmenu') { |
| | | if (card.linkThdMenu) { |
| | | let __param = { |
| | | $BID: data.$$uuid |
| | | $BID: data.$$uuid || '' |
| | | } |
| | | |
| | | if (card.field) { |
| | |
| | | __param.$searchval = data[card.field] || '' |
| | | } |
| | | |
| | | if (card.joint === 'true' && card.linkThdMenu.urlFields) { |
| | | let lower = {} |
| | | Object.keys(data).forEach(key => { |
| | | lower[key.toLowerCase()] = data[key] |
| | | }) |
| | | |
| | | card.linkThdMenu.urlFields.split(',').forEach(field => { |
| | | __param[field] = lower[field.toLowerCase()] || '' |
| | | }) |
| | | } |
| | | Object.keys(data).forEach(key => { |
| | | if (/^\$/.test(key)) return |
| | | if (key === 'children') return |
| | | __param[key] = data[key] |
| | | }) |
| | | |
| | | let tabmenu = card.linkThdMenu |
| | | |
| | |
| | | // }) |
| | | // return |
| | | // } |
| | | |
| | | if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar|.ppt)$/i.test(url)) { |
| | | let name = url.replace(/.+\//g, '').replace(/\.{1}[^.]*$/g, '') |
| | | |
| | | if (/^(http|\/\/).+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar|.ppt)$/i.test(url) || card.linkType === 'download') { |
| | | let name = '' |
| | | if (card.datatype === 'static') { |
| | | name = card.value || '' |
| | | } else if (data.hasOwnProperty(card.field)) { |
| | | name = data[card.field] + '' |
| | | } |
| | | name = name.replace(/\.{1}[^.]*$/g, '') |
| | | name = name ? name + url.replace(/.+\./g, '.') : '' |
| | | |
| | | let d = document.createElement('a') |
| | | d.href = url |
| | | d.setAttribute('download', name) |
| | |
| | | d.click() |
| | | d.remove() |
| | | } else { |
| | | let Id = data.$$uuid || '' |
| | | |
| | | if (cards.subtype === 'propcard' && cardCell) { |
| | | Id = cardCell.setting.primaryId || '' |
| | | } |
| | | |
| | | if (card.joint === 'true') { |
| | | let Id = '' |
| | | |
| | | if (cards.subtype === 'propcard' && cardCell) { |
| | | Id = cardCell.setting.primaryId || '' |
| | | } else { |
| | | Id = data[cards.setting.primaryKey] || '' |
| | | } |
| | | |
| | | let con = '?' |
| | | |
| | | if (/\?/ig.test(url)) { |
| | |
| | | } |
| | | |
| | | url = url + `${con}id=${Id}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` |
| | | } else if (/@/.test(url)) { |
| | | url = url.replace(/@id@/ig, Id) |
| | | url = url.replace(/@appkey@/ig, window.GLOB.appkey) |
| | | url = url.replace(/@userid@/ig, sessionStorage.getItem('UserID')) |
| | | url = url.replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID')) |
| | | |
| | | Object.keys(data).forEach(key => { |
| | | if (/^\$/.test(key)) return |
| | | if (key === 'children') return |
| | | let reg = new RegExp('@' + key + '@', 'ig') |
| | | url = url.replace(reg, data[key]) |
| | | }) |
| | | } |
| | | |
| | | window.open(url) |
| | |
| | | })()) |
| | | } |
| | | } |
| | | |
| | | if (card.noVField && !data[card.noVField]) { |
| | | val = '' |
| | | } |
| | | } else if (data.hasOwnProperty(card.field)) { |
| | | val = data[card.field] + '' |
| | | } |
| | |
| | | url = data[card.linkurl] |
| | | } |
| | | |
| | | if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar)$/i.test(url)) { |
| | | if (/^(http|\/\/).+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar)$/i.test(url)) { |
| | | if (/pdf$/i.test(url)) { |
| | | val = <><img src="./media/pdf.png" className="file-image" alt=""/> {val}</> |
| | | } else if (/(.doc|.docx)$/i.test(url)) { |
| | |
| | | } |
| | | if (card.format === 'percent') { |
| | | val = val * 100 |
| | | if (!card.round) { |
| | | val = +val.toFixed(2) |
| | | } |
| | | } else if (card.format === 'abs') { |
| | | val = Math.abs(val) |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | let _style = {...card.style} |
| | | |
| | | if (card.marks) { |
| | | let _s = {} |
| | | getMark(card.marks, data, _s) |
| | | |
| | | if (_s.color) { |
| | | _style.color = _s.color |
| | | } |
| | | } |
| | | |
| | | if (card.tipType === 'text') { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={card.style}> |
| | | <div style={_style}> |
| | | {val ? <Tooltip title={val}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}}>{icon}</div> |
| | | </Tooltip> : <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}}>{icon}</div>} |
| | |
| | | } else { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={card.style}> |
| | | <div style={_style}> |
| | | {val ? <Tooltip title={val}> |
| | | <MkIcon className="ant-mk-icon" style={{height: card.innerHeight}} type={icon}/> |
| | | </Tooltip> : <MkIcon className="ant-mk-icon" style={{height: card.innerHeight}} type={icon}/>} |
| | |
| | | } |
| | | } else { |
| | | url = data[card.field] || '' |
| | | url = url.replace(/@mywebsite@\//ig, window.GLOB.baseurl) |
| | | } |
| | | |
| | | if (url === '' && card.noValue === 'hide') { // 空值隐藏 |
| | |
| | | _data = [data] |
| | | } |
| | | |
| | | let _val = card.formula |
| | | if (/@username@|@fullName@|@bid@/ig.test(_val)) { |
| | | _val = _val.replace(/@username@/ig, sessionStorage.getItem('User_Name') || '').replace(/@fullName@/ig, sessionStorage.getItem('Full_Name') || '').replace(/@bid@/ig, data.$$BID || '') |
| | | } |
| | | |
| | | try { |
| | | // eslint-disable-next-line |
| | | let func = new Function('data', card.formula) |
| | | let func = new Function('data', _val) |
| | | val = func(_data) |
| | | } catch (e) { |
| | | console.warn(e) |
| | | val = '' |
| | | } |
| | | |
| | | if (!val && card.noValue === 'hide') { // 空值隐藏 |
| | | return null |
| | | } else if (typeof(val) === 'object' && val.type === 'linkmenu') { |
| | | // type: 'linkmenu', linkThdMenu: null, menuId: '', value: ``, defaultValue: '', onclick: 'inner' |
| | | let item = {linkType: 'linkmenu', linkThdMenu: val.linkThdMenu} |
| | | let _val_ = val.value || '' |
| | | |
| | | if (!item.linkThdMenu && val.menuId) { |
| | | item.linkThdMenu = window.GLOB.mkThdMenus.get(val.menuId) || '' |
| | | } |
| | | if (!item.linkThdMenu && val.defaultValue) { |
| | | _val_ = val.defaultValue |
| | | } |
| | | |
| | | if (val.onclick === 'inner') { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}}> |
| | | <span onClick={(e) => {this.openNewView(e, item)}} dangerouslySetInnerHTML={{__html: _val_}}></span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | } else { |
| | | _style.cursor = 'pointer' |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style} onClick={(e) => {this.openNewView(e, item)}}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}} dangerouslySetInnerHTML={{__html: _val_}}></div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } else { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}} dangerouslySetInnerHTML={{__html: val}}></div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | return |
| | | } else if (card.$sync) { |
| | | if (card.eval === 'false') { |
| | | val = '' |
| | |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | console.info(_val) |
| | | window.mkInfo(_val) |
| | | console.warn(e) |
| | | _val = 0 |
| | | } |
| | |
| | | val = '' |
| | | } else if (data) { |
| | | let _val = card.formula |
| | | let _data = {} |
| | | Object.keys(data).forEach(key => { |
| | | if (/^\$/.test(key)) return |
| | | if (key === 'children') return |
| | | if (/^1949-10-01/.test(data[key])) { |
| | | _data[key.toLowerCase()] = '' |
| | | } else if (/\d{4}-\d{2}-\d{2}\s00:00:00/.test(data[key])) { |
| | | _data[key.toLowerCase()] = data[key].replace(/\s00:00:00/g, '') |
| | | } else { |
| | | _data[key.toLowerCase()] = data[key] |
| | | } |
| | | }) |
| | | _data.username = sessionStorage.getItem('User_Name') || '' |
| | | _data.fullname = sessionStorage.getItem('Full_Name') || '' |
| | | _data.bid = data.$$BID || '' |
| | | |
| | | if (card.eval === 'false' && card.noValue === 'hide') { // 空值隐藏 |
| | | if (card.$keys) { |
| | | let empty = true |
| | | |
| | | card.$keys.forEach(key => { |
| | | if (!_data.hasOwnProperty(key)) { |
| | | empty = false |
| | | } else if (_data[key]) { |
| | | empty = false |
| | | } |
| | | }) |
| | | |
| | | if (empty) return null |
| | | } |
| | | |
| | | Object.keys(_data).forEach(key => { |
| | | if (_data[key]) return |
| | | |
| | | _val = _val.replace(new RegExp('[^@]*@' + key + '@', 'ig'), '') |
| | | }) |
| | | |
| | | if (!_val) return null |
| | | } |
| | | |
| | | Object.keys(_data).forEach(key => { |
| | | let reg = new RegExp('@' + key + '@', 'ig') |
| | | _val = _val.replace(reg, data[key]) |
| | | _val = _val.replace(reg, _data[key]) |
| | | }) |
| | | |
| | | if (card.eval !== 'false') { |
| | |
| | | // eslint-disable-next-line |
| | | _val = eval(_val) |
| | | } catch (e) { |
| | | console.info(_val) |
| | | window.mkInfo(_val) |
| | | console.warn(e) |
| | | _val = '' |
| | | } |
| | |
| | | |
| | | if (!val && card.noValue === 'hide') { // 空值隐藏 |
| | | return null |
| | | } else if (card.eval === 'func') { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight}} dangerouslySetInnerHTML={{__html: val}}></div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | return |
| | | } |
| | | |
| | | if (card.round && typeof(val) === 'number') { |
| | |
| | | |
| | | if (val !== '') { |
| | | if (val && typeof(val) === 'string') { |
| | | val = val.replace(/\n/ig, '<br/>') |
| | | if (!/<(span|div|p|a|img)\s/g.test(val)) { |
| | | if (!card.evalchars || card.evalchars.includes('enter')) { |
| | | val = val.replace(/\\n|\n/ig, '<br/>') |
| | | } |
| | | if ((!card.evalchars || card.evalchars.includes('space')) && !/<(span|div|p|a|img)\s/g.test(val)) { |
| | | val = val.replace(/\s/ig, ' ') |
| | | } |
| | | |
| | |
| | | className = mark.signType |
| | | } |
| | | |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> : |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>} |
| | | if (card.link && !data.$disabled) { |
| | | _style.cursor = 'pointer' |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style} onClick={(e) => {this.openNewView(e, card)}}> |
| | | {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> : |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | ) |
| | | ) |
| | | } else { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> : |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>} |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } else if (card.eleType === 'tag') { |
| | | let vals = '' |
| | | |
| | | if (card.datatype === 'static') { |
| | | vals = card.value |
| | | } else { |
| | | vals = data[card.field] || '' |
| | | } |
| | | |
| | | if (!vals && card.noValue === 'hide') { // 空值隐藏 |
| | | return null |
| | | } |
| | | |
| | | vals = vals.split(',').filter(Boolean) |
| | | |
| | | if (card.signs) { |
| | | vals = vals.map(val => { |
| | | let sign = card.signs.filter(s => s.value === val)[0] |
| | | let cell = {value: val, style: {...card.style}} |
| | | |
| | | if (sign) { |
| | | cell.style.backgroundColor = sign.background |
| | | cell.style.color = sign.color |
| | | cell.style.borderColor = sign.border |
| | | |
| | | // delete cell.style.borderTopColor |
| | | // delete cell.style.borderBottomColor |
| | | // delete cell.style.borderLeftColor |
| | | // delete cell.style.borderRightColor |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div className="ant-mk-tag"> |
| | | {vals.map((item, index) => <span key={index} className="tag-item" style={item.style}>{item.value}</span>)} |
| | | </div> |
| | | </div> |
| | | ) |
| | | } else { |
| | | contents.push( |
| | | <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> |
| | | <div className="ant-mk-tag"> |
| | | {vals.map((val, index) => <span key={index} className="tag-item" style={card.style}>{val}</span>)} |
| | | </div> |
| | | </div> |
| | | ) |
| | | } |
| | | } else if (card.eleType === 'color') { |
| | | let color = '' |
| | | |
| | |
| | | } else if (data.$$empty) { |
| | | _data = [] |
| | | } |
| | | let name = '' |
| | | if (card.showName) { |
| | | name = data[card.showName] || ' ' |
| | | } |
| | | |
| | | _style_ = _style_ || {} |
| | | if (card.wrapStyle) { |
| | |
| | | } |
| | | |
| | | let MkButton = null |
| | | let lid = (data.$$uuid || '') + (data.$Index || '') |
| | | |
| | | if (['exec', 'prompt', 'pop', 'form'].includes(card.OpenType)) { |
| | | MkButton = <NormalButton |
| | | btn={card} |
| | | name={name} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | MkButton = <ExcelInButton |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | MkButton = <ExcelOutButton |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | } else if (card.OpenType === 'popview') { |
| | | MkButton = <PopupButton |
| | | btn={card} |
| | | name={name} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | } else if (card.OpenType === 'tab') { |
| | | MkButton = <TabButton |
| | | btn={card} |
| | | name={name} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | selectedData={_data} |
| | |
| | | } else if (card.OpenType === 'innerpage') { |
| | | MkButton = <NewPageButton |
| | | btn={card} |
| | | name={name} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | columns={cards.columns} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | selectedData={_data} |
| | |
| | | MkButton = <ChangeUserButton |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | MkButton = <PrintButton |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | MkButton = <FuncMegvii |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | | selectedData={_data} |
| | |
| | | MkButton = <FuncZip |
| | | btn={card} |
| | | BID={data.$$BID} |
| | | LID={lid} |
| | | BData={data.$$BData || ''} |
| | | disabled={_disabled} |
| | | setting={cards.setting} |
| | |
| | | } else if (card.funcType === 'expPdf') { |
| | | MkButton = <ExportPdf |
| | | btn={card} |
| | | /> |
| | | } else if (card.funcType === 'shareLink') { |
| | | MkButton = <ShareLink |
| | | BID={data.$$BID} |
| | | btn={card} |
| | | selectedData={_data} |
| | | LID={lid} |
| | | /> |
| | | } else if (card.funcType === 'addline' || card.funcType === 'delline') { |
| | | MkButton = <EditLine |
| | |
| | | disabled={_disabled} |
| | | selectedData={_data} |
| | | /> |
| | | } else { |
| | | MkButton = <FuncButton |
| | | BID={data.$$BID} |
| | | disabled={_disabled} |
| | | LID={lid} |
| | | btn={card} |
| | | columns={cards.columns} |
| | | selectedData={_data} |
| | | /> |
| | | } |
| | | } |
| | | |