king
2023-08-10 ac1d52c46ff9019fcc93cf3d5e7ab17cf850824e
src/menu/components/share/markcomponent/index.jsx
@@ -1,7 +1,7 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { fromJS } from 'immutable'
import { Modal, Col } from 'antd'
import { Modal, Col, notification } from 'antd'
import { AntDesignOutlined } from '@ant-design/icons'
import Utils from '@/utils/utils.js'
@@ -32,8 +32,31 @@
        dataIndex: 'field',
        width: '16%',
        editable: true,
        unique: true,
        uniqueFunc: (data, item) => {
          let index = data.findIndex(mark => mark.uuid !== item.uuid && mark.contrastValue === item.contrastValue && mark.match === item.match && mark.field.join('') === item.field.join(''))
          if (index > -1) {
            notification.warning({
              top: 92,
              message: '此标记已存在!',
              duration: 5
            })
            return false
          }
          return true
        },
        inputType: 'cascader',
        options: [],
        rules: [{
          validator: (rule, value, callback) => {
            if (value[1] === 'dynamic' && value[0] === value[2]) {
              callback('对比字段不可相同!')
            } else {
              callback()
            }
          }
        }],
        render: text => {
          return (
            <div>{text[0]}  VS  {text[2] ? text[2] : '静态值'}</div>
@@ -109,18 +132,24 @@
  markChange = (values) => {
    let _marks = fromJS(this.state.marks).toJS()
    if (values.uuid) {
      _marks = _marks.map(item => {
        if (item.uuid === values.uuid) {
          return values
        } else {
          return item
        }
    let has = false
    _marks.forEach(mark => {
      if (mark.contrastValue === values.contrastValue && mark.match === values.match && mark.field.join('') === values.field.join('')) {
        has = true
      }
    })
    if (has) {
      notification.warning({
        top: 92,
        message: '此标记已存在!',
        duration: 5
      })
    } else {
      values.uuid = Utils.getuuid()
      _marks.push(values)
      return
    }
    values.uuid = Utils.getuuid()
    _marks.push(values)
    this.setState({
      marks: _marks
@@ -310,6 +339,11 @@
          item.fontColor = ''
        }
      }
      if (item.contrastValue) {
        item.contrastValue = item.contrastValue.replace(/\t+|\v+|\s+/g, '')
      }
      if (val && item.contrastValue === val) {
        save = true
      }