hook+ant design实现列表的增加和修改(弹出框)

简介: hook+ant design实现列表的增加和修改(弹出框)

前言

大家好 我是歌谣 列表页面的新增和编辑是日常开发中遇到比较多的问题 如何控制 一个页面实现页面的新增和编辑


效果演示

image.png



分析 对于以上的页面 先渲染出结构

<Form
                name="menu"
                form={form}
                labelCol={{
                    sm: { span: 5 },
                }}
                wrapperCol={{
                    sm: { span: 16 },
                }}
            >
                  <Form.Item
                    label="款式"
                    name="style_id"
                    rules={[{ required: true, message: '请输入款式' }]}
                >
                    <Select
                        showSearch
                        style={{ width: "200px" }}
                        placeholder="请选择款式"
                        optionFilterProp="children"
                        options={styleList}
                    ></Select>
                </Form.Item>
                <Form.Item
                    label="通用部位"
                    name="part"
                    rules={[{ required: true, message: '请输入通用部位' }]}
                >
                    <Select
                        showSearch
                        style={{ width: "200px" }}
                        onChange={handleChange}
                        placeholder="请选择部位"
                        optionFilterProp="children"
                        options={PartsList}
                    ></Select>
                </Form.Item>
                <Form.Item
                    label="部位"
                    name="partName"
                    rules={[{ required: true, message: '请输入部位' }]}
                >
                    <Input placeholder='请输入部位'></Input>
                </Form.Item>
            </Form>

操作要点1 进入页面判断是清空页面还是赋值

useEffect(()=>{
        if(type=="edit"){
            form.setFieldsValue({
                style_id:menu?.style_id,
                partName:menu?.name,
            })
        }else{
            form.resetFields()
        }
    },[])

操作要点2 判断是新增接口还是编辑接口

const onOk = useCallback(() => {
        form.validateFields().then(res => {
            const values = res as AddOrEditMenuFormProps;
            const info: Menu = {
            };
            if (info.id) {
                postGrest().update('t_base_part_region', { id: info.id, data: {
                    style_id:form.getFieldValue("style_id"),
                    name:form.getFieldValue("partName")
                } }).then((response: any) => {
                    if (!response.code) {
                        message.success("编辑成功")
                        props.onConfirm();
                    } else {
                        message.warning(response.message)
                    }
                })
            } else {
                postGrest().create('t_base_part_region', { data: {
                    style_id:form.getFieldValue("style_id"),
                    name:form.getFieldValue("partName")
                } }).then((response: any) => {
                    if (!response.code) {
                        message.success("创建成功")
                        props.onConfirm();
                    } else {
                        message.warning(response.message)
                    }
                })
            }
        });
    }, []);


相关文章
|
22天前
|
JavaScript 前端开发
ant design vue 配置菜单外部打开
ant design vue 配置菜单外部打开
16 0
|
9月前
|
前端开发 API
ant design控制tag选中的写法
ant design控制tag选中的写法
58 0
|
9月前
|
前端开发
ant design一个页面(新增编辑)
ant design一个页面(新增编辑)
50 0
|
9月前
|
前端开发
ant design中默认回调加入参数
ant design中默认回调加入参数
43 0
|
9月前
|
前端开发
ant design封装一个弹框组件
ant design封装一个弹框组件
78 0
|
6月前
|
JavaScript
Ant Design Vue select下拉列表动态更新选中值
Ant Design Vue select下拉列表动态更新选中值
100 0
|
9月前
Ant Design 中表单内容如何设置,更改,回显功能写法
Ant Design 中表单内容如何设置,更改,回显功能写法
87 0
|
9月前
|
前端开发
ant design table中增加按钮的两种方式
ant design table中增加按钮的两种方式
102 0
|
9月前
Ant Design Pro新增页面步骤
Ant Design Pro新增页面步骤
212 0
|
API
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
595 0
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)