From 05eada1e66951fbb4d388518206c6f5adc93841c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 15 三月 2024 22:09:20 +0800 Subject: [PATCH] 2024-03-15 --- src/tabviews/custom/components/share/normalTable/index.jsx | 109 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 57 insertions(+), 52 deletions(-) diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx index 66f8c96..3ab8096 100644 --- a/src/tabviews/custom/components/share/normalTable/index.jsx +++ b/src/tabviews/custom/components/share/normalTable/index.jsx @@ -20,6 +20,60 @@ '5:1': '20%', '6:1': '16.67%', '7:1': '14.29%', '8:1': '12.5%', '9:1': '11.11%', '10:1': '10%', '3:4': '133.33%', '2:3': '150%', '9:16': '177.78%' } + +// 瀛楁閫忚 +const triggerLink = (e, item, record) => { + e.stopPropagation() + + if (item.linkThdMenu) { + let __param = { + $searchkey: item.field, + $searchval: record[item.field] || '', + $BID: record.$$uuid + } + + if (item.linkThdMenu.urlFields) { + let lower = {} + Object.keys(record).forEach(key => { + lower[key.toLowerCase()] = record[key] + }) + + item.linkThdMenu.urlFields.split(',').forEach(field => { + __param[field] = lower[field.toLowerCase()] || '' + }) + } else if (item.linkfields && item.linkfields.length > 0) { + item.linkfields.forEach(field => { + __param[field] = record[field] || '' + }) + } + + let tabmenu = item.linkThdMenu + + tabmenu.param = __param + + MKEmitter.emit('modifyTabs', tabmenu, true) + } else if (item.linkurl) { + let src = item.linkurl + + let con = '?' + + if (/\?/ig.test(src)) { + con = '&' + } + + if (item.linkfields && item.linkfields.length > 0) { + item.linkfields.forEach(field => { + if (field.toLowerCase() === 'id') return + con += `${field}=${record[field] || ''}&` + }) + } + + src = src + `${con}id=${record.$$uuid}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` + + window.open(src) + } +} + class BodyRow extends React.Component { shouldComponentUpdate (nextProps, nextState) { return !is(fromJS(this.props.data), fromJS(nextProps.data)) || this.props.className !== nextProps.className @@ -107,7 +161,7 @@ } render() { - let { col, config, record, className, style, triggerLink, ...resProps } = this.props + let { col, config, record, className, style, ...resProps } = this.props if (!col) return (<td {...resProps} className={className} style={style}/>) @@ -169,10 +223,7 @@ resProps.children = content if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - style = style || {} - style.cursor = 'pointer' - - return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>) + return (<td {...resProps} className={className + ' clickable'} onClick={(e) => triggerLink(e, col, record)} style={style}/>) } } else if (col.type === 'number') { let content = '' @@ -243,10 +294,7 @@ resProps.children = content if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - style = style || {} - style.cursor = 'pointer' - - return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>) + return (<td {...resProps} className={className + ' clickable'} onClick={(e) => triggerLink(e, col, record)} style={style}/>) } } else if (col.type === 'picture') { let photos = '' @@ -528,7 +576,6 @@ record, col: item, config: item.type === 'custom' ? {setting, columns: fields} : null, - triggerLink: this.triggerLink }) } } @@ -802,48 +849,6 @@ MKEmitter.emit('resetSelectLine', MenuID, '', '') MKEmitter.emit('syncBalconyData', MenuID, [], false) - } - } - - // 瀛楁閫忚 - triggerLink = (item, record) => { - let __param = { - $searchkey: item.field, - $searchval: record[item.field] || '', - $BID: record.$$uuid - } - - if (item.linkfields && item.linkfields.length > 0) { - item.linkfields.forEach(field => { - __param[field] = record[field] || '' - }) - } - - if (item.linkThdMenu) { - let tabmenu = item.linkThdMenu - - tabmenu.param = __param - - MKEmitter.emit('modifyTabs', tabmenu, true) - } else if (item.linkurl) { - let src = item.linkurl - - let con = '?' - - if (/\?/ig.test(src)) { - con = '&' - } - - if (item.linkfields && item.linkfields.length > 0) { - item.linkfields.forEach(field => { - if (field.toLowerCase() === 'id') return - con += `${field}=${record[field] || ''}&` - }) - } - - src = src + `${con}id=${record.$$uuid}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` - - window.open(src) } } -- Gitblit v1.8.0