assistant-todo/src/app/ui/task/project/DetailForm.tsx

132 lines
4.6 KiB
TypeScript
Raw Normal View History

2024-04-12 06:43:55 -04:00
'use client'
import React, { useState } from 'react';
import { PlusOutlined } from '@ant-design/icons';
import {
Button,
Cascader,
Checkbox,
ColorPicker,
DatePicker,
Form,
Input,
InputNumber,
Radio,
Select,
Slider,
Switch,
TreeSelect,
Upload,
} from 'antd';
export interface DetailFormProps {
itemId: number,
operationId: string,
}
export const DetailForm: React.FC<DetailFormProps> = (props) => {
const [componentDisabled, setComponentDisabled] =
useState<boolean>(props.operationId==='1');
const { RangePicker } = DatePicker;
const { TextArea } = Input;
const normFile = (e: any) => {
if (Array.isArray(e)) {
return e;
}
return e?.fileList;
};
return (
<>
<Checkbox
checked={componentDisabled}
onChange={(e) => setComponentDisabled(e.target.checked)}
>
Form disabled
</Checkbox>
<Form
labelCol={{span: 4}}
wrapperCol={{span: 14}}
layout="horizontal"
disabled={componentDisabled}
style={{maxWidth: 600}}
>
<Form.Item label="Checkbox" name="disabled" valuePropName="checked">
<Checkbox>Checkbox</Checkbox>
</Form.Item>
<Form.Item label="Radio">
<Radio.Group>
<Radio value="apple"> Apple </Radio>
<Radio value="pear"> Pear </Radio>
</Radio.Group>
</Form.Item>
<Form.Item label="Input">
<Input/>
</Form.Item>
<Form.Item label="Select">
<Select>
<Select.Option value="demo">Demo</Select.Option>
</Select>
</Form.Item>
<Form.Item label="TreeSelect">
<TreeSelect
treeData={[
{title: 'Light', value: 'light', children: [{title: 'Bamboo', value: 'bamboo'}]},
]}
/>
</Form.Item>
<Form.Item label="Cascader">
<Cascader
options={[
{
value: 'zhejiang',
label: 'Zhejiang',
children: [
{
value: 'hangzhou',
label: 'Hangzhou',
},
],
},
]}
/>
</Form.Item>
<Form.Item label="DatePicker">
<DatePicker/>
</Form.Item>
<Form.Item label="RangePicker">
<RangePicker/>
</Form.Item>
<Form.Item label="InputNumber">
<InputNumber/>
</Form.Item>
<Form.Item label="TextArea">
<TextArea rows={4}/>
</Form.Item>
<Form.Item label="Switch" valuePropName="checked">
<Switch/>
</Form.Item>
<Form.Item label="Upload" valuePropName="fileList" getValueFromEvent={normFile}>
<Upload action="/upload.do" listType="picture-card">
<button style={{border: 0, background: 'none'}} type="button">
<PlusOutlined/>
<div style={{marginTop: 8}}>Upload</div>
</button>
</Upload>
</Form.Item>
<Form.Item label="Button">
<Button>Button</Button>
</Form.Item>
<Form.Item label="Slider">
<Slider/>
</Form.Item>
<Form.Item label="ColorPicker">
<ColorPicker/>
</Form.Item>
</Form>
</>
);
}