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; +}