flat: 暂存

This commit is contained in:
史典卓
2025-05-26 14:41:21 +08:00
parent 41283fab6c
commit 9fdbb5f4ae

View File

@@ -1,140 +1,143 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { import {
ModalForm, ModalForm,
ProForm, ProForm,
ProFormDigit, ProFormDigit,
ProFormRadio, ProFormRadio,
ProFormSelect, ProFormSelect,
ProFormText, ProFormText,
} from '@ant-design/pro-components'; } from '@ant-design/pro-components';
import { Form,Input } from 'antd'; import { Form, Input } from 'antd';
import { DictValueEnumObj } from '@/components/DictTag'; import { DictValueEnumObj } from '@/components/DictTag';
export type ListFormProps = { export type ListFormProps = {
onCancel: (flag?: boolean, formVals?: unknown) => void; onCancel: (flag?: boolean, formVals?: unknown) => void;
onSubmit: (values: API.ApplicationProducts.Product) => Promise<void>; onSubmit: (values: API.ApplicationProducts.Product) => Promise<void>;
open: boolean; open: boolean;
values?: Partial<API.ApplicationProducts.Product>; values?: Partial<API.ApplicationProducts.Product>;
// jobGroupOptions: DictOptionType[]; // jobGroupOptions: DictOptionType[];
companyLabelEnum?: DictValueEnumObj; companyLabelEnum?: DictValueEnumObj;
companyNatureEnum?: DictValueEnumObj; companyNatureEnum?: DictValueEnumObj;
enableStatusEnum?: DictValueEnumObj; enableStatusEnum?: DictValueEnumObj;
}; };
const waitTime = (time: number = 100) => { const waitTime = (time: number = 100) => {
return new Promise((resolve) => { return new Promise((resolve) => {
setTimeout(() => { setTimeout(() => {
resolve(true); resolve(true);
}, time); }, time);
}); });
}; };
const listEdit: React.FC<ListFormProps> = (props) => { const listEdit: React.FC<ListFormProps> = (props) => {
const [form] = Form.useForm(); const [form] = Form.useForm();
const [colorHex, setColorHex] = useState('#3b82f6'); const [colorHex, setColorHex] = useState('#3b82f6');
const { companyNatureEnum, companyLabelEnum, enableStatusEnum } = props; const { companyNatureEnum, companyLabelEnum, enableStatusEnum } = props;
useEffect(() => { useEffect(() => {
form.resetFields(); form.resetFields();
if (props.values) { if (props.values) {
form.setFieldsValue({ form.setFieldsValue({
...props.values, ...props.values,
status: String(props.values.status), status: String(props.values.status),
}); });
setColorHex(props.values.backgroudColor); setColorHex(props.values.backgroudColor);
} }
}, [form, props]); }, [form, props]);
const handleCancel = () => { const handleCancel = () => {
props.onCancel(); props.onCancel();
form.resetFields(); form.resetFields();
}; };
const handleFinish = async (values: Record<string, any>) => { const handleFinish = async (values: Record<string, any>) => {
// console.log(colorHex, values.backgroudColor); console.log(colorHex, values);
if (typeof colorHex === 'string') { if (typeof colorHex === 'string') {
values.backgroudColor = colorHex; values.backgroudColor = colorHex;
} else { } else {
values.backgroudColor = values.backgroudColor.toHexString(); values.backgroudColor = values.backgroudColor.toHexString();
} }
props.onSubmit(values as API.ApplicationProducts.Product); if (!values.companyNature) {
}; values['companyNature'] = '';
return ( }
<ModalForm<{ if (!values.targ) {
name: string; values['targ'] = '';
company: string; }
}> props.onSubmit(values as API.ApplicationProducts.Product);
title={`${props.values ? '编辑' : '新增'}企业`} };
form={form} return (
autoFocusFirstInput <ModalForm<{
open={props.open} name: string;
modalProps={{ company: string;
destroyOnClose: true, }>
onCancel: () => handleCancel(), title={`${props.values ? '编辑' : '新增'}企业`}
}} form={form}
submitTimeout={2000} autoFocusFirstInput
onFinish={handleFinish} open={props.open}
initialValues={{ modalProps={{
cardOrder: 0, destroyOnClose: true,
status: '0', onCancel: () => handleCancel(),
}} }}
> submitTimeout={2000}
<ProFormDigit label="InputNumber" name="companyCardId" disabled hidden={true} /> onFinish={handleFinish}
<ProForm.Group> initialValues={{
<ProFormText width="md" name="name" label="卡片名称" placeholder="请输入卡片名称" /> cardOrder: 0,
<ProFormSelect status: '0',
width="md" }}
name="backgroudColor" >
label="卡片背景色" <ProFormDigit label="InputNumber" name="companyCardId" disabled hidden={true} />
valueType="color" <ProForm.Group>
disabledAlpha <ProFormText width="md" name="name" label="卡片名称" placeholder="请输入卡片名称" />
placeholder="请选择单位规模" <ProFormSelect
fieldProps={{ width="md"
value: colorHex, name="backgroudColor"
onChange: (e) => setColorHex(e), label="卡片背景色"
}} valueType="color"
/> disabledAlpha
{/*<span>HEX: {colorHex.}</span>*/} placeholder="请选择单位规模"
</ProForm.Group> fieldProps={{
<ProForm.Group> value: colorHex,
<ProFormSelect onChange: (e) => setColorHex(e),
width="md" }}
name="companyNature" />
label="企业性质" {/*<span>HEX: {colorHex.}</span>*/}
valueEnum={companyNatureEnum} </ProForm.Group>
placeholder="请选择企业性质" <ProForm.Group>
/> <ProFormSelect
<ProFormSelect width="md"
width="md" name="companyNature"
name="targ" label="企业性质"
label="企业标签" valueEnum={companyNatureEnum}
valueEnum={companyLabelEnum} placeholder="请选择企业性质"
placeholder="请选择企业标签" />
/> <ProFormSelect
</ProForm.Group> width="md"
<ProForm.Group> name="targ"
<ProFormDigit width="md" label="排序" name="cardOrder" min={0} /> label="企业标签"
<ProFormRadio.Group valueEnum={companyLabelEnum}
valueEnum={enableStatusEnum} placeholder="请选择企业标签"
name="status" />
label="启用状态" </ProForm.Group>
width="md" <ProForm.Group>
/> <ProFormDigit width="md" label="排序" name="cardOrder" min={0} />
</ProForm.Group> <ProFormRadio.Group
<ProForm.Item valueEnum={enableStatusEnum}
name="description" name="status"
label="精选描述" label="启用状态"
> width="md"
<Input.TextArea />
placeholder="请输入卡片精选描述最多200字" </ProForm.Group>
maxLength={200} <ProForm.Item name="description" label="精选描述">
showCount <Input.TextArea
rows={4} placeholder="请输入卡片精选描述最多200字"
style={{ resize: 'none' }} maxLength={200}
/> showCount
</ProForm.Item> rows={4}
</ModalForm> style={{ resize: 'none' }}
); />
}; </ProForm.Item>
</ModalForm>
export default listEdit; );
};
export default listEdit;