king
2021-12-20 e6a10ced1ed8db39486dc0a1795191c701ef3224
src/menu/components/share/markcomponent/index.jsx
@@ -13,6 +13,7 @@
import '@/assets/css/table.scss'
const EditTable = asyncComponent(() => import('@/templates/zshare/editTable'))
const { confirm } = Modal
class MarkColumn extends Component {
  static propTpyes = {
@@ -81,15 +82,17 @@
        options: [],
        render: text => {
          let sign = {
            'font': '文字颜色',
            'font': '文字',
            'background': '背景',
            'underline': '下划线',
            'line-through': '中划线',
            'icon': '图标'
            'icon': '图标',
            'iconfront': '图标',
            'iconback': '图标',
          }
          return (
            <div>{sign[text[0]]} {text[3] ? <Icon type={text[3]} /> : null}</div>
            <div>{sign[text[0]]} {text[2] ? <Icon type={text[text.length - 1]} /> : null}</div>
          )
        }
      }
@@ -128,8 +131,11 @@
  resetMark = () => {
    const { marks, columns, type } = this.props
    let markColumns = fromJS(this.state.markColumns).toJS()
    let _columns = fromJS(columns).toJS()
    let options = columns.map(col => {
    _columns.unshift({field: '$Index', label: '序号'})
    let options = _columns.map(col => {
      return {
        value: col.field,
        label: col.label,
@@ -142,7 +148,7 @@
          {
            value: 'dynamic',
            label: '动态值',
            children: columns.map(cell => {
            children: _columns.map(cell => {
              return {
                value: cell.field,
                label: cell.label
@@ -195,16 +201,6 @@
        })
      },
      {
        value: 'trademark',
        label: '品牌和标识',
        children: minkeIconSystem.trademark.map(cell => {
          return {
            value: cell,
            label: (<Icon type={cell} />)
          }
        })
      },
      {
        value: 'normal',
        label: '网站通用图标',
        children: minkeIconSystem.normal.map(cell => {
@@ -218,7 +214,7 @@
    let signs = [
      {
        value: 'font',
        label: '文字颜色'
        label: '文字'
      },
      {
        value: 'background',
@@ -233,24 +229,18 @@
        label: '中划线'
      },
      {
        value: 'icon',
        label: '图标',
        children: [
          {
            value: 'front',
            label: '内容前',
            children: icons
          },
          {
            value: 'back',
            label: '内容后',
            children: icons
          }
        ]
        value: 'iconfront',
        label: '图标(前)',
        children: icons
      },
      {
        value: 'iconback',
        label: '图标(后)',
        children: icons
      }
    ]
    if (type === 'line') {
    if (type === 'line' || type === 'sequence') {
      signs.pop()
    } else if (type === 'slider') {
      markColumns = markColumns.filter(col => {
@@ -260,9 +250,17 @@
      signs = []
    }
    let _marks = marks ? fromJS(marks).toJS() : []
    _marks = _marks.map(item => {
      if (item.signType && item.signType[0] === 'icon') {
        item.signType = [item.signType[0] + item.signType[1], item.signType[2], item.signType[3]]
      }
      return item
    })
    this.setState({
      visible: true,
      marks: marks ? fromJS(marks).toJS() : [],
      marks: _marks,
      markColumns: markColumns.map(col => {
        if (col.dataIndex === 'field') {
          col.options = options
@@ -278,9 +276,13 @@
  }
  markSubmit = () => {
    this.setState({
      visible: false
    })
    let save = false
    let input = document.getElementById('contrastValue')
    let val = input && input.value ? input.value : ''
    if (!val) {
      save = true
    }
    let marks = this.state.marks.map(item => {
      if (item.signType && item.signType[0] === 'background') {
@@ -291,14 +293,32 @@
          } else {
            item.fontColor = ''
          }
        } catch {
        } catch (e) {
          item.fontColor = ''
        }
      }
      if (val && item.contrastValue === val) {
        save = true
      }
      return item
    })
    this.props.onSubmit(marks)
    if (save) {
      this.setState({
        visible: false
      })
      this.props.onSubmit(marks)
    } else {
      const _this = this
      confirm({
        title: '存在未保存标记,确定忽略吗?',
        onOk() {
          _this.setState({ visible: false })
          _this.props.onSubmit(marks)
        },
        onCancel() {}
      })
    }
  }
  render() {