diff --git a/crop-x/src/app/(app)/central-config/system/dictionary/components/CategoryForm.tsx b/crop-x/src/app/(app)/central-config/system/dictionary/components/CategoryForm.tsx new file mode 100644 index 0000000..bffc759 --- /dev/null +++ b/crop-x/src/app/(app)/central-config/system/dictionary/components/CategoryForm.tsx @@ -0,0 +1,159 @@ +'use client'; + +import React from 'react'; +import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Textarea } from '@/components/ui/textarea'; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; +import { Switch } from '@/components/ui/switch'; +import { CategoryFormData, CategoryDictionary } from '../types'; + +interface CategoryFormProps { + open: boolean; + editing: CategoryDictionary | null; + formData: CategoryFormData; + onFormDataChange: (data: Partial) => void; + onOpenChange: (open: boolean) => void; + onSave: () => void; +} + +export function CategoryForm({ + open, + editing, + formData, + onFormDataChange, + onOpenChange, + onSave, +}: CategoryFormProps) { + const handleSave = () => { + if (!formData.code.trim() || !formData.name.trim() || !formData.value.trim() || !formData.label.trim()) { + return false; + } + onSave(); + return true; + }; + + return ( + + + + + {editing ? '编辑字典' : '新增字典'} + + + {editing ? '编辑数据字典' : '添加新数据字典'} + + +
+
+
+ + onFormDataChange({ code: e.target.value })} + placeholder="GENDER_MALE" + disabled={editing?.isSystem} + /> +
+
+ + onFormDataChange({ name: e.target.value })} + placeholder="性别-男" + /> +
+
+
+ + +
+
+
+ + onFormDataChange({ value: e.target.value })} + placeholder="male" + disabled={editing?.isSystem} + /> +

+ 程序中使用的值,建议使用英文 +

+
+
+ + onFormDataChange({ label: e.target.value })} + placeholder="男" + /> +

+ 界面上显示的文本 +

+
+
+
+ +