5 changed files with 148 additions and 76 deletions
-
60src/pages/measure/components/MeasureAction.tsx
-
118src/pages/measure/components/MeasureConfig.tsx
-
36src/services/measure/analysis.ts
-
3src/services/wsTypes.ts
-
7src/store/features/contextSlice.ts
@ -1,57 +1,91 @@ |
|||||
import { Button, Form, Input, Select } from "antd"; |
|
||||
|
import { Button, Form, Input, message } from "antd"; |
||||
|
import { useEffect } from "react"; |
||||
|
import { useSelector } from "react-redux"; |
||||
import { useNavigate } from "react-router"; |
import { useNavigate } from "react-router"; |
||||
|
import { createMeasure } from "../../../services/measure/analysis"; |
||||
|
|
||||
export default function MeasureConfig() { |
export default function MeasureConfig() { |
||||
const navigate = useNavigate() |
|
||||
const onFinish = (values: any) => { |
|
||||
console.log('Received values of form: ', values); |
|
||||
navigate('../action') |
|
||||
}; |
|
||||
|
const navigate = useNavigate(); |
||||
|
const [messageApi, contextHolder] = message.useMessage(); |
||||
|
//@ts-ignore
|
||||
|
const context = useSelector(store => store.context); |
||||
|
const onFinish = (values: any) => { |
||||
|
console.log("Received values of form: ", values); |
||||
|
createMeasure({ |
||||
|
operatorName: values["username"], |
||||
|
name: values["measureName"], |
||||
|
lineName: values["lineName"], |
||||
|
location: values["position"], |
||||
|
}).then(res => { |
||||
|
if (res.status !== 0) { |
||||
|
messageApi.error(res.data.info); |
||||
|
} else { |
||||
|
navigate("../action"); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
const [form] = Form.useForm(); |
||||
|
useEffect(() => { |
||||
|
form.setFieldsValue({ |
||||
|
username: context.loginUser.nickname || "", |
||||
|
}); |
||||
|
}, [context.loginUser.nickname, form]); |
||||
return ( |
return ( |
||||
<div className="h-full flex justify-center items-center"> |
|
||||
<Form |
|
||||
name="basic" |
|
||||
labelCol={{ span: 8 }} |
|
||||
wrapperCol={{ span: 16 }} |
|
||||
style={{ minWidth: 360, maxWidth: 600 }} |
|
||||
size="large" |
|
||||
initialValues={{ remember: true }} |
|
||||
onFinish={onFinish} |
|
||||
// onFinishFailed={onFinishFailed}
|
|
||||
autoComplete="off"> |
|
||||
<Form.Item label="操作员" name="username" rules={[{ required: true, message: "Please input your username!" }]}> |
|
||||
<Input /> |
|
||||
</Form.Item> |
|
||||
|
<> |
||||
|
{contextHolder} |
||||
|
|
||||
|
<div className="h-full flex justify-center items-center"> |
||||
|
<Form |
||||
|
form={form} |
||||
|
labelCol={{ span: 8 }} |
||||
|
wrapperCol={{ span: 16 }} |
||||
|
style={{ minWidth: 360, maxWidth: 600 }} |
||||
|
size="large" |
||||
|
initialValues={{ remember: true }} |
||||
|
onFinish={onFinish} |
||||
|
// onFinishFailed={onFinishFailed}
|
||||
|
autoComplete="off"> |
||||
|
<Form.Item label="操作员" name="username"> |
||||
|
<Input disabled /> |
||||
|
</Form.Item> |
||||
|
|
||||
<Form.Item label="轨型" name="trackType"> |
|
||||
|
{/* <Form.Item label="轨型" name="trackType"> |
||||
<Select> |
<Select> |
||||
<Select.Option value="demo">Demo</Select.Option> |
<Select.Option value="demo">Demo</Select.Option> |
||||
</Select> |
</Select> |
||||
</Form.Item> |
|
||||
<Form.Item label="核校" name="calibrationType"> |
|
||||
|
</Form.Item> */} |
||||
|
{/* <Form.Item label="核校" name="calibrationType"> |
||||
<Select> |
<Select> |
||||
<Select.Option value="demo">Demo</Select.Option> |
<Select.Option value="demo">Demo</Select.Option> |
||||
</Select> |
</Select> |
||||
</Form.Item> |
|
||||
<Form.Item label="测量名称" name="measureName" rules={[{ required: true, message: "Please input your username!" }]}> |
|
||||
<Input /> |
|
||||
</Form.Item> |
|
||||
<Form.Item label="线路名称" name="lineName" rules={[{ required: true, message: "Please input your username!" }]}> |
|
||||
<Input /> |
|
||||
</Form.Item> |
|
||||
<Form.Item label="位置" name="position" rules={[{ required: true, message: "Please input your username!" }]}> |
|
||||
<Input /> |
|
||||
</Form.Item> |
|
||||
<Form.Item label="方向" name="direction" rules={[{ required: true, message: "Please input your username!" }]}> |
|
||||
|
</Form.Item> */} |
||||
|
<Form.Item |
||||
|
label="测量名称" |
||||
|
name="measureName" |
||||
|
rules={[{ required: true, message: "Please input your username!" }]}> |
||||
|
<Input /> |
||||
|
</Form.Item> |
||||
|
<Form.Item |
||||
|
label="线路名称" |
||||
|
name="lineName" |
||||
|
rules={[{ required: true, message: "Please input your username!" }]}> |
||||
|
<Input /> |
||||
|
</Form.Item> |
||||
|
<Form.Item label="位置" name="position" rules={[{ required: true, message: "Please input your username!" }]}> |
||||
|
<Input /> |
||||
|
</Form.Item> |
||||
|
{/* <Form.Item label="方向" name="direction" rules={[{ required: true, message: "Please input your username!" }]}> |
||||
<Input /> |
<Input /> |
||||
</Form.Item> |
|
||||
|
</Form.Item> */} |
||||
|
|
||||
<Form.Item label={null}> |
|
||||
<Button type="primary" size="large" style={{ width: 220 }} htmlType="submit"> |
|
||||
开始测量 |
|
||||
</Button> |
|
||||
</Form.Item> |
|
||||
</Form> |
|
||||
</div> |
|
||||
|
<Form.Item label={null}> |
||||
|
<Button type="primary" size="large" style={{ width: 220 }} htmlType="submit"> |
||||
|
开始测量 |
||||
|
</Button> |
||||
|
</Form.Item> |
||||
|
</Form> |
||||
|
</div> |
||||
|
</> |
||||
); |
); |
||||
} |
} |
@ -1,16 +1,46 @@ |
|||||
import httpRequest, { type BaseResponse } from "../httpRequest"; |
import httpRequest, { type BaseResponse } from "../httpRequest"; |
||||
import type { DetailTable } from "../../services/measure/type"; |
import type { DetailTable } from "../../services/measure/type"; |
||||
|
|
||||
export function startMeasurement() { |
export function startMeasurement() { |
||||
return httpRequest<BaseResponse>({ |
return httpRequest<BaseResponse>({ |
||||
url: "/measurement-task/start-measurement", |
url: "/measurement-task/start-measurement", |
||||
method: "POST", |
method: "POST", |
||||
}); |
}); |
||||
} |
} |
||||
|
|
||||
|
export function stopMeasurement() { |
||||
|
return httpRequest<BaseResponse>({ |
||||
|
url: "/measurement-task/stop-measurement", |
||||
|
method: "POST", |
||||
|
}); |
||||
|
} |
||||
|
export function saveMeasurement() { |
||||
|
return httpRequest<BaseResponse>({ |
||||
|
url: "/measurement-task/save-report", |
||||
|
method: "POST", |
||||
|
}); |
||||
|
} |
||||
|
|
||||
export function getDetailList() { |
export function getDetailList() { |
||||
return httpRequest<BaseResponse<{list:DetailTable[]}>>({ |
|
||||
|
return httpRequest<BaseResponse<{ list: DetailTable[] }>>({ |
||||
url: "/measurement-task/cache-measurement", |
url: "/measurement-task/cache-measurement", |
||||
method: "POST", |
method: "POST", |
||||
}); |
}); |
||||
} |
|
||||
|
} |
||||
|
|
||||
|
export type MeasureRecord = { |
||||
|
operatorName: "张三"; //操作员名称
|
||||
|
// trackShapeCode: "code01"; //轨形code
|
||||
|
// verificationMethodCode: "code01"; //核校方式code
|
||||
|
name: "某某铁路"; ///测量名称
|
||||
|
lineName: "河北段"; //线路名称
|
||||
|
location: "100米处"; //位置
|
||||
|
// direction: "左"; //方向
|
||||
|
}; |
||||
|
|
||||
|
export function createMeasure(params: MeasureRecord) { |
||||
|
return httpRequest<BaseResponse>({ |
||||
|
url: "/measurement-task/cache-measurement", |
||||
|
params, |
||||
|
method: "POST", |
||||
|
}); |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue