From ac1d52c46ff9019fcc93cf3d5e7ab17cf850824e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 10 八月 2023 16:05:24 +0800 Subject: [PATCH] 2023-08-10 --- src/menu/components/share/markcomponent/index.jsx | 78 +++++++++++++++++++++++++++++++-------- 1 files changed, 62 insertions(+), 16 deletions(-) diff --git a/src/menu/components/share/markcomponent/index.jsx b/src/menu/components/share/markcomponent/index.jsx index 84c2b73..246f2ea 100644 --- a/src/menu/components/share/markcomponent/index.jsx +++ b/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' @@ -9,7 +9,6 @@ import MarkForm from './markform' import MkIcon from '@/components/mk-icon' import { minkeIconSystem } from '@/utils/option.js' -import '@/assets/css/table.scss' import './index.scss' const EditTable = asyncComponent(() => import('@/templates/zshare/editTable')) @@ -33,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> @@ -61,7 +83,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: '棰滆壊', @@ -102,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 @@ -136,9 +172,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: [ { @@ -149,9 +186,10 @@ value: 'dynamic', label: '鍔ㄦ�佸��', children: _columns.map(cell => { + let _label = `${cell.field}锛�${cell.label}锛塦 return { value: cell.field, - label: cell.label + label: _label } }) } @@ -256,6 +294,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 }) @@ -298,6 +339,11 @@ item.fontColor = '' } } + + if (item.contrastValue) { + item.contrastValue = item.contrastValue.replace(/\t+|\v+|\s+/g, '') + } + if (val && item.contrastValue === val) { save = true } @@ -330,7 +376,7 @@ <AntDesignOutlined className="profile" title="鏍囪" onClick={this.resetMark} /> <Modal wrapClassName="model-table-column-mark-modal" - title={'鏍囪璁剧疆'} + title="鏍囪璁剧疆" visible={visible} width={'75vw'} maskClosable={false} -- Gitblit v1.8.0