king
2023-08-27 da64ab0923bf8817fc8599a6e37b953ce38f64c8
src/templates/zshare/modalform/datatable/index.jsx
@@ -146,7 +146,6 @@
class EdiDataTable extends Component {
  static propTpyes = {
    dict: PropTypes.object,         // 字典项
    transfield: PropTypes.object,   // 字段名称
    type: PropTypes.string,         // 是否为关联表单
    display: PropTypes.string,      // 数据类型,文本、图片
@@ -175,6 +174,7 @@
      !is(fromJS(this.props.fields), fromJS(nextProps.fields)) ||
      !is(fromJS(this.props.linkSubFields), fromJS(nextProps.linkSubFields)) ||
      this.props.display !== nextProps.display ||
      (nextProps.multiple && this.props.multiple !== nextProps.multiple) ||
      this.props.type !== nextProps.type
    ) {
      this.setState({editingKey: ''}, () => {
@@ -186,9 +186,9 @@
  }
  getCloumns = () => {
    const { display, fields, linkSubFields, transfield, type } = this.props
    const { display, fields, linkSubFields, transfield, type, multiple } = this.props
    let columns = []
    let keys = ['ParentID']
    let keys = ['ParentID', 'pid']
    if (display === 'picture') {
      columns.push({
@@ -200,6 +200,17 @@
        render: (text) => {
          if (!text) return ''
          return <span style={{display: 'block', width: '70px', height: '70px'}}><img style={{width: '100%', height: '100%'}} src={text} alt="" /></span>
        }
      })
    } else if (display === 'color') {
      columns.push({
        title: 'Color',
        dataIndex: '$color',
        inputType: 'text',
        editable: true,
        render: (text) => {
          if (!text) return ''
          return <div style={{height: '20px', background: text}}></div>
        }
      })
    }
@@ -230,6 +241,14 @@
      dataIndex: '$value',
      editable: true,
    })
    if (multiple === 'dropdown' && display === 'text') {
      columns.unshift({
        title: 'pid',
        dataIndex: 'pid',
        editable: true,
      })
    }
    if (type === 'link') {
      columns.unshift({
@@ -264,7 +283,7 @@
            <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']}
              title="确定删除吗?"
              onConfirm={() => this.handleDelete(record.key)
            }>
              <span className="danger"><DeleteOutlined /></span>
@@ -372,6 +391,8 @@
    if (display === 'picture') {
      item.$url = ''
    } else if (display === 'color') {
      item.$color = ''
    }
    fields.forEach(f => {
@@ -419,6 +440,8 @@
  }
  render() {
    const { display, fields } = this.props
    const components = {
      body: {
        row: DragableBodyRow,
@@ -444,9 +467,9 @@
    })
    let addable = false
    if (this.props.display === 'picture' || this.props.display === 'color') {
    if (display === 'picture' || display === 'color') {
      addable = true
    } else if (this.props.fields && this.props.fields.length > 0) {
    } else if (fields && fields.length > 0) {
      addable = true
    }