refactor: 富文本条件样式调整

This commit is contained in:
wangjiahao
2026-05-25 18:05:32 +09:00
parent 74ddf77b5a
commit 93698216c4

View File

@@ -2354,3 +2354,201 @@ export function drawImage() {
}))
}
}
export function mappingColorCustom(value, defaultColor, field, type, filedValueMap?, rowData?) {
let color = null
let hitCondition = null
for (let i = 0; i < field.conditions.length; i++) {
let flag = false
const t = field.conditions[i]
let tv, max, min
if (t.type === 'dynamic') {
if (t.term === 'between') {
max = parseFloat(getValue(t.dynamicMaxField, filedValueMap, rowData))
min = parseFloat(getValue(t.dynamicMinField, filedValueMap, rowData))
} else {
tv = getValue(t.dynamicField, filedValueMap, rowData)
}
} else {
if (t.term === 'between') {
min = parseFloat(t.min)
max = parseFloat(t.max)
} else {
tv = t.value
}
}
if (field.field.deType === 2 || field.field.deType === 3 || field.field.deType === 4) {
tv = parseFloat(tv)
if (t.term === 'eq') {
if (value === tv) {
color = t[type]
flag = true
}
} else if (t.term === 'not_eq') {
if (value !== tv) {
color = t[type]
flag = true
}
} else if (t.term === 'lt') {
if (value < tv) {
color = t[type]
flag = true
}
} else if (t.term === 'gt') {
if (value > tv) {
color = t[type]
flag = true
}
} else if (t.term === 'le') {
if (value !== null && value <= tv) {
color = t[type]
flag = true
}
} else if (t.term === 'ge') {
if (value !== null && value >= tv) {
color = t[type]
flag = true
}
} else if (t.term === 'between') {
if (value !== null && min <= value && value <= max) {
color = t[type]
flag = true
}
} else if (t.term === 'default') {
color = t[type]
flag = true
} else if (t.term === 'null') {
if (value === null || value === undefined || value === '') {
color = t[type]
flag = true
}
} else if (t.term === 'not_null') {
if (value !== null && value !== undefined && value !== '') {
color = t[type]
flag = true
}
}
if (flag) {
hitCondition = t
break
} else if (i === field.conditions.length - 1) {
color = defaultColor
}
} else if (field.field.deType === 0 || field.field.deType === 5) {
if (t.term === 'eq') {
if (value === tv) {
color = t[type]
flag = true
}
} else if (t.term === 'not_eq') {
if (value !== tv) {
color = t[type]
flag = true
}
} else if (t.term === 'like') {
if (value.includes(tv)) {
color = t[type]
flag = true
}
} else if (t.term === 'not like') {
if (!value.includes(tv)) {
color = t[type]
flag = true
}
} else if (t.term === 'null') {
if (value === null || value === undefined || value === '') {
color = t[type]
flag = true
}
} else if (t.term === 'not_null') {
if (value !== null && value !== undefined && value !== '') {
color = t[type]
flag = true
}
} else if (t.term === 'default') {
color = t[type]
flag = true
}
if (flag) {
hitCondition = t
break
} else if (i === field.conditions.length - 1) {
color = defaultColor
}
} else {
const fc = field.conditions[i]
if (fc.term === 'null') {
if (value === null && value === undefined && value === '') {
color = fc[type]
flag = true
}
} else if (fc.term === 'not_null') {
if (value !== null && value !== undefined && value !== '') {
color = fc[type]
flag = true
}
}
if (flag) {
hitCondition = fc
break
}
// time
if (!tv || !value) {
break
}
tv = new Date(tv.replace(/-/g, '/') + ' GMT+8').getTime()
const v = new Date(value.replace(/-/g, '/') + ' GMT+8').getTime()
if (fc.term === 'eq') {
if (v === tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'not_eq') {
if (v !== tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'lt') {
if (v < tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'gt') {
if (v > tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'le') {
if (v <= tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'ge') {
if (v >= tv) {
color = fc[type]
flag = true
}
} else if (fc.term === 'default') {
color = fc[type]
flag = true
}
if (flag) {
hitCondition = fc
break
} else if (i === field.conditions.length - 1) {
color = defaultColor
}
}
}
if (hitCondition && hitCondition.target === 'custom') {
return {
targetFieldId: hitCondition.targetFieldId,
color
}
} else {
return {
targetFieldId: field.fieldId,
color
}
}
}