king
2022-04-26 5046d0d13dc6a8563b8e54e31913bc44cfa1072f
src/templates/zshare/modalform/datatable/index.jsx
@@ -2,8 +2,8 @@
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { DndProvider, DragSource, DropTarget } from 'react-dnd'
import { Table, Input, Popconfirm, Form, notification } from 'antd'
import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons'
import { Table, Input, Popconfirm, Form, notification, message } from 'antd'
import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons'
import Utils from '@/utils/utils.js'
import FileUpload from '@/tabviews/zshare/fileupload'
@@ -118,14 +118,14 @@
    return (
      <td {...restProps}>
        {editing ? (
          <Form.Item style={{ margin: 0 }}>
          <Form.Item style={{ margin: '0 -5px 0 -5px' }}>
            {getFieldDecorator(dataIndex, {
              rules: [
                {
                  required: dataIndex === '$value',
                  message: `Please Input ${title}!`,
                },
              ],
              // rules: [
              //   {
              //     required: dataIndex === '$value',
              //     message: `Please Input ${title}!`,
              //   },
              // ],
              initialValue: _val,
            })(this.getInput(form))}
          </Form.Item>
@@ -258,6 +258,7 @@
        ) : (
          <div className={'operation-btn' + (editingKey !== '' ? ' disabled' : '')}>
            <span className="primary" onClick={() => {editingKey === '' && this.edit(record.key)}}><EditOutlined /></span>
            <span className="hide-control" title="显示/隐藏" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span>
            {editingKey === '' ? <Popconfirm
              overlayClassName="popover-confirm"
              title={this.props.dict['model.query.delete']}
@@ -281,8 +282,20 @@
  }
  onSave = (record) => {
    const { type } = this.props
    const newData = [...this.state.data]
    const index = newData.findIndex(item => record.key === item.key)
    if (type === 'link') {
      if (newData.filter(m => record.key !== m.key && record.$value === m.$value && record.ParentID === m.ParentID).length > 0) {
        message.warning('相同ParentID下,此Value值已存在!')
      }
    } else {
      if (newData.filter(m => record.key !== m.key && record.$value === m.$value).length > 0) {
        message.warning('此Value值已存在!')
      }
    }
    if (index > -1) {
      newData.splice(index, 1, record)
      this.setState({ data: newData, editingKey: '' }, () => {
@@ -303,6 +316,8 @@
  }
  save(form, key) {
    const { type } = this.props
    form.validateFields((error, row) => {
      if (error) {
        return;
@@ -310,6 +325,17 @@
      const newData = [...this.state.data]
      const index = newData.findIndex(item => key === item.key)
      if (type === 'link') {
        if (newData.filter(m => key !== m.key && row.$value === m.$value && row.ParentID === m.ParentID).length > 0) {
          message.warning('相同ParentID下,此Value值已存在!')
        }
      } else {
        if (newData.filter(m => key !== m.key && row.$value === m.$value).length > 0) {
          message.warning('此Value值已存在!')
        }
      }
      if (index > -1) {
        const item = newData[index]
        newData.splice(index, 1, {
@@ -358,6 +384,20 @@
  edit(key) {
    this.setState({ editingKey: key })
  }
  handleHide = (key) => {
    let _data = this.state.data.map(item => {
      if (item.key === key) {
        item.Hide = !item.Hide
      }
      return item
    })
    this.setState({
      data: _data
    }, () => {
      this.props.onChange(_data)
    })
  }
  moveRow = (dragIndex, hoverIndex) => {
@@ -418,7 +458,7 @@
              rowKey="key"
              dataSource={this.state.data}
              columns={columns}
              rowClassName="editable-row"
              rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'}
              onRow={(record, index) => ({
                index,
                moveAble: !this.state.editingKey,