Browse Source

添加测量详情页面

master
zhangjiming 5 months ago
parent
commit
7f72436324
  1. 6
      src/components/MeasureItem.tsx
  2. 17
      src/pages/MeasureRecord.tsx
  3. 44
      src/pages/Mine.tsx

6
src/components/MeasureItem.tsx

@ -17,12 +17,13 @@ export default function MeasureItem(props: {
segment: string; segment: string;
direction: string; direction: string;
railType: string; railType: string;
onDetail?: () => void;
}) { }) {
return ( return (
<div> <div>
<section className="h-10 flex justify-between items-center px-2"> <section className="h-10 flex justify-between items-center px-2">
<h1 className="text-base font-medium ">{props.name}</h1> <h1 className="text-base font-medium ">{props.name}</h1>
<div className="self-stretch flex items-center">
<div className="self-stretch flex items-center" onClick={props.onDetail}>
<span className="mr-2 text-sm text-primary font-medium"></span> <span className="mr-2 text-sm text-primary font-medium"></span>
<img src={icon_arr} alt="arr" className="h-[10px]" /> <img src={icon_arr} alt="arr" className="h-[10px]" />
</div> </div>
@ -51,6 +52,7 @@ export function MeasureItemEx(props: {
railType: string; railType: string;
selected: boolean; selected: boolean;
onSelected?: () => void; onSelected?: () => void;
onDetail?: () => void;
}) { }) {
return ( return (
<div className="flex" onClick={props.onSelected}> <div className="flex" onClick={props.onSelected}>
@ -64,7 +66,7 @@ export function MeasureItemEx(props: {
<div className="flex-1"> <div className="flex-1">
<section className="h-10 flex justify-between items-center px-2"> <section className="h-10 flex justify-between items-center px-2">
<h1 className="text-base font-medium ">{props.name}</h1> <h1 className="text-base font-medium ">{props.name}</h1>
<div className="self-stretch flex items-center">
<div className="self-stretch flex items-center" onClick={props.onDetail}>
<span className="mr-2 text-sm text-primary font-medium"></span> <span className="mr-2 text-sm text-primary font-medium"></span>
<img src={icon_arr} alt="arr" className="h-[10px]" /> <img src={icon_arr} alt="arr" className="h-[10px]" />
</div> </div>

17
src/pages/MeasureRecord.tsx

@ -0,0 +1,17 @@
import { NavBar } from 'antd-mobile';
import { useNavigate } from 'react-router-dom';
export default function MeasureRecord() {
const navigate = useNavigate();
const back = () => navigate(-1);
return (
<div>
<NavBar className="bg-white" onBack={back}>
</NavBar>
<div className="main-page-content overflow-x-hidden overflow-y-auto">
</div>
</div>
);
}

44
src/pages/Mine.tsx

@ -2,6 +2,7 @@ import { List, NavBar } from 'antd-mobile';
import { useState } from 'react'; import { useState } from 'react';
import MeasureItem, { MeasureItemEx } from '../components/MeasureItem'; import MeasureItem, { MeasureItemEx } from '../components/MeasureItem';
import './Mine.scss'; import './Mine.scss';
import { useNavigate } from 'react-router-dom';
const dataList = [ const dataList = [
{ {
@ -52,7 +53,8 @@ const dataList = [
]; ];
export default function Mine() { export default function Mine() {
const [tabIndex, setTabIndex] = useState(1);
const navigate = useNavigate();
const [tabIndex, setTabIndex] = useState(0);
const [selectIds, setSelectIds] = useState<number[]>([]); const [selectIds, setSelectIds] = useState<number[]>([]);
const onItemSelected = (id: number) => { const onItemSelected = (id: number) => {
if (selectIds.includes(id)) { if (selectIds.includes(id)) {
@ -89,7 +91,7 @@ export default function Mine() {
<List> <List>
{dataList.map(item => ( {dataList.map(item => (
<List.Item key={item.id}> <List.Item key={item.id}>
<MeasureItem {...item} />
<MeasureItem {...item} onDetail={() => navigate('/measure/record', {})} />
</List.Item> </List.Item>
))} ))}
</List> </List>
@ -97,23 +99,27 @@ export default function Mine() {
)} )}
{tabIndex === 1 && ( {tabIndex === 1 && (
<> <>
<div className='flex items-center gap-3 px-4 mb-4'>
<button className='btn-contained rounded-md h-9 w-[100px]' disabled={selectIds.length === 0} ></button>
<p className='text-sm text-[#AFAFAF]'></p>
</div>
<div className="unUpload-list overflow-x-hidden overflow-y-auto">
<List>
{dataList.map(item => (
<List.Item key={item.id}>
<MeasureItemEx
{...item}
selected={selectIds.includes(item.id)}
onSelected={() => onItemSelected(item.id)}
/>
</List.Item>
))}
</List>
</div>
<div className="flex items-center gap-3 px-4 mb-4">
<button
className="btn-contained rounded-md h-9 w-[100px]"
disabled={selectIds.length === 0}>
</button>
<p className="text-sm text-[#AFAFAF]"></p>
</div>
<div className="unUpload-list overflow-x-hidden overflow-y-auto">
<List>
{dataList.map(item => (
<List.Item key={item.id}>
<MeasureItemEx
{...item}
selected={selectIds.includes(item.id)}
onSelected={() => onItemSelected(item.id)}
/>
</List.Item>
))}
</List>
</div>
</> </>
)} )}
</main> </main>

Loading…
Cancel
Save