From f9730906ff42d4d2a57a999050dd10b17fe9ee53 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 07 三月 2024 21:05:55 +0800 Subject: [PATCH] 2024-03-07 --- src/tabviews/custom/components/share/normalTable/index.jsx | 85 +++++++++++++++++++++++++----------------- 1 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx index b090fc7..66f8c96 100644 --- a/src/tabviews/custom/components/share/normalTable/index.jsx +++ b/src/tabviews/custom/components/share/normalTable/index.jsx @@ -110,7 +110,7 @@ let { col, config, record, className, style, triggerLink, ...resProps } = this.props if (!col) return (<td {...resProps} className={className} style={style}/>) - + if (col.type === 'text') { let content = '' if (record[col.field] !== undefined) { @@ -124,6 +124,10 @@ content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}` } else if (col.textFormat === 'encryption') { content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> + } + + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' } if (col.textFormat !== 'encryption') { @@ -162,21 +166,22 @@ resProps.rowSpan = record['$$' + col.field] } - if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - content = ( - <div> - <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div> - {content} - </div> - ) - } - 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}/>) + } } else if (col.type === 'number') { let content = '' try { content = parseFloat(record[col.field]) if (isNaN(content)) { + content = '' + } + if (col.noValue === 'hide' && content === 0) { content = '' } } catch (e) { @@ -235,16 +240,14 @@ resProps.rowSpan = record['$$' + col.field] } - if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - content = ( - <div> - <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div> - {content} - </div> - ) - } - 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}/>) + } } else if (col.type === 'picture') { let photos = '' if (record[col.field]) { @@ -268,7 +271,7 @@ <div> {photos.map((url, i) => ( <Col key={i} span={col.span || 24}> - <MkPicture style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/> + <MkPicture lostTip={col.lostTip !== 'false'} style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/> </Col> ))} </div> @@ -352,6 +355,10 @@ // eslint-disable-next-line let func = new Function('data', col.formula) content = func([record]) + + if (col.noValue === 'hide' && content === 0) { + content = '' + } } catch (e) { console.warn(e) content = '' @@ -365,6 +372,10 @@ try { // eslint-disable-next-line content = eval(content) + + if (col.noValue === 'hide' && content === 0) { + content = '' + } } catch (e) { console.info(content) console.warn(e) @@ -499,10 +510,6 @@ } else if (_format && !Math.floor(Math.random() * radio)) { item.blur = true } - - if (item.marks && item.marks.length === 0) { - item.marks = '' - } if (item.field) { orderfields[item.uuid] = item.field @@ -570,6 +577,10 @@ pageOptions = pageOptions.sort((a, b) => a - b) } + if (setting.maxPageSize) { + pageOptions = pageOptions.filter(item => item <= setting.maxPageSize) + } + let allColumns = null if (colsCtrls) { rowspans = null @@ -585,12 +596,6 @@ rowspans, tableId, orderfields - }, () => { - const element = document.getElementById(tableId) - element && element.style.setProperty('--mk-table-border-color', setting.borderColor || '#e8e8e8') - element && element.style.setProperty('--mk-table-color', setting.color || 'rgba(0, 0, 0, 0.65)') - element && element.style.setProperty('--mk-table-font-size', setting.fontSize || '14px') - element && element.style.setProperty('--mk-table-font-weight', setting.fontWeight || 'normal') }) } @@ -657,6 +662,9 @@ result = originVal === contrastVal } else if (item.match === '!=') { result = originVal !== contrastVal + } else if (item.match === 'regexp') { + let reg = new RegExp(item.contrastValue, 'ig') + result = reg.test(originVal) } else { originVal = isNaN(originVal) ? originVal : +originVal contrastVal = isNaN(contrastVal) ? contrastVal : +contrastVal @@ -798,9 +806,7 @@ } // 瀛楁閫忚 - triggerLink = (e, item, record) => { - e.stopPropagation() - + triggerLink = (item, record) => { let __param = { $searchkey: item.field, $searchval: record[item.field] || '', @@ -843,6 +849,8 @@ onSelectChange = (selectedRowKeys, e) => { const { setting, MenuID, data } = this.props + + if (this.state.pickup) return let index = '' let _activeIndex = null @@ -1073,7 +1081,7 @@ render() { const { setting, statFValue, lineMarks, data } = this.props - const { selectedRowKeys, activeIndex, pickup, tableId, pageOptions, columns, reseting } = this.state + const { selectedRowKeys, activeIndex, pickup, pageOptions, columns, reseting } = this.state if (reseting) return null @@ -1143,8 +1151,15 @@ } } + let style = { + '--mk-table-border-color': setting.borderColor || '#e8e8e8', + '--mk-table-color': setting.color || 'rgba(0, 0, 0, 0.65)', + '--mk-table-font-size': setting.fontSize || '14px', + '--mk-table-font-weight': setting.fontWeight || 'normal' + } + return ( - <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} id={tableId}> + <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}> {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ? <Switch title="鏀惰捣" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" checked={pickup} onChange={this.pickupChange} /> : null } -- Gitblit v1.8.0