import React, { memo } from "react"; import { DatePicker, Radio, Input, InputNumber, Select } from "antd"; import moment from "moment"; import Login from "@/pages/user/Login"; const { RangePicker } = DatePicker; const { Option } = Select; const RenderItemType = memo( (props) => { const { value, onChange, type, min, max, radioarr, disabled, selectarr } = props; if (type == "dateRange") { return ( <RangePicker {...props} value={value ? moment(value) : undefined} onChange={(val) => { onChange(val ? moment(val).format("YYYY-MM-DD") : ""); }} format="YYYY-MM-DD" style={{ width: "100%" }} /> ); } else if (type == "month") { return ( <DatePicker {...props} value={value ? moment(value) : undefined} onChange={(val) => { onChange(val ? moment(val).format("YYYY-MM") : ""); }} picker="month" format="YYYY-MM" style={{ width: "100%" }} /> ); } else if (type == "year") { return ( <DatePicker {...props} value={value ? moment(value) : undefined} onChange={(val) => { onChange(val ? moment(val).format("YYYY") : ""); }} picker="year" format="YYYY" style={{ width: "100%" }} /> ); } else if (type == "dateHour") { return ( <DatePicker {...props} value={value ? moment(value) : undefined} onChange={(val) => { onChange(val ? moment(val).format("YYYY-MM-DD HH") : ""); }} format="YYYY-MM-DD HH" showTime={{ format: "HH" }} style={{ width: "100%" }} /> ); } else if (type == "radio") { return ( <Radio.Group {...props} onChange={(e) => { onChange(e.target.value); }} value={value} style={{ width: "100%" }} > {radioarr.map((el) => { return ( <Radio key={el.value} value={el.value}> {el.label} </Radio> ); })} </Radio.Group> ); } else if (type == "select") { return ( <Select {...props} onChange={(value) => { onChange(value); }} value={value} style={{ width: "100%" }} allowClear={true} > {selectarr.map((el) => { return ( <Option key={el.value} value={el.value}> {el.label} </Option> ); })} </Select> ); } else if (type == "input") { return ( <Input {...props} value={value} onChange={(e) => { onChange(e.target.value); }} style={{ width: "100%" }} allowClear={true} /> ); } else if (type == "inputnumber") { return ( <InputNumber {...props} value={value} onChange={(val) => { onChange(val); }} style={{ width: "100%" }} allowClear={true} min={min || null} max={max || null} /> ); } }, (prev, next) => { if (prev.rowKey && next.rowKey) { if (prev.rowKey == next.rowKey) { return true; } else { return false; } } else { if (prev.id == next.id) { return true; } else { return false; } } } ); export default RenderItemType;