pay-admin/src/pages/asset/announcement/modals/AnnouncementCreate.tsx

107 lines
3.0 KiB
TypeScript
Raw Normal View History

2025-09-08 17:22:58 +08:00
import {
MyBetaModalFormProps,
MyButtons,
MyModalFormProps,
rulesHelper,
} from '@/common';
2025-09-18 19:40:30 +08:00
import { Selects } from '@/components/Select';
2025-09-08 17:22:58 +08:00
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default function Create(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
return (
<BetaSchemaForm<ApiTypes.Msg.MsgPropertyAnnouncements.Store>
{...MyModalFormProps.props}
title={`添加公告`}
wrapperCol={{ span: 24 }}
width="600px"
trigger={<MyButtons.Create title={`添加公告`} />}
key={new Date().getTime()}
form={form}
onOpenChange={(open: any) => {
if (open) {
form.resetFields(); // 清空表单数据
}
}}
onFinish={async (values) =>
Apis.Msg.MsgPropertyAnnouncements.Store({
...values,
2025-09-18 19:40:30 +08:00
asset_projects_id: values?.asset_projects_id || props.item?.id,
2025-09-08 17:22:58 +08:00
})
.then(() => {
props.reload?.();
message.success('添加公告内容成功');
return true;
})
.catch(() => false)
}
columns={[
2025-09-18 19:40:30 +08:00
...(props?.item?.id
? []
: [
Selects?.AssetProjects({
key: 'asset_projects_id',
title: '关联项目',
colProps: { span: 24 },
required: true,
}),
]),
2025-09-08 17:22:58 +08:00
{
key: 'title',
title: '公告标题',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
},
{
key: 'content',
title: '公告内容',
valueType: 'textarea',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
autoSize: { minRows: 4, maxRows: 6 },
},
},
{
key: 'publish_at',
title: '内容显示的发布日期',
valueType: 'date',
colProps: { span: 12 },
fieldProps: {
style: { width: '100%' },
},
formItemProps: { ...rulesHelper.text },
},
// Selects?.AssetProjects({
// title: '请选择项目',
// key: 'asset_projects_id',
// colProps: { span: 12 },
// formItemProps: { ...rulesHelper.text },
// }),
{
key: 'is_publish',
title: '是否立刻发布',
tooltip: '如果选择了,那么内容会立刻发布到小程序中',
valueType: 'switch',
colProps: { span: 8 },
},
{
key: 'sort',
title: '排序',
valueType: 'digit',
colProps: { span: 12 },
tooltip: '数值越大越靠前',
fieldProps: {
placeholder: '数值越大越靠前',
min: 0,
style: { width: '100%' },
},
initialValue: 0,
},
]}
/>
);
}