5 changed files with 656 additions and 18 deletions
-
4.env
-
2package.json
-
9src/pages/measure/components/MeasureAction.scss
-
632src/pages/measure/components/MeasureConfig - 副本.tsx
-
27src/pages/measure/components/MeasureConfig.tsx
@ -1,2 +1,2 @@ |
|||||
# REACT_APP_WS_URL=192.168.1.114:8080/ws |
|
||||
REACT_APP_WS_URL=127.1.1.0:8080/ws |
|
||||
|
REACT_APP_WS_URL=192.168.1.115:8080/ws |
||||
|
# REACT_APP_WS_URL=127.1.1.0:8080/ws |
@ -0,0 +1,632 @@ |
|||||
|
/* eslint-disable array-callback-return */ |
||||
|
import { Button, Form, Input, message, Select, InputNumber } from "antd"; |
||||
|
import { useEffect, useState } from "react"; |
||||
|
import { useNavigate } from "react-router"; |
||||
|
import { saveMeasurement_new } from "../../../services/measure/analysis"; |
||||
|
import { useAppSelector } from "../../../utils/hooks"; |
||||
|
import { |
||||
|
getOrgListService, |
||||
|
dictionaryListService, |
||||
|
queryStationData |
||||
|
} from "../../../services/ktj/org"; |
||||
|
import { useAppDispatch } from "../../../utils/hooks"; |
||||
|
import { setOrgData } from "../../../store/ktj/orgState"; |
||||
|
import type { |
||||
|
OrgItem, |
||||
|
GwdDicItem, |
||||
|
KTJ_BASE_TYPE, |
||||
|
options, |
||||
|
dataSourceOptions, |
||||
|
unitTypesOptions, |
||||
|
unitType, |
||||
|
extraDescType |
||||
|
} from "../../../services/ktjTypes"; |
||||
|
import { RAIN_TYPES, XB_CODES, DATA_SOURCE } from "../../../constant/index"; |
||||
|
import "./MeasureAction.scss"; |
||||
|
export default function MeasureConfig() { |
||||
|
const { Option } = Select; |
||||
|
const navigate = useNavigate(); |
||||
|
const systemState = useAppSelector((store) => store.systemState); |
||||
|
const [messageApi, contextHolder] = message.useMessage(); |
||||
|
const dispatch = useAppDispatch(); |
||||
|
const measureState = useAppSelector((store) => store.measureState); |
||||
|
const [extraDesc, setExtraDesc] = useState<extraDescType>() |
||||
|
const onFinish = (values: any) => { |
||||
|
let mtValue = values["meters"] |
||||
|
//百米小于100时, 补齐3位。 比如 1 :"001", 10: "010"
|
||||
|
if (mtValue < 100) { |
||||
|
mtValue = String(mtValue).padStart(3, '0'); |
||||
|
} |
||||
|
const params = { |
||||
|
operator: values["operator"],//操作员
|
||||
|
name: values["name"],//测量名称
|
||||
|
location: values["location"],//位置
|
||||
|
direction: values["direction"],//方向
|
||||
|
tljCode: values["tljCode"],//铁路局
|
||||
|
gwdCode: values["gwdCode"],//铁路段
|
||||
|
xmCode: values["xmCode"],//铁路线
|
||||
|
lineClassify: values["lineClassify"],//线路分类
|
||||
|
dataType: values["dataType"],//采集方式
|
||||
|
dataSource: values["dataSource"],//数据来源
|
||||
|
railSize: values["railSize"],//轨型
|
||||
|
xbCode: values["xbCode"],//行别
|
||||
|
unitType: values["unitType"],//股别
|
||||
|
mileage: `${values['kilometre']}+${mtValue}`,//里程
|
||||
|
stationCode: values['stationCode'],//车站
|
||||
|
batch: values['batch'],//批次
|
||||
|
radius: values["radius"],//半径
|
||||
|
turnoutNum: values["turnoutNum"],//道岔号
|
||||
|
sleeperNum: values["sleeperNum"],//枕木号
|
||||
|
extraDesc:JSON.stringify(extraDesc), |
||||
|
alignPoints:[] |
||||
|
}; |
||||
|
|
||||
|
const orgItem = { |
||||
|
tljCode: values["tljCode"],//铁路局
|
||||
|
gwdCode: values["gwdCode"],//铁路段
|
||||
|
xmCode: values["xmCode"],//铁路线
|
||||
|
} |
||||
|
localStorage.setItem('orgInfo', JSON.stringify(orgItem)); |
||||
|
params.extraDesc = JSON.stringify(extraDesc) |
||||
|
let measureData = measureState.measureData; |
||||
|
if(measureData && measureData.length){ |
||||
|
params.alignPoints = measureData |
||||
|
} |
||||
|
localStorage.setItem('measureForm', JSON.stringify(params)) |
||||
|
saveMeasurement_new(params) |
||||
|
.then((res) => { |
||||
|
if (res.success) { |
||||
|
messageApi.error(res.data.info); |
||||
|
} else { |
||||
|
message.success("保存成功"); |
||||
|
navigate("../action"); |
||||
|
} |
||||
|
}) |
||||
|
.catch((e) => { |
||||
|
navigate("../action"); |
||||
|
}); |
||||
|
}; |
||||
|
let user = localStorage.getItem("user") || ""; |
||||
|
let userInfo = (user && JSON.parse(user)) || {}; |
||||
|
const [form] = Form.useForm(); |
||||
|
useEffect(() => { |
||||
|
queryKTJOrgList(); |
||||
|
queryDictionaryList(); |
||||
|
resetDataSource() |
||||
|
resetRailTypes() |
||||
|
}, []); |
||||
|
|
||||
|
useEffect(()=>{ |
||||
|
}, [measureState.measureData]) |
||||
|
|
||||
|
//给股别分类
|
||||
|
const [unitTypeList, setUnitTypeList] = useState<unitTypesOptions[]>([]) |
||||
|
const resetRailTypes = () => { |
||||
|
let zxOptions:unitTypesOptions = { |
||||
|
label:'直线', |
||||
|
options:[] |
||||
|
} |
||||
|
let qxOptions:unitTypesOptions = { |
||||
|
label:'曲线', |
||||
|
options:[] |
||||
|
} |
||||
|
let zxList:unitType[] = [] |
||||
|
let qxList:unitType[] = [] |
||||
|
RAIN_TYPES.map(item => { |
||||
|
if(item.type === 1){ |
||||
|
zxList.push({ |
||||
|
label: item.name, |
||||
|
value: item.code, |
||||
|
}) |
||||
|
}else{ |
||||
|
qxList.push({ |
||||
|
label: item.name, |
||||
|
value: item.code, |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
zxOptions.options = zxList |
||||
|
qxOptions.options = qxList |
||||
|
setUnitTypeList([zxOptions, qxOptions]) |
||||
|
} |
||||
|
|
||||
|
const [xbCodeOptions, setXbCodeOptions] = useState<dataSourceOptions[]>() |
||||
|
const resetDataSource = () => { |
||||
|
let options:dataSourceOptions[] = [] |
||||
|
DATA_SOURCE.map(item => { |
||||
|
let optionMap:any = { |
||||
|
label: item.name, |
||||
|
value: item.code, |
||||
|
options:[] |
||||
|
} |
||||
|
let childOptions:options[] = [] |
||||
|
item.child.map(ele => { |
||||
|
childOptions.push({ |
||||
|
label: ele.name, |
||||
|
value: ele.code |
||||
|
}) |
||||
|
optionMap.options = childOptions |
||||
|
}) |
||||
|
options.push(optionMap) |
||||
|
}) |
||||
|
setXbCodeOptions(options) |
||||
|
} |
||||
|
|
||||
|
//初始化科天健机构数据
|
||||
|
let [SJLY_List, setSJLYList] = useState<KTJ_BASE_TYPE[]>([]); |
||||
|
let [WRPS_CJFS_List, setWRPSCJFSList] = useState<KTJ_BASE_TYPE[]>([]); |
||||
|
let [WRPS_GGGX_List, setWRPSGGGXList] = useState<KTJ_BASE_TYPE[]>([]); |
||||
|
let [XLFL_List, setXLFLList] = useState<KTJ_BASE_TYPE[]>([]); |
||||
|
const queryDictionaryList = () => { |
||||
|
dictionaryListService().then((res) => { |
||||
|
if (res && res.data) { |
||||
|
const { WRPS_CJFS, WRPS_GGGX, XLFL } = res.data; |
||||
|
const SJLY:KTJ_BASE_TYPE[] = res.data.SJLY |
||||
|
if(SJLY && SJLY.length){ |
||||
|
let sjlylist = SJLY.filter(item => item.key === 'XLDC' || item.key === 'DCDC') |
||||
|
setSJLYList(sjlylist); |
||||
|
} |
||||
|
if(WRPS_CJFS && WRPS_CJFS.length){ |
||||
|
setWRPSCJFSList(WRPS_CJFS); |
||||
|
} |
||||
|
if(WRPS_GGGX && WRPS_GGGX.length){ |
||||
|
setWRPSGGGXList(WRPS_GGGX); |
||||
|
} |
||||
|
if(XLFL && XLFL.length){ |
||||
|
setXLFLList(XLFL); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
//获取机构数据
|
||||
|
const [KTJOrgList, setKTJOrgList] = useState<OrgItem[]>([]); |
||||
|
const queryKTJOrgList = () => { |
||||
|
getOrgListService() |
||||
|
.then((res) => { |
||||
|
let list: options[] = []; |
||||
|
if (res && res.data) { |
||||
|
let resData: OrgItem[] = res.data; |
||||
|
setKTJOrgList(resData); |
||||
|
dispatch(setOrgData(resData)); |
||||
|
resData.map((item) => { |
||||
|
list.push({ |
||||
|
value: item.key, |
||||
|
label: item.value, |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
}) |
||||
|
.catch((e) => {}); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
//选择机构时change
|
||||
|
const [gwdDicList, setGwdDicList] = useState<GwdDicItem[]>([]); |
||||
|
const [gwdCodeValue, setGwdCodeValue] = useState<string>(); |
||||
|
const [xmCodeValue, setXmCodeValue] = useState<string>(); |
||||
|
const [gwdDicOptions, setGwdDicOptions] = useState<options[]>([]); |
||||
|
const [railDicOptions, setRailDicOptions] = useState<options[]>([]); |
||||
|
const [orgGwdDicList, setOrgGwdDicList] = useState<GwdDicItem[]>([]) |
||||
|
|
||||
|
const onOrgChange = (value: string, option:any) => { |
||||
|
let list = KTJOrgList.filter((item) => item.key === value); |
||||
|
form.resetFields(["gwdCode", "xmCode"]); |
||||
|
if (list && list.length) { |
||||
|
let orgItem: OrgItem = list[0]; |
||||
|
setExtraDesc({...extraDesc,orgName:option.label}) |
||||
|
if (orgItem && orgItem.gwdDicList) { |
||||
|
let listOptoins: options[] = []; |
||||
|
setGwdDicList(orgItem.gwdDicList); |
||||
|
setOrgGwdDicList(orgItem.gwdDicList) |
||||
|
orgItem.gwdDicList.map((item) => { |
||||
|
listOptoins.push({ |
||||
|
value: item.key, |
||||
|
label: item.value, |
||||
|
}); |
||||
|
}); |
||||
|
setGwdDicOptions(listOptoins); |
||||
|
setGwdCodeValue(listOptoins[0].value); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
const onGwdChange = (value: string, option:any) => { |
||||
|
let cloneGwdDicList = [...orgGwdDicList]; |
||||
|
form.resetFields(["xmCode"]); |
||||
|
let list = cloneGwdDicList.filter((item) => item.key === value); |
||||
|
if (list && list.length) { |
||||
|
let gwdDicItem: GwdDicItem = list[0]; |
||||
|
setExtraDesc({...extraDesc,gwdName:option.label}) |
||||
|
if (gwdDicItem && gwdDicItem.railDicList) { |
||||
|
let railOptions: options[] = []; |
||||
|
gwdDicItem.railDicList.map((item) => { |
||||
|
railOptions.push({ |
||||
|
value: item.key, |
||||
|
label: item.value, |
||||
|
}); |
||||
|
}); |
||||
|
if(railOptions && railOptions.length){ |
||||
|
setRailDicOptions(railOptions); |
||||
|
setXmCodeValue(railOptions[0].value); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
//车站数据
|
||||
|
const [stationList, setStationList] = useState<KTJ_BASE_TYPE[]>([]) |
||||
|
const queryStation = (value:string, option:any) => { |
||||
|
form.resetFields(["stationCode"]); |
||||
|
let tljCode = form.getFieldValue("tljCode") |
||||
|
let gwdCode = form.getFieldValue("gwdCode") |
||||
|
let xmCode = form.getFieldValue("xmCode") |
||||
|
const params = { |
||||
|
tljCode, |
||||
|
gwdCode, |
||||
|
xmCode |
||||
|
} |
||||
|
setExtraDesc({...extraDesc,xmName:option.label}) |
||||
|
queryStationData(params).then(res => { |
||||
|
if(res && res.data){ |
||||
|
setStationList(res.data) |
||||
|
}else{ |
||||
|
setStationList([]) |
||||
|
} |
||||
|
const measureForm = localStorage.getItem('measureForm') |
||||
|
if (measureForm) { |
||||
|
form.setFieldsValue({ |
||||
|
...JSON.parse(measureForm) |
||||
|
}); |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
|
||||
|
useEffect(()=>{ |
||||
|
if(systemState.orgInfo){ |
||||
|
const cloneOrgItem = systemState.orgInfo |
||||
|
if(cloneOrgItem.value){ |
||||
|
const org = JSON.parse(cloneOrgItem.value) |
||||
|
onOrgChange(org[0].value, org[0]) |
||||
|
onGwdChange(org[1].value, org[1]) |
||||
|
form.setFieldsValue({ |
||||
|
tljCode:org[0].value, |
||||
|
gwdCode: org[1].value, |
||||
|
xmCode: org[2].value |
||||
|
}); |
||||
|
queryStation(org[2].value, org[2]) |
||||
|
} |
||||
|
} |
||||
|
},[KTJOrgList, xmCodeValue, gwdCodeValue, systemState.orgInfo]) |
||||
|
|
||||
|
|
||||
|
useEffect(()=>{ |
||||
|
if(systemState.accountInfo){ |
||||
|
const cloneAccountItem = systemState.accountInfo |
||||
|
if(cloneAccountItem.value){ |
||||
|
form.setFieldsValue({ |
||||
|
operator:cloneAccountItem.value |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
},[systemState.accountInfo]) |
||||
|
|
||||
|
|
||||
|
const onRailTypeChange = (value:string, option:any) => { |
||||
|
setExtraDesc({...extraDesc,railSizeName:option.label}) |
||||
|
} |
||||
|
|
||||
|
//数据来源change
|
||||
|
const [dataSource, setDataSource] = useState('') |
||||
|
const onDataSourceChange = (value:string, option:any) => { |
||||
|
setExtraDesc({...extraDesc,dataSourceName:option.label}) |
||||
|
form.resetFields(["xbCode"]); |
||||
|
setDataSource(value) |
||||
|
} |
||||
|
|
||||
|
//车站
|
||||
|
const onSatioinChange = (value:string, option:any) => { |
||||
|
setExtraDesc({...extraDesc,stationName:option.label}) |
||||
|
} |
||||
|
|
||||
|
//股别change
|
||||
|
const [unitType, setUnitType] = useState<number>() |
||||
|
const onUnitTypeChange = (value:string) => { |
||||
|
RAIN_TYPES.map(item => { |
||||
|
if(item.code === value){ |
||||
|
setUnitType(item.type) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
useEffect(() => { |
||||
|
const initData = { |
||||
|
operator: "klj_test", |
||||
|
direction: "左", |
||||
|
} |
||||
|
form.setFieldsValue(initData); |
||||
|
}, [userInfo.nickname, form]); |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
{contextHolder} |
||||
|
<div> |
||||
|
<Form |
||||
|
form={form} |
||||
|
labelCol={{ span: 8 }} |
||||
|
wrapperCol={{ span: 16 }} |
||||
|
size="large" |
||||
|
initialValues={{ remember: true }} |
||||
|
onFinish={onFinish} |
||||
|
autoComplete="off" |
||||
|
> |
||||
|
<div className="layout"> |
||||
|
<Form.Item |
||||
|
label="操作员" |
||||
|
name="operator" |
||||
|
rules={[{ required: true, message: "请输入操作员姓名" }]} |
||||
|
> |
||||
|
<Input /> |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
label="测量名称" |
||||
|
name="name" |
||||
|
rules={[{ required: true, message: "请输入测量名称" }]} |
||||
|
> |
||||
|
<Input placeholder="请输入测量名称" /> |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
label="铁路局" |
||||
|
name="tljCode" |
||||
|
rules={[{ required: true, message: "请选择铁路局" }]} |
||||
|
> |
||||
|
<Select |
||||
|
onChange={onOrgChange} |
||||
|
placeholder="请选择铁路段" |
||||
|
> |
||||
|
{KTJOrgList.map((item) => ( |
||||
|
<Option key={item.key} value={item.key}>{item.value}</Option> |
||||
|
))} |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
|
||||
|
<Form.Item |
||||
|
label="铁路段" |
||||
|
name="gwdCode" |
||||
|
rules={[{ required: true, message: "请选择铁路段" }]} |
||||
|
> |
||||
|
<Select |
||||
|
onChange={onGwdChange} |
||||
|
placeholder="请选择铁路段" |
||||
|
value={gwdCodeValue} |
||||
|
options={gwdDicOptions.map((item) => ({ label: item.label, value: item.value }))} |
||||
|
> |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="铁路线" |
||||
|
name="xmCode" |
||||
|
rules={[{ required: true, message: "请选择铁路线" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择铁路线" |
||||
|
value={xmCodeValue} |
||||
|
onChange={queryStation} |
||||
|
options={railDicOptions.map((item) => ({ label: item.label, value: item.value }))} |
||||
|
> |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
label="轨型" |
||||
|
name="railSize" |
||||
|
rules={[{ required: true, message: "请选择轨型" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择轨型" |
||||
|
onChange={onRailTypeChange} |
||||
|
options={WRPS_GGGX_List.map((item) => ({ |
||||
|
label: item.value, |
||||
|
value: item.key, |
||||
|
}))} |
||||
|
></Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="数据来源" |
||||
|
name="dataSource" |
||||
|
rules={[{ required: true, message: "请选择数据来源" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择数据来源" |
||||
|
onChange={onDataSourceChange} |
||||
|
options={SJLY_List.map((item) => ({ |
||||
|
label: item.value, |
||||
|
value: item.key, |
||||
|
}))} |
||||
|
></Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="车站" |
||||
|
name="stationCode" |
||||
|
rules={[{ required: true, message: "请选择车站" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择车站" |
||||
|
onChange={onSatioinChange} |
||||
|
> |
||||
|
{stationList.map((item) => ( |
||||
|
<Option key={item.key} value={item.key}>{item.value}</Option> |
||||
|
))} |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="线路分类" |
||||
|
name="lineClassify" |
||||
|
rules={[{ required: true, message: "请选择线路分类" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择线路分类" |
||||
|
options={XLFL_List.map((item) => ({ |
||||
|
label: item.value, |
||||
|
value: item.key, |
||||
|
}))} |
||||
|
></Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="采集方式" |
||||
|
name="dataType" |
||||
|
rules={[{ required: true, message: "请选择采集方式" }]} |
||||
|
> |
||||
|
<Select |
||||
|
placeholder="请选择采集方式" |
||||
|
options={WRPS_CJFS_List.map((item) => ({ |
||||
|
label: item.value, |
||||
|
value: item.key, |
||||
|
}))} |
||||
|
></Select> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="批次" |
||||
|
name="batch" |
||||
|
rules={[{ required: true, message: "请输入批次" }]} |
||||
|
> |
||||
|
<Input placeholder="请输入批次" /> |
||||
|
</Form.Item> |
||||
|
|
||||
|
{/* <Form.Item |
||||
|
label="位置" |
||||
|
name="location" |
||||
|
rules={[{ required: false, message: "请输入位置" }]} |
||||
|
> |
||||
|
<Input placeholder="请输入位置" /> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="方向" |
||||
|
name="direction" |
||||
|
rules={[{ required: false, message: "请输入方向" }]} |
||||
|
> |
||||
|
<Select |
||||
|
className="w-[5rem]" |
||||
|
options={[ |
||||
|
{ value: "左", label: "左侧" }, |
||||
|
{ value: "右", label: "右侧" }, |
||||
|
]} |
||||
|
/> |
||||
|
</Form.Item> */} |
||||
|
{dataSource === 'DCDC' ? ( |
||||
|
<> |
||||
|
<Form.Item |
||||
|
label="道岔号" |
||||
|
name="turnoutNum" |
||||
|
rules={[{ required: true, message: "请输入道岔号" }]} |
||||
|
> |
||||
|
<InputNumber className="w-[18vw]" placeholder="请输入道岔号" /> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="枕木号" |
||||
|
name="sleeperNum" |
||||
|
rules={[{ required: true, message: "请输入枕木号" }]} |
||||
|
> |
||||
|
<InputNumber className="w-[18vw]" placeholder="请输入枕木号" /> |
||||
|
</Form.Item> |
||||
|
|
||||
|
<Form.Item |
||||
|
label="行别" |
||||
|
name="xbCode" |
||||
|
rules={[{ required: true, message: "请选择行别" }]} |
||||
|
|
||||
|
> |
||||
|
<Select placeholder="请选择行别" options={xbCodeOptions}> |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
</> |
||||
|
) : ( |
||||
|
<Form.Item |
||||
|
label="行别" |
||||
|
name="xbCode" |
||||
|
rules={[{ required: true, message: "请选择行别" }]} |
||||
|
> |
||||
|
<Select placeholder="请选择行别"> |
||||
|
{XB_CODES.map((item) => ( |
||||
|
<Option key={item.code} value={item.code}> |
||||
|
{item.name} |
||||
|
</Option> |
||||
|
))} |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
)} |
||||
|
|
||||
|
{dataSource === "XLDC" && |
||||
|
<div style={{display:"flex"}}> |
||||
|
<Form.Item |
||||
|
label="里程" |
||||
|
style={{marginLeft:"5vw"}} |
||||
|
name="kilometre" |
||||
|
rules={[{ required: true, message: "请输入" }]} |
||||
|
> |
||||
|
<InputNumber className="w-[7vw]" placeholder="公里" /> |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
> |
||||
|
+ |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
name="meters" |
||||
|
style={{marginLeft:"10px"}} |
||||
|
rules={[{ required: true, message: "请输入" }]} |
||||
|
> |
||||
|
<InputNumber className="w-[6vw]" placeholder="百米" /> |
||||
|
</Form.Item> |
||||
|
</div> |
||||
|
} |
||||
|
|
||||
|
<Form.Item |
||||
|
label="股别" |
||||
|
name="unitType" |
||||
|
rules={[{ required: true, message: "请选择股别" }]} |
||||
|
> |
||||
|
<Select placeholder="请选择股别" onChange={onUnitTypeChange} options={unitTypeList}> |
||||
|
</Select> |
||||
|
</Form.Item> |
||||
|
{unitType === 2 && |
||||
|
<Form.Item |
||||
|
label="半径" |
||||
|
name="radius" |
||||
|
rules={[{ required: true, message: "请输入半径" }]} |
||||
|
> |
||||
|
<InputNumber className="w-[18vw]" placeholder="请输入半径" /> |
||||
|
</Form.Item> |
||||
|
} |
||||
|
|
||||
|
</div> |
||||
|
<div className="flex justify-center w-[60vw] mt-[15vh]"> |
||||
|
<Form.Item label={null} > |
||||
|
<Button style={{ width: 150 }} onClick={() => navigate("../action", { replace: true })}> |
||||
|
返回 |
||||
|
</Button> |
||||
|
</Form.Item> |
||||
|
<Form.Item label={null}> |
||||
|
<Button |
||||
|
type="primary" |
||||
|
size="large" |
||||
|
style={{ width: 150, marginLeft:"20px" }} |
||||
|
htmlType="submit" |
||||
|
> |
||||
|
保存测量 |
||||
|
</Button> |
||||
|
</Form.Item> |
||||
|
</div> |
||||
|
</Form> |
||||
|
</div> |
||||
|
</> |
||||
|
); |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue