From a06655e10f4242c350a3450c6c21e77f33302e2e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 27 十一月 2020 22:09:04 +0800 Subject: [PATCH] 2020-11-27 --- src/tabviews/zshare/normalTable/index.jsx | 154 ++++++++++++++++++++++----------------------------- 1 files changed, 67 insertions(+), 87 deletions(-) diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx index bfe9cc6..73ab9d6 100644 --- a/src/tabviews/zshare/normalTable/index.jsx +++ b/src/tabviews/zshare/normalTable/index.jsx @@ -56,7 +56,6 @@ imgShow: false, // 鍥剧墖鏀惧ぇ妯℃�佹 imgSrc: '', // 鍥剧墖璺緞 lineMarks: null, // 琛屾爣璁� - colMap: null, // 鍒椾俊鎭紙鍏ㄩ儴锛� activeIndex: null, // 鏍囪褰撳墠閫変腑琛� rowspan: null // 琛屽悎骞跺瓧娈典俊鎭� } @@ -66,7 +65,6 @@ let columns = JSON.parse(JSON.stringify(this.props.columns)) let lineMarks = [] let _columns = [] - let colMap = new Map() // 鐢ㄤ簬鑾峰彇瀛楁淇℃伅 let radio = 5 // 铏氬寲姣斾緥 let _format = false // 鏄惁铏氬寲澶勭悊 let rowspan = null @@ -81,10 +79,15 @@ } } + // 鑾峰彇琛屾爣璁� config.columns.forEach(col => { if (!col.field) return - colMap.set(col.field, col) + col.marks && col.marks.forEach(mark => { + if (mark.signType === 'line') { + lineMarks.push(mark) + } + }) }) columns.forEach((item, index) => { @@ -94,31 +97,8 @@ item.blur = true } - if (item.marks) { - item.marks = item.marks.filter(mark => { - let originField = colMap.get(mark.field) - let contrastField = mark.contrastType === 'dynamic' ? colMap.get(mark.contrastField) : '' - - if (!originField || (mark.contrastType === 'dynamic' && !contrastField)) return false - if (contrastField && originField.type !== contrastField.type) return false - if (mark.contrastType === 'static') { - if (originField.type === 'text' && typeof(mark.contrastValue) === 'number') { - return false - } else if (originField.type === 'number' && typeof(mark.contrastValue) === 'string') { - return false - } else if (!['number', 'text'].includes(originField.type)) { - return false - } - } - - if (mark.signType === 'line') { - lineMarks.push(mark) - return false - } else if (mark.signType === 'card') { - return false - } - return true - }) + if (item.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 + item.marks = item.marks.filter(mark => mark.signType !== 'line' && mark.signType !== 'card') if (item.marks.length === 0) { item.marks = '' @@ -134,6 +114,14 @@ if (col.rowspan === 'true') { rowspan = col + } + + if (col.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 + col.marks = col.marks.filter(mark => mark.signType !== 'line' && mark.signType !== 'card') + + if (col.marks.length === 0) { + col.marks = '' + } } cell.children.push({ @@ -179,7 +167,6 @@ columns: _columns, pageSize: pageSize ? pageSize : 10, lineMarks: lineMarks, - colMap: colMap, rowspan: rowspan }) } @@ -271,54 +258,48 @@ } getMark = (record, marks) => { - const { colMap } = this.state let className = '' let isIcon = false let position = 'back' let icon = '' marks.some(mark => { - let originField = colMap.get(mark.field) - - if (!originField) return false - - let originType = originField.type || 'text' - - let originVal = record.hasOwnProperty(mark.field) ? record[mark.field] : '' + let originVal = record[mark.field] + '' let contrastVal = '' if (mark.contrastType === 'static') { - contrastVal = mark.contrastValue + contrastVal = mark.contrastValue + '' } else { - contrastVal = record.hasOwnProperty(mark.contrastField) ? record[mark.contrastField] : '' + contrastVal = record[mark.contrastField] + '' } - if (originType === 'text') { - originVal = '' + originVal - contrastVal = '' + contrastVal - } else if (originType === 'number' && originVal !== '' && contrastVal !== '') { + if (mark.match === '=') { + className = originVal === contrastVal ? mark.color[1] : '' + } else if (mark.match === '!=') { + className = originVal !== contrastVal ? mark.color[1] : '' + } else if (mark.match === 'like') { + className = originVal.indexOf(contrastVal) > -1 ? mark.color[1] : '' + } else if (mark.match === '>') { try { originVal = parseFloat(originVal) contrastVal = parseFloat(contrastVal) - if (isNaN(originVal) || isNaN(contrastVal)) { - originVal = '' - } } catch { - originVal = '' + originVal = NaN } - } - if (originVal === '' || contrastVal === '') return false + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal > contrastVal) { + className = mark.color[1] + } + } else if (mark.match === '<') { + try { + originVal = parseFloat(originVal) + contrastVal = parseFloat(contrastVal) + } catch { + originVal = NaN + } - if (mark.match === '=' && originVal === contrastVal) { - className = mark.color[1] - } else if (mark.match === '!=' && originVal !== contrastVal) { - className = mark.color[1] - } else if (mark.match === 'like' && originVal.indexOf(contrastVal) > -1) { - className = mark.color[1] - } else if (mark.match === '>' && originVal > contrastVal) { - className = mark.color[1] - } else if (mark.match === '<' && originVal < contrastVal) { - className = mark.color[1] + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal < contrastVal) { + className = mark.color[1] + } } if (!className) return false @@ -999,7 +980,7 @@ render() { const { setting, pickup, statFValue } = this.props - const { selectedRowKeys, lineMarks, colMap, activeIndex, rowspan } = this.state + const { selectedRowKeys, lineMarks, activeIndex, rowspan } = this.state // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙�� let rowSelection = null @@ -1112,43 +1093,42 @@ if (lineMarks.length === 0) return className lineMarks.some(mark => { - let originType = colMap.get(mark.field).type - - let originVal = record.hasOwnProperty(mark.field) ? record[mark.field] : '' + let originVal = record[mark.field] + '' let contrastVal = '' if (mark.contrastType === 'static') { - contrastVal = mark.contrastValue + contrastVal = mark.contrastValue + '' } else { - contrastVal = record.hasOwnProperty(mark.contrastField) ? record[mark.contrastField] : '' + contrastVal = record[mark.contrastField] + '' } - if (originType === 'text') { - originVal = '' + originVal - contrastVal = '' + contrastVal - } else if (originType === 'number' && originVal !== '' && contrastVal !== '') { + if (mark.match === '=') { + className = originVal === contrastVal ? 'background ' + mark.color[1] : '' + } else if (mark.match === '!=') { + className = originVal !== contrastVal ? 'background ' + mark.color[1] : '' + } else if (mark.match === 'like') { + className = originVal.indexOf(contrastVal) > -1 ? 'background ' + mark.color[1] : '' + } else if (mark.match === '>') { try { originVal = parseFloat(originVal) contrastVal = parseFloat(contrastVal) - if (isNaN(originVal) || isNaN(contrastVal)) { - originVal = '' - } } catch { - originVal = '' + originVal = NaN } - } - - if (originVal === '' || contrastVal === '') return false - - if (mark.match === '=' && originVal === contrastVal) { - className = 'background ' + mark.color[1] - } else if (mark.match === '!=' && originVal !== contrastVal) { - className = 'background ' + mark.color[1] - } else if (mark.match === 'like' && originVal.indexOf(contrastVal) > -1) { - className = 'background ' + mark.color[1] - } else if (mark.match === '>' && originVal > contrastVal) { - className = 'background ' + mark.color[1] - } else if (mark.match === '<' && originVal < contrastVal) { - className = 'background ' + mark.color[1] + + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal > contrastVal) { + className = 'background ' + mark.color[1] + } + } else if (mark.match === '<') { + try { + originVal = parseFloat(originVal) + contrastVal = parseFloat(contrastVal) + } catch { + originVal = NaN + } + + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal < contrastVal) { + className = 'background ' + mark.color[1] + } } if (!className) return false -- Gitblit v1.8.0