king
2025-02-05 125517c3e09320afa84a9e19a084d56c8ec3317e
src/menu/components/share/searchcomponent/dragsearch/card.jsx
@@ -1,6 +1,6 @@
import React from 'react'
import { useDrag, useDrop } from 'react-dnd'
import { Select, DatePicker, Input, Popover, Form, Switch, Checkbox } from 'antd'
import { Select, DatePicker, Input, Popover, Form, Switch, Checkbox, Radio } from 'antd'
import { EditOutlined, CopyOutlined, CloseOutlined } from '@ant-design/icons'
import moment from 'moment'
@@ -56,6 +56,10 @@
      _defaultValue = [moment().startOf('month'), moment().endOf('month')]
    } else if (card.initval === 'lastMonth') {
      _defaultValue = [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')]
    } else if (card.initval === 'year') {
      _defaultValue = [moment().startOf('year'), moment().endOf('year')]
    } else if (card.initval === 'lastYear') {
      _defaultValue = [moment().subtract(1, 'years').startOf('year'), moment().subtract(1, 'years').endOf('year')]
    } else if (card.initval) {
      try {
        let _initval = JSON.parse(card.initval)
@@ -67,6 +71,7 @@
  }
  let formItem = null
  let type = ''
  if (card.type === 'text') {
    if (card.inputType !== 'search') {
      formItem = <Input placeholder={card.label} value={card.initval} />
@@ -104,15 +109,31 @@
      format={format}
      className="data-range"
      placeholder={['BeginTime', 'EndTime']}
      renderExtraFooter={() => 'extra footer'}
      renderExtraFooter={() => 'extra footer'}
      value={_defaultValue}
    />
  } else if (card.type === 'group') {
    formItem = <DateGroup card={card} />
  } else if (card.type === 'switch') {
    formItem = (<Switch checkedChildren={card.openText || ''} unCheckedChildren={card.closeText || ''} style={{marginTop: '8px'}} checked={card.initval === card.openVal}/>)
  } else if (card.type === 'radio') {
    let options = card.options
    if (options.length === 0) {
      options = [{Value: '1', Text: '选项1'}, {Value: '2', Text: '选项2'}]
    }
    formItem = (<Radio.Group value={card.initval} style={{lineHeight: '40px', whiteSpace: 'nowrap'}}>
      {options.map((item, i) => (<Radio key={i} value={item.Value}> {item.Text} </Radio>))}
    </Radio.Group>)
  } else if (card.type === 'check') {
    formItem = <Checkbox style={{lineHeight: '36px'}} checked={card.initval === card.openVal}>{card.checkTip || ''}</Checkbox>
    formItem = <Checkbox style={{lineHeight: '36px', whiteSpace: 'nowrap'}} checked={card.initval === card.openVal}>{card.checkTip || ''}</Checkbox>
  } else if (card.type === 'range') {
    type = 'range-wrap'
    let vals = card.initval.split(',')
    formItem = (<>
      <Input style={{marginTop: '4px'}} value={vals[0] || ''} />
      至
      <Input style={{marginTop: '4px'}} value={vals[1] || ''} />
    </>)
  }
  let labelwidth = card.labelwidth || 33.3
@@ -128,7 +149,7 @@
        <CloseOutlined className="close" title="删除" onClick={() => delCard(id)} />
      </div>
    } trigger="hover">
      <div className={'page-card ' + (card.labelShow || '')} style={{ opacity: opacity}}>
      <div className={`page-card ${type} ${card.labelShow || ''}`} style={{ opacity: opacity}}>
        <div ref={node => drag(drop(node))}>
          <Form.Item
            labelCol={{style: {width: labelwidth + '%'}}}