king
2023-06-14 08cce3334a2dc81d690b518136b0aaea64e48b0b
src/menu/components/share/markcomponent/index.jsx
@@ -9,9 +9,6 @@
import MarkForm from './markform'
import MkIcon from '@/components/mk-icon'
import { minkeIconSystem } from '@/utils/option.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import '@/assets/css/table.scss'
import './index.scss'
const EditTable = asyncComponent(() => import('@/templates/zshare/editTable'))
@@ -26,7 +23,6 @@
  }
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    marks: null,
    columns: null,
    visible: false,
@@ -38,6 +34,15 @@
        editable: 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>
@@ -64,7 +69,15 @@
        width: '16%',
        editable: true,
        required: false,
        inputType: 'input'
        inputType: 'input',
        render: (text, record) => {
          if (!text) return ''
          if (record.field && record.field[1] === 'dynamic') {
            return <span title="对比动态值时,对比值无效。" style={{textDecoration: 'line-through'}}>{text}</span>
          } else {
            return text
          }
        }
      },
      {
        title: '颜色',
@@ -139,9 +152,10 @@
    _columns.unshift({field: '$Index', label: '序号'})
    let options = _columns.map(col => {
      let label = `${col.field}(${col.label})`
      return {
        value: col.field,
        label: col.label,
        label: label,
        isLeaf: false,
        children: [
          {
@@ -152,9 +166,10 @@
            value: 'dynamic',
            label: '动态值',
            children: _columns.map(cell => {
              let _label = `${cell.field}(${cell.label})`
              return {
                value: cell.field,
                label: cell.label
                label: _label
              }
            })
          }
@@ -259,6 +274,9 @@
      if (item.signType && item.signType[0] === 'icon') {
        item.signType = [item.signType[0] + item.signType[1], item.signType[2], item.signType[3]]
      }
      if (!item.uuid) {
        item.uuid = Utils.getuuid()
      }
      return item
    })
@@ -326,23 +344,23 @@
  }
  render() {
    const { marks, markColumns, visible, options, signs, dict } = this.state
    const { marks, markColumns, visible, options, signs } = this.state
    return (
      <div style={{display: 'inline-block'}}>
        <AntDesignOutlined className="profile" title="标记" onClick={this.resetMark} />
        <Modal
          wrapClassName="model-table-column-mark-modal"
          title={'标记设置'}
          title="标记设置"
          visible={visible}
          width={'75vw'}
          maskClosable={false}
          okText={dict['model.submit']}
          okText="提交"
          onOk={this.markSubmit}
          onCancel={() => { this.setState({ visible: false }) }}
          destroyOnClose
        >
          <MarkForm field={this.props.field} dict={dict} signs={signs} columns={options} markChange={this.markChange}/>
          <MarkForm field={this.props.field} signs={signs} columns={options} markChange={this.markChange}/>
          <Col style={{fontSize: '12px', color: '#757575', paddingLeft: '10px'}} span={24}>注:从上到下,匹配第一个符合条件的标记。</Col>
          <EditTable actions={['edit', 'move', 'del']} data={marks} columns={markColumns} onChange={(marks) => this.setState({marks})}/>
        </Modal>