From 3065b474240fc2ce465805216f68502383312dcd Mon Sep 17 00:00:00 2001
From: LiLongLong <13717757313@163.com>
Date: Mon, 10 Mar 2025 17:35:09 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B5=8B=E9=87=8F=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E5=88=A0=E9=99=A4=EF=BC=8C=E5=AF=BC=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/App.tsx | 35 ++---
src/pages/measure/components/MeasureDetail.tsx | 173 +++++++++++++++++++------
src/services/measure/analysis.ts | 24 +++-
src/services/measure/type.ts | 20 ++-
4 files changed, 194 insertions(+), 58 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index 2cdf77c..a21d1f3 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -2,13 +2,14 @@ import React, { useEffect } from "react";
import "./App.scss";
import { Outlet, useNavigate } from "react-router";
-import { Layout } from "antd";
+import { Layout, ConfigProvider } from "antd";
import { default as AppHeader } from "./components/Header";
import { default as AppFooter } from "./components/Footer";
import SideMenu from "./components/SideMenu";
import { createWebSocket, sharedWsUrl } from "./services/socket";
import { useAppDispatch } from "./utils/hooks";
import { updateDeviceState } from "./store/device/deviceState";
+import zhCN from 'antd/lib/locale/zh_CN'; // 引入中文语言包
const { Header, Footer, Sider, Content } = Layout;
function App() {
@@ -49,22 +50,24 @@ function App() {
return (
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
);
}
diff --git a/src/pages/measure/components/MeasureDetail.tsx b/src/pages/measure/components/MeasureDetail.tsx
index d3f8ee4..58ea74f 100644
--- a/src/pages/measure/components/MeasureDetail.tsx
+++ b/src/pages/measure/components/MeasureDetail.tsx
@@ -1,13 +1,14 @@
-import {getDetailList, delDetail} from '../../../services/measure/analysis'
+import {getDetailList, delDetail, getDetail, getPointByUuid} from '../../../services/measure/analysis'
import { useState, useEffect } from 'react'
-import {message, Button, type TableColumnsType, type TableProps, Modal, Table, Pagination } from 'antd';
+import {message, Button, type TableColumnsType, type TableProps, Modal, Table, Pagination, Input } from 'antd';
import { useNavigate } from 'react-router-dom';
-import type { DetailTable } from "../../../services/measure/type";
+import type { DetailTable, SearchParams } from "../../../services/measure/type";
import { ExclamationCircleFilled } from '@ant-design/icons';
export default function MeasureDetail() {
const navigate = useNavigate();
+ const { Search } = Input;
function onToMeasure(){
navigate('/measure/config')
}
@@ -50,10 +51,18 @@ export default function MeasureDetail() {
{
title: '轨型',
dataIndex: 'trackShapeCode',
+ render:(_, record)=>{
+ const trackShapeCode = record.trackShapeCode
+ return trackShapeCode ? trackShapeCode : '无'
+ }
},
{
title: '方向',
dataIndex: 'direction',
+ render:(_, record)=>{
+ const direction = record.direction
+ return direction ? direction : '无'
+ }
},
{
title: '创建者',
@@ -63,34 +72,51 @@ export default function MeasureDetail() {
title: '时间',
dataIndex: 'createTime',
},
+ {
+ title: '操作',
+ dataIndex: 'op',
+ width:180,
+ align:'center',
+ render:(_, record)=>{
+ return
+
+
+
+
+
+
+ }
+ },
];
const [tableData, setTableData] = useState([])
const [total, setTotal] = useState(0)
- const getDetailDataList = (params:{pageSize:number, pageNum:number}) => {
-
- getDetailList(params).then(res => {
- if(res.success){
- console.log('res====', res)
- //@ts-ignore
- setTableData(res.data.list)
- setTotal(res.data.total)
- }else{
- // setTableData(detailList)
- }
- }).catch(e=>{
- //如果接口异常,则使用mock数据
+ const getDetailDataList = (params:SearchParams) => {
+ setLoading(true)
+ getDetailList(params).then(res => {
+ if(res.success){
+ setLoading(false)
+ //@ts-ignore
+ setTableData(res.data.list)
+ setTotal(res.data.total)
+ }else{
// setTableData(detailList)
- })
+ }
+ }).catch(e=>{
+ //如果接口异常,则使用mock数据
+ // setTableData(detailList)
+ }).finally(()=>{
+ setLoading(false)
+ })
}
const [selectionType, setSelectionType] = useState<'checkbox'>('checkbox');
const { confirm } = Modal;
- const onDel = () => {
+ const onBatchDel = () => {
confirm({
title: '提示',
icon: ,
- content: '请确认是否删除此条数据',
+ content: '请确认是否删除选中的数据',
okText:'确认',
cancelText:'取消',
onOk() {
@@ -101,7 +127,49 @@ export default function MeasureDetail() {
},
});
}
+
+ const onDel = (item:DetailTable) => {
+ confirm({
+ title: '提示',
+ icon: ,
+ content: '请确认是否删除选中的数据',
+ okText:'确认',
+ cancelText:'取消',
+ onOk() {
+ doDel({ids:item.id})
+ },
+ onCancel() {
+ console.log('Cancel');
+ },
+ });
+ }
+ const onShowDetail = (item:DetailTable)=> {
+ message.warning('正在开发中')
+ return;
+ getDetail({id:item.id}).then(res=>{
+ console.log('res==测量记录详情=', res)
+ if(res){
+ //@ts-ignore
+ getRecordByUuid(res.data.uuid)
+ }
+ })
+ }
+
+ const onDetaiResult = (item:DetailTable) => {
+ message.warning('正在开发中')
+ return;
+ }
+
+ const getRecordByUuid = (uuid:string) => {
+ getPointByUuid({uuid}).then(res=>{
+ console.log('=========================', res)
+ })
+ }
+
+ type DelParams = {
+ ids: string | number;
+ }
const onHandelDelData = () =>{
let list = [...selectRows]
const ids = list.map(item => item.id)
@@ -111,60 +179,91 @@ export default function MeasureDetail() {
const params = {
ids:ids.join(',')
}
+ doDel(params)
+
+ }
+
+ const doDel = (params:DelParams) => {
delDetail(params).then(res => {
if(res.success){
message.success('删除成功')
- setSelectedRowKeys([])
const params = {
pageSize,
pageNum,
}
getDetailDataList(params)
+ setSelectedRowKeys([])
+ setSelectedRow([])
+
}
}).catch(e=> {
//删除mock的数据
- const filterList = tableData && tableData.filter(item => !ids.includes(item.id))
- setTableData(filterList)
- message.success('删除成功')
- setSelectedRow([])
+ // const filterList = tableData && tableData.filter(item => !ids.includes(item.id))
+ // setTableData(filterList)
+ // message.success('删除成功')
+ // setSelectedRow([])
})
-
}
const [pageNum, setPageNum] = useState(1)
- const [pageSize, setPageSize] = useState(8)
- const onPageChange = (pageNum:number) => {
- console.log('pageNum---', pageNum)
- setPageNum(pageNum)
- const params = {
- pageSize,
- pageNum,
+ const [pageSize, setPageSize] = useState(5)
+ const onPageChange = (pageNumValue:number, pageSizeValue:number) => {
+ setPageNum(pageNumValue)
+ setPageSize(pageSizeValue)
+ searchParams = {
+ ...searchParams,
+ pageSize:pageSizeValue,
+ pageNum:pageNumValue,
}
- getDetailDataList(params)
+ getDetailDataList(searchParams)
}
+ const [name, setName] = useState()
+ const [lineName, setLineName] = useState()
+ let searchParams:SearchParams = {
+ pageNum,
+ pageSize,
+ }
+ const onSearch = ()=> {
+ setPageNum(1)
+ setPageSize(5)
+ searchParams = {
+ pageSize,
+ pageNum: 1,
+ name,
+ lineName
+ }
+ getDetailDataList(searchParams)
+ }
+ let [loading, setLoading] = useState(false)
return (
-
+
+ setName(e.target.value)} style={{ width: 200 }}/>
+ setLineName(e.target.value)} style={{ width: 200 }}/>
+
locale={{
emptyText: '无数据',
}}
+ loading={loading}
rowSelection={{ type: selectionType, ...rowSelection }}
columns={columns}
rowKey="id"
dataSource={tableData && tableData.map(item => ({ ...item, key: item.name }))}
pagination={false}
/>
-
+
diff --git a/src/services/measure/analysis.ts b/src/services/measure/analysis.ts
index 9f36948..69f10f0 100644
--- a/src/services/measure/analysis.ts
+++ b/src/services/measure/analysis.ts
@@ -32,7 +32,7 @@ export function saveMeasurement() {
});
}
-export function getDetailList(params: { pageSize: number, pageNum: number }) {
+export function getDetailList(params: {name?:string, pageSize: number, pageNum: number }) {
return httpRequest>({
url: "/measurement-data/list",
params,
@@ -40,7 +40,7 @@ export function getDetailList(params: { pageSize: number, pageNum: number }) {
});
}
-export function delDetail(params: { ids: string }) {
+export function delDetail(params: { ids: string | number }) {
return httpRequest({
url: `/measurement-data/delete/${params.ids}`,
method: "POST",
@@ -98,3 +98,23 @@ export function getReport(uuid: string, code: string) {
params: { uuid, code },
});
}
+
+/**
+ * 获取测量记录详情
+ * /measurement-data
+ */
+export function getDetail(params:{id:number}){
+ return httpRequest>({
+ url: `/measurement-data/${params.id}`,
+ method: "POST",
+ params,
+ });
+}
+
+export function getPointByUuid(params:{uuid:string}){
+ return httpRequest({
+ url: `/measurement-analysis/point/${params.uuid}`,
+ method: "POST",
+ params,
+ });
+}
\ No newline at end of file
diff --git a/src/services/measure/type.ts b/src/services/measure/type.ts
index 8fc1457..3248873 100644
--- a/src/services/measure/type.ts
+++ b/src/services/measure/type.ts
@@ -3,11 +3,17 @@ export type measurementItem = {
}
export type DetailTable = {
- id:number;
+ id: number;
+ createTime:string;
+ updateTime:string;
+ uuid:string;
operatorName:string;
- name: string;
trackShapeCode:string;
- createTime: string;
+ verificationMethodCode:string;
+ name:string;
+ lineName:string;
+ location:string;
+ direction:string;
}
export type MeasureRecord = {
@@ -85,3 +91,11 @@ export interface AnalysisResults {
describe: string;
}
}
+
+//搜索
+export type SearchParams = {
+ pageSize:number;
+ pageNum: number;
+ name?: string;
+ lineName?: string;
+}