feat: add calibres data and update firearm form to use select input for calibre

This commit is contained in:
2026-04-25 11:06:49 +08:00
parent 3f3ff08d25
commit 0a2f58a91b
2 changed files with 36 additions and 3 deletions
+13 -3
View File
@@ -1,5 +1,6 @@
import { Form, Input, InputNumber, Select } from "antd"
import { AddFirearmRequest, FirearmType } from "@/types"
import calibres from "@/constant/calibres.json"
const firearmTypeText: Record<FirearmType, string> = {
RIFLE: "步枪",
@@ -12,6 +13,11 @@ const firearmTypeText: Record<FirearmType, string> = {
SPECIAL: "特殊",
}
const calibreOptions = calibres.map((calibre) => ({
value: calibre,
label: calibre,
}))
interface FirearmFormProps {
form: ReturnType<typeof Form.useForm<AddFirearmRequest>>[0]
onFinish: (values: AddFirearmRequest) => void
@@ -53,9 +59,14 @@ export default function FirearmForm({ form, onFinish }: FirearmFormProps) {
<Form.Item<AddFirearmRequest>
name="calibre"
label="子弹口径"
rules={[{ required: true, message: "请输入子弹口径" }]}
rules={[{ required: true, message: "请选择子弹口径" }]}
>
<Input placeholder="例如:5.56x45mm" />
<Select
placeholder="请选择子弹口径"
showSearch
optionFilterProp="label"
options={calibreOptions}
/>
</Form.Item>
<Form.Item<AddFirearmRequest>
@@ -88,4 +99,3 @@ export default function FirearmForm({ form, onFinish }: FirearmFormProps) {
</Form>
)
}
+23
View File
@@ -0,0 +1,23 @@
[
".338 Lap Mag",
".357 Magnum",
".45 ACP",
".50 AE",
".50 BMG",
"12 Gauge",
"12.7x55mm",
"5.45x39mm",
"5.56x45mm",
"5.7x28mm",
"5.8x42mm",
"6.8x51mm",
"7.62x39mm",
"7.62x51mm",
"7.62x54mm",
"9x19mm",
"9x39mm",
"4.6x30mm",
".300 BLK",
"箭矢",
"45-70 Govt"
]