measure design incomplete

This commit is contained in:
Фролов 2021-09-03 09:26:43 +05:00
parent dc324001e8
commit c831cf0117
5 changed files with 133 additions and 13 deletions

View File

@ -60,10 +60,15 @@ export const Editor = ({idWell, idCategory, columns, onUpdate}) => {
id: id,
idWell: idWell,
idCategory: idCategory,
timestamp: timestamp?? moment(),
timestamp: moment(timestamp)?? moment(),
data,
}
await MeasureService.update(idWell, measure)
try{
await MeasureService.update(idWell, measure)
}
catch(ex){
console.write(ex)
}
if(onUpdate)
onUpdate()
else

View File

@ -0,0 +1,62 @@
import { useState, useEffect } from 'react'
import { Button, Modal, Timeline } from 'antd'
import moment from 'moment'
import { HourglassOutlined } from '@ant-design/icons'
import LoaderPortal from '../../components/LoaderPortal'
import { invokeWebApiWrapperAsync } from '../../components/factory'
import { MeasureService } from '../../services/api'
import { Editor } from './Editor'
import TimelineItem from 'antd/lib/timeline/TimelineItem'
//import { View } from './View'
const format='YYYY.MM.DD HH:mm'
export const MeasureTable2 = ({idWell, idCategory, title, columns}) => {
const [showLoader, setShowLoader] = useState(false)
const [showEditor, setShowEditor] = useState(false)
const [history, setHistory] = useState([])
const update = () => invokeWebApiWrapperAsync(async()=>{
const data = await MeasureService.getHisory(idWell, idCategory)
const story = data?.map( i=> ({
id: i.id,
idWell: i.idWell,
idCategory: i.idCategory,
timestamp: moment.utc(i.timestamp).local().format(format),
...i.data}))
setHistory(story??[])
}
, setShowLoader
, "не удалось загрузить")
useEffect(update, [idWell, idCategory])
return <LoaderPortal show={showLoader}>
<h3>{title}</h3>
&nbsp;
<Button
onClick={() => setShowEditor(true)}
icon={<HourglassOutlined/>}>История</Button>
<Timeline>
{history.map(item=><TimelineItem value={item}>{item.timestamp}</TimelineItem>)}
</Timeline>
{/* <View
item = {lastData?.data}
columns = {columns}/> */}
<Modal
title={title}
centered
visible={showEditor}
onOk={() => setShowEditor(false)}
onCancel={() => setShowEditor(false)}
width="95%"
footer={null}
>
<Editor
idWell={idWell}
idCategory={idCategory}
columns = {columns}
onUpdate={update}/>
</Modal>
</LoaderPortal>
}

View File

@ -0,0 +1,38 @@
import { Empty } from 'antd';
import {Grid, GridItem} from '../../components/Grid'
export const View = ({columns, item}) => {
if (!item || !columns?.length)
return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE}/>
const colsCount = 3
const viewItems = columns.map( (column, i) => {
const row = Math.floor(i / colsCount) + 1
const colb = i % colsCount
return <>
<GridItem
row={row}
col={colb*2 + 1}
background='#00000005'
border='1px solid #FFFE'
>
{column.title}
</GridItem>
<GridItem
row={row}
col={colb*2 + 2}
border='1px solid rgba(0, 0, 0, 0.05)'
justifyContect='right'
marginRight='16px'
fontWeight='bold'
textAlign='right'>
{column.render ? column.render(item[column.dataIndex]) : item[column.dataIndex]}
</GridItem>
</>
})
return <Grid>
{viewItems}
</Grid>
}

View File

@ -3,19 +3,33 @@ import {Input} from 'antd'
const {TextArea} = Input
export const v = (text) => <div
style={{
writingMode:'vertical-rl',
textOrientation: 'mixed',
verticalAlign: 'top',
}}>
{text}
</div>
// export const v = (text) => <div
// style={{
// position: 'absolute',
// top: '0',
// left: '0',
// transform: 'rotate(-90deg)',
// transformOrigin: 'left',
// height:'000px',
// width:'400px'
// }}>
// {text}
// </div>
// export const v = (text) => <div
// style={{
// writingMode:'vertical-lr',
// textOrientation: 'mixed',
// }}>
// {text}
// </div>
export const v = (text) => text
export const numericColumnOptions = {
editable: true,
initialValue: 0,
width:'5em',
width:'4rem',
formItemRules: [
{
required: true,
@ -28,4 +42,4 @@ export const numericColumnOptions = {
export const textColumnOptions = {
editable:true,
input:<TextArea/>,
width:'20em'}
width:'20rem'}

View File

@ -2,10 +2,11 @@ import { columnsMudDiagram} from './columnsMudDiagram'
import { columnsDrillingFluid} from './columnsDrillingFluid'
import { columnsNnb } from './columnsNnb'
import { MeasureTable } from './MeasureTable'
import { MeasureTable2 } from './MeasureTable2'
export default function Measure({idWell}){
return <>
<MeasureTable
<MeasureTable2
idWell={idWell}
idCategory={1}
title='Замер бурового раствора'