救援队 增加经纬度

master^2
LiuJiaNan 2026-07-27 09:41:12 +08:00
parent 098a49b1c9
commit b61ac2d2e0
3 changed files with 25 additions and 15 deletions

View File

@ -20,6 +20,7 @@ export default antfu({
"react-hooks-extra/no-unnecessary-use-prefix": "off", "react-hooks-extra/no-unnecessary-use-prefix": "off",
"react-hooks-extra/prefer-use-state-lazy-initialization": "off", "react-hooks-extra/prefer-use-state-lazy-initialization": "off",
"react-hooks/exhaustive-deps": "off", "react-hooks/exhaustive-deps": "off",
"react/no-implicit-key": "off",
}, },
javascript: { javascript: {
"no-console": process.env.NODE_ENV === "production" ? "error" : "warn", "no-console": process.env.NODE_ENV === "production" ? "error" : "warn",

View File

@ -3,6 +3,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Card, Col, DatePicker, Form, Input, message, Row, Space } from "antd"; import { Button, Card, Col, DatePicker, Form, Input, message, Row, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import Map from "zy-react-library/components/Map";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -106,7 +107,7 @@ function Add(props) {
const members = data.rescueMembers.map((item, index) => ({ ...item, key: item.id || index })); const members = data.rescueMembers.map((item, index) => ({ ...item, key: item.id || index }));
setRescueMembers(members); setRescueMembers(members);
// 同步设置Form的队员数据 // 同步设置Form的队员数据
form.setFieldValue('rescueMembersForm', members.map(m => ({ form.setFieldValue("rescueMembersForm", members.map(m => ({
personName: m.personName, personName: m.personName,
personPhone: m.personPhone, personPhone: m.personPhone,
}))); })));
@ -186,8 +187,8 @@ function Add(props) {
const newMembers = [...rescueMembers, createEmptyMember()]; const newMembers = [...rescueMembers, createEmptyMember()];
setRescueMembers(newMembers); setRescueMembers(newMembers);
// 同步更新Form // 同步更新Form
const formMembers = form.getFieldValue('rescueMembersForm') || []; const formMembers = form.getFieldValue("rescueMembersForm") || [];
form.setFieldValue('rescueMembersForm', [...formMembers, { personName: '', personPhone: '' }]); form.setFieldValue("rescueMembersForm", [...formMembers, { personName: "", personPhone: "" }]);
}; };
const removeMember = (key) => { const removeMember = (key) => {
@ -195,9 +196,9 @@ function Add(props) {
const newMembers = rescueMembers.filter(item => item.key !== key); const newMembers = rescueMembers.filter(item => item.key !== key);
setRescueMembers(newMembers); setRescueMembers(newMembers);
// 同步更新Form // 同步更新Form
const formMembers = form.getFieldValue('rescueMembersForm') || []; const formMembers = form.getFieldValue("rescueMembersForm") || [];
formMembers.splice(index, 1); formMembers.splice(index, 1);
form.setFieldValue('rescueMembersForm', [...formMembers]); form.setFieldValue("rescueMembersForm", [...formMembers]);
}; };
const updateMember = (key, field, value) => { const updateMember = (key, field, value) => {
@ -206,7 +207,6 @@ function Add(props) {
); );
}; };
return ( return (
<Page <Page
loading={loading} loading={loading}
@ -252,7 +252,7 @@ function Add(props) {
<Input <Input
placeholder="请输入救援队名称" placeholder="请输入救援队名称"
onChange={handleTeamNameChange} onChange={handleTeamNameChange}
onBlur={e => { onBlur={(e) => {
form.setFieldValue("teamName", e.target.value?.trim()); form.setFieldValue("teamName", e.target.value?.trim());
}} }}
/> />
@ -318,10 +318,10 @@ function Add(props) {
<Input <Input
placeholder="请输入队长电话" placeholder="请输入队长电话"
maxLength={11} maxLength={11}
onChange={e => { onChange={(e) => {
// 只允许输入数字和连字符 // 只允许输入数字和连字符
const value = e.target.value.replace(/[^\d-]/g, '').slice(0, 11); const value = e.target.value.replace(/[^\d-]/g, "").slice(0, 11);
form.setFieldValue('captainPhone', value); form.setFieldValue("captainPhone", value);
}} }}
/> />
</Form.Item> </Form.Item>
@ -387,6 +387,7 @@ function Add(props) {
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
<Map required={false} type="cesium" />
</Card> </Card>
<Card <Card
@ -404,7 +405,7 @@ function Add(props) {
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label={`队员${index + 1}`} label={`队员${index + 1}`}
name={['rescueMembersForm', index, 'personName']} name={["rescueMembersForm", index, "personName"]}
rules={[ rules={[
{ required: true, message: "请输入队员姓名" }, { required: true, message: "请输入队员姓名" },
{ max: 50, message: "队员姓名不能超过50个字符" }, { max: 50, message: "队员姓名不能超过50个字符" },
@ -424,7 +425,7 @@ function Add(props) {
<div style={{ display: "flex", alignItems: "center", gap: 8, width: "100%" }}> <div style={{ display: "flex", alignItems: "center", gap: 8, width: "100%" }}>
<div style={{ flex: 1 }}> <div style={{ flex: 1 }}>
<Form.Item <Form.Item
name={['rescueMembersForm', index, 'personPhone']} name={["rescueMembersForm", index, "personPhone"]}
rules={[ rules={[
{ required: true, message: "请输入队员电话" }, { required: true, message: "请输入队员电话" },
{ validator: validatePhone }, { validator: validatePhone },
@ -434,10 +435,10 @@ function Add(props) {
<Input <Input
placeholder="请输入队员电话" placeholder="请输入队员电话"
maxLength={11} maxLength={11}
onChange={e => { onChange={(e) => {
const value = e.target.value.replace(/[^\d-]/g, '').slice(0, 11); const value = e.target.value.replace(/[^\d-]/g, "").slice(0, 11);
updateMember(member.key, "personPhone", value); updateMember(member.key, "personPhone", value);
form.setFieldValue(['rescueMembersForm', index, 'personPhone'], value); form.setFieldValue(["rescueMembersForm", index, "personPhone"], value);
}} }}
/> />
</Form.Item> </Form.Item>

View File

@ -113,6 +113,14 @@ function View(props) {
label: "职责和任务范围", label: "职责和任务范围",
children: detail.dutyScope || "-", children: detail.dutyScope || "-",
}, },
{
label: "经度",
children: detail.longitude || "-",
},
{
label: "纬度",
children: detail.latitude || "-",
},
]} ]}
/> />
</Card> </Card>