forked from ddrilling/asb_cloud_front
директория концепта удалена
This commit is contained in:
parent
54149fef8f
commit
183e9b8cde
Binary file not shown.
Before Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.7 KiB |
@ -1,92 +0,0 @@
|
|||||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" id="svg736" viewBox="0 0 8006.9226 3574.0189"
|
|
||||||
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
|
|
||||||
version="1.1" height="38.606144mm" width="86.490891mm" xml:space="preserve">
|
|
||||||
<metadata id="metadata740">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<defs id="defs674">
|
|
||||||
<style id="style669" type="text/css">
|
|
||||||
<![CDATA[
|
|
||||||
.fil4 {
|
|
||||||
fill: none
|
|
||||||
}
|
|
||||||
|
|
||||||
.fil1 {
|
|
||||||
fill: #2D2242
|
|
||||||
}
|
|
||||||
|
|
||||||
.fil3 {
|
|
||||||
fill: #9D9E9E
|
|
||||||
}
|
|
||||||
|
|
||||||
.fil0 {
|
|
||||||
fill: #E31E24
|
|
||||||
}
|
|
||||||
|
|
||||||
.fil2 {
|
|
||||||
fill: #FEFEFE
|
|
||||||
}
|
|
||||||
|
|
||||||
.fil5 {
|
|
||||||
fill: #2D2242;
|
|
||||||
fill-rule: nonzero
|
|
||||||
}
|
|
||||||
]]>
|
|
||||||
</style>
|
|
||||||
<clipPath id="id0">
|
|
||||||
<path id="path671"
|
|
||||||
d="m 5189,716 c 587,0 1063,476 1063,1063 0,587 -476,1063 -1063,1063 -588,0 -1064,-476 -1064,-1063 0,-587 476,-1063 1064,-1063 z" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<g transform="translate(-1018.0595)" id="Слой_x0020_1">
|
|
||||||
<metadata id="CorelCorpID_0Corel-Layer" />
|
|
||||||
<g id="_661845560">
|
|
||||||
<path style="fill:#e31e24" id="path677"
|
|
||||||
d="M 1756,3564 H 1018 L 3236,2 3848,3 4452,0 4400,184 C 4637,66 4905,0 5189,0 5751,0 6253,261 6579,669 l -233,810 C 6213,964 5745,584 5189,584 c -528,0 -975,341 -1134,815 l -30,108 c -20,87 -31,178 -31,272 0,660 535,1195 1195,1195 318,0 607,-125 821,-327 l -220,764 c -185,88 -388,147 -601,147 -636,0 -1194,-334 -1508,-836 l -239,842 h -702 l 187,-595 H 2146 Z M 3082,2443 3703,446 2463,2444 Z"
|
|
||||||
class="fil0" />
|
|
||||||
<path style="fill:#e31e24" id="path679"
|
|
||||||
d="m 7725,3574 c -392,-2 -748,-14 -1152,-2 L 5869,3559 6882,2 l 1790,1 -136,559 -1176,9 -121,462 h 836 c 570,93 953,697 950,1254 -3,656 -585,1291 -1300,1287 z m -995,-606 c 333,0 665,0 998,2 381,2 691,-335 693,-686 1,-291 -206,-632 -510,-673 h -824 z"
|
|
||||||
class="fil0" />
|
|
||||||
<polygon style="fill:#2d2242" id="polygon681" points="5347,1437 5105,1437 5105,1315 5347,1315 " class="fil1" />
|
|
||||||
<polygon style="fill:#2d2242" id="polygon683" points="5455,1555 4992,1555 4992,1469 5455,1469 " class="fil1" />
|
|
||||||
<polygon style="fill:#2d2242" id="polygon685" points="5597,2523 4860,2523 5027,1587 5419,1587 " class="fil1" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon687" points="5166,1737 5061,1830 5089,1676 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon689" points="5288,1737 5393,1830 5365,1676 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon691" points="5224,1696 5285,1654 5172,1654 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon693" points="5143,2007 5019,2062 5039,1952 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon695" points="5310,2007 5435,2062 5415,1952 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon697" points="5091,1894 5229,1962 5365,1894 5229,1783 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon699" points="5052,2132 5232,2251 5412,2130 5229,2043 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon701" points="5163,2297 4949,2445 4996,2184 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon703" points="5292,2297 5505,2445 5458,2184 " class="fil2" />
|
|
||||||
<polygon style="fill:#fefefe" id="polygon705" points="5226,2337 5497,2523 4958,2523 " class="fil2" />
|
|
||||||
<polygon style="fill:#2d2242" id="polygon707" points="5246,2523 5200,2523 5200,1735 5246,1735 " class="fil1" />
|
|
||||||
<g id="g709" />
|
|
||||||
<g id="g722" clip-path="url(#id0)">
|
|
||||||
<g id="_661862656">
|
|
||||||
<path style="fill:#9d9e9e" id="path711" d="m 5136,177 c -688,66 -1152,378 -1415,911 l 1475,-196 783,591 z"
|
|
||||||
class="fil3" />
|
|
||||||
<path style="fill:#9d9e9e" id="path713" d="M 6684,1229 C 6401,599 5957,260 5367,182 l 659,1333 -308,931 z"
|
|
||||||
class="fil3" />
|
|
||||||
<path style="fill:#2d2242" id="path715" d="m 6189,3044 c 509,-466 692,-994 581,-1579 l -1059,1044 -981,-1 z"
|
|
||||||
class="fil1" />
|
|
||||||
<path style="fill:#2d2242" id="path717" d="m 4267,3105 c 598,345 1157,360 1681,78 L 4633,2488 4337,1552 Z"
|
|
||||||
class="fil1" />
|
|
||||||
<path style="fill:#2d2242" id="path719" d="m 3626,1346 c -142,676 17,1212 447,1622 l 253,-1466 798,-571 z"
|
|
||||||
class="fil1" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path style="fill:none" id="path724"
|
|
||||||
d="m 5189,716 c 587,0 1063,476 1063,1063 0,587 -476,1063 -1063,1063 -588,0 -1064,-476 -1064,-1063 0,-587 476,-1063 1064,-1063 z"
|
|
||||||
class="fil4" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,350 +0,0 @@
|
|||||||
import { useState } from 'react';
|
|
||||||
import {Table, Input, Form, Popconfirm, Typography } from 'antd'
|
|
||||||
|
|
||||||
const originData = [
|
|
||||||
{
|
|
||||||
key: '1', probeNumber: '', probeExtractionDepth: '', sandstone: '', siltstone: '', argillit: '', brokenArgillit: '', coal: '', sand: '', clay: '',
|
|
||||||
camstone: '', cement: '', summary: '', drillingMud: '', sludge: '', maxSum: '', methan: '', ethan: '', propan: '', butan: '', pentan: ''
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const EditableCell = ({
|
|
||||||
editing,
|
|
||||||
dataIndex,
|
|
||||||
title,
|
|
||||||
inputType,
|
|
||||||
record,
|
|
||||||
index,
|
|
||||||
children,
|
|
||||||
...restProps
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<td {...restProps} style={{paddingLeft: 2, paddingRight: 2}}>
|
|
||||||
<div style={{width: '100%', display: 'flex', justifyContent: 'center'}}>
|
|
||||||
{editing ? (
|
|
||||||
<Form.Item
|
|
||||||
name={dataIndex}
|
|
||||||
style={{ margin: 0 }}
|
|
||||||
rules={[
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '',
|
|
||||||
pattern: /(-?[1-9]+\d*([.,]\d+)?)$|^(-?0[.,]\d*[1-9]+)$|^0$|^0.0$/
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
<Input size="small" />
|
|
||||||
</Form.Item>
|
|
||||||
) : (
|
|
||||||
children
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export function SludgeDiagram() {
|
|
||||||
const [form] = Form.useForm();
|
|
||||||
const [data, setData] = useState(originData);
|
|
||||||
const [editingKey, setEditingKey] = useState('');
|
|
||||||
|
|
||||||
const isEditing = (row) => row.key === editingKey;
|
|
||||||
|
|
||||||
const columns = [
|
|
||||||
{
|
|
||||||
title: 'N пробы',
|
|
||||||
key: 'probeNumber',
|
|
||||||
dataIndex: 'probeNumber',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Глубина отбора пробы',
|
|
||||||
key: 'probeExtractionDepth',
|
|
||||||
dataIndex: 'probeExtractionDepth',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Литология',
|
|
||||||
key: 'lithology',
|
|
||||||
dataIndex: 'lithology',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
editable: true,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: 'Песчаник (%)',
|
|
||||||
key: 'sandstone',
|
|
||||||
dataIndex: 'sandstone',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Алевролит (%)',
|
|
||||||
key: 'siltstone',
|
|
||||||
dataIndex: 'siltstone',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Аргиллит (%)',
|
|
||||||
key: 'argillit',
|
|
||||||
dataIndex: 'argillit',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Аргиллит бит. (%)',
|
|
||||||
key: 'brokenArgillit',
|
|
||||||
dataIndex: 'verticalDepth',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Уголь (%)',
|
|
||||||
key: 'coal',
|
|
||||||
dataIndex: 'coal',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Песок (%)',
|
|
||||||
key: 'sand',
|
|
||||||
dataIndex: 'sand',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Глина (%)',
|
|
||||||
key: 'clay',
|
|
||||||
dataIndex: 'clay',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Известняк (%)',
|
|
||||||
key: 'camstone',
|
|
||||||
dataIndex: 'camstone',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Цемент (%)',
|
|
||||||
key: 'cement',
|
|
||||||
dataIndex: 'cement',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
title: 'Краткое описание',
|
|
||||||
key: 'summary',
|
|
||||||
dataIndex: 'summary',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'ЛБА бурового раствора',
|
|
||||||
key: 'drillingMud',
|
|
||||||
dataIndex: 'drillingMud',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightgray-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'ЛБА (шлама)',
|
|
||||||
key: 'sludge',
|
|
||||||
dataIndex: 'sludge',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightorange-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Газопоказания',
|
|
||||||
key: 'gasIndications',
|
|
||||||
dataIndex: 'gasIndications',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: 'Сумма УВ мах. (абс%)',
|
|
||||||
key: 'maxSum',
|
|
||||||
dataIndex: 'maxSum',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'С1 метан (отн%)',
|
|
||||||
key: 'methane',
|
|
||||||
dataIndex: 'depthPlanFactDifference',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'С2 этан (отн%)',
|
|
||||||
key: 'ethan',
|
|
||||||
dataIndex: 'ethan',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'С3 пропан (отн%)',
|
|
||||||
key: 'propane',
|
|
||||||
dataIndex: 'propane',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'С4 бутан (отн%)',
|
|
||||||
key: 'butane',
|
|
||||||
dataIndex: 'butane',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'С5 пентан (отн%)',
|
|
||||||
key: 'pentane',
|
|
||||||
dataIndex: 'pentane',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightpurple-background',
|
|
||||||
editable: true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Мех. скорость',
|
|
||||||
key: 'mechanicalSpeed',
|
|
||||||
dataIndex: 'mechanicalSpeed',
|
|
||||||
align: 'center',
|
|
||||||
className: 'yellow-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Предварительное заключение о насыщении по ГК',
|
|
||||||
key: 'preliminaryConclusion',
|
|
||||||
dataIndex: 'preliminaryConclusion',
|
|
||||||
align: 'center',
|
|
||||||
className: 'lightorange-background',
|
|
||||||
editable: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Действие',
|
|
||||||
dataIndex: 'action',
|
|
||||||
align: 'center',
|
|
||||||
width: 150,
|
|
||||||
className: 'small-font',
|
|
||||||
render: (_, row) => {
|
|
||||||
const editable = isEditing(row);
|
|
||||||
return editable ? (
|
|
||||||
<span>
|
|
||||||
<a
|
|
||||||
href="javascript:;"
|
|
||||||
onClick={() => save(row.key)}
|
|
||||||
style={{ marginRight: 8 }}
|
|
||||||
>
|
|
||||||
Сохранить
|
|
||||||
</a>
|
|
||||||
<Popconfirm style={{width: '100px'}} title={<span>Отменить<br />редактирование?</span>} onConfirm={cancel}>
|
|
||||||
<a>Отменить</a>
|
|
||||||
</Popconfirm>
|
|
||||||
</span>
|
|
||||||
) : (
|
|
||||||
<Typography.Link disabled={editingKey !== ''} onClick={() => edit(row)}>
|
|
||||||
Редактировать
|
|
||||||
</Typography.Link>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
const mapColumns = (col) => {
|
|
||||||
if(col.children)
|
|
||||||
col.children = col.children.map(mapColumns)
|
|
||||||
|
|
||||||
if (!col.editable) {
|
|
||||||
return col;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
...col,
|
|
||||||
onCell: (row) => ({
|
|
||||||
row,
|
|
||||||
dataIndex: col.dataIndex,
|
|
||||||
title: col.title,
|
|
||||||
editing: isEditing(row)
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
const mergedColumns = columns.map(mapColumns);
|
|
||||||
|
|
||||||
const edit = (row) => {
|
|
||||||
form.setFieldsValue({
|
|
||||||
...row
|
|
||||||
});
|
|
||||||
setEditingKey(row.key);
|
|
||||||
};
|
|
||||||
|
|
||||||
const cancel = () => {
|
|
||||||
setEditingKey('');
|
|
||||||
};
|
|
||||||
|
|
||||||
const save = async (key) => {
|
|
||||||
try {
|
|
||||||
const row = await form.validateFields();
|
|
||||||
const newData = [...data];
|
|
||||||
const index = newData.findIndex((item) => key === item.key);
|
|
||||||
|
|
||||||
if (index > -1) {
|
|
||||||
const item = newData[index];
|
|
||||||
newData.splice(index, 1, { ...item, ...row });
|
|
||||||
setData(newData);
|
|
||||||
setEditingKey('');
|
|
||||||
} else {
|
|
||||||
newData.push(row);
|
|
||||||
setData(newData);
|
|
||||||
setEditingKey('');
|
|
||||||
}
|
|
||||||
} catch (errInfo) {
|
|
||||||
console.log('Validate Failed:', errInfo);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (<>
|
|
||||||
<Form form={form} component={false}>
|
|
||||||
<Table
|
|
||||||
components={{
|
|
||||||
body: {
|
|
||||||
cell: EditableCell,
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
columns={mergedColumns}
|
|
||||||
dataSource={data}
|
|
||||||
size={'small'}
|
|
||||||
bordered={true}
|
|
||||||
pagination={false}
|
|
||||||
/>
|
|
||||||
</Form>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
import {Row, Col} from 'antd'
|
|
||||||
|
|
||||||
import Documents from '../Documents/DocumentsTemplate'
|
|
||||||
|
|
||||||
import '@styles/equipment_details.css'
|
|
||||||
|
|
||||||
export default function EquipmentDetails({ id, equipmentTimers, equipmentSensors }) {
|
|
||||||
let stateOfEquipmentDetails = equipmentTimers.map(timer => {
|
|
||||||
return(
|
|
||||||
<p key={timer.label}>{timer.label}: <span className="right-text"><b>{timer.value} {timer.unit}</b></span></p>
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
let indicatorsOfEquipmentDetail = equipmentSensors.map(sensor => {
|
|
||||||
return(
|
|
||||||
<p key={sensor.label}>{sensor.label}: <span className="right-text"><b>{sensor.value} {sensor.unit}</b></span></p>
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
return (<>
|
|
||||||
<Row Row gutter={{ xs: 8, sm: 16, md: 24, lg: 32 }} align="middle">
|
|
||||||
<Col span={12}>
|
|
||||||
Тест 1
|
|
||||||
</Col>
|
|
||||||
<Col span={12}>
|
|
||||||
{stateOfEquipmentDetails}
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
<br/>
|
|
||||||
<Row Row gutter={{ xs: 8, sm: 16, md: 24, lg: 32 }} align="middle">
|
|
||||||
<Col span={12}>
|
|
||||||
<Documents idWell={id}/>
|
|
||||||
</Col>
|
|
||||||
<Col span={12}>
|
|
||||||
{indicatorsOfEquipmentDetail}
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
</>)
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
import {Modal} from 'antd'
|
|
||||||
import '../../styles/smbo.css'
|
|
||||||
|
|
||||||
import {useState} from "react";
|
|
||||||
|
|
||||||
export const SquareIndicator = ({state}) =>{
|
|
||||||
let bgColor = "#AAA"
|
|
||||||
switch (state){
|
|
||||||
case 1:
|
|
||||||
bgColor = "#1B1"
|
|
||||||
break
|
|
||||||
case 2:
|
|
||||||
bgColor = "#DD1"
|
|
||||||
break
|
|
||||||
case 3:
|
|
||||||
bgColor = "#D11"
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return (<svg width="32" height="32" version="1.1" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x=".25" y=".25" width="12" height="12"
|
|
||||||
fill={bgColor}
|
|
||||||
stroke="#ececec" strokeLinejoin="round" strokeWidth=".51"/>
|
|
||||||
</svg>)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function SmboPlate({title, state, operatingTime, units, children, captionValue}){
|
|
||||||
const [isModalVisible, setIsModalVisible] = useState(false)
|
|
||||||
|
|
||||||
|
|
||||||
const openModal = () => {
|
|
||||||
setIsModalVisible(!!children)
|
|
||||||
}
|
|
||||||
|
|
||||||
const closeModal = () => {
|
|
||||||
setIsModalVisible(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
const plates_smbo_equip = (
|
|
||||||
<div className="plate_container" onClick={openModal}>
|
|
||||||
<div className="plate_title">{title}</div>
|
|
||||||
<div className="plate_state"><SquareIndicator state={state}/></div>
|
|
||||||
|
|
||||||
<div className="plate_param_title">{captionValue??'наработка'} :</div>
|
|
||||||
<div className="plate_param_value">{operatingTime}</div>
|
|
||||||
<div className="plate_param_units">{units??'ч'}</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
|
|
||||||
return(<>
|
|
||||||
{plates_smbo_equip}
|
|
||||||
|
|
||||||
<Modal
|
|
||||||
title={title}
|
|
||||||
centered
|
|
||||||
visible={isModalVisible}
|
|
||||||
onOk={closeModal}
|
|
||||||
onCancel={closeModal}
|
|
||||||
width={800}
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
</Modal>
|
|
||||||
</>)
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 180 KiB |
Binary file not shown.
Before Width: | Height: | Size: 496 KiB |
@ -1,614 +0,0 @@
|
|||||||
import SmboPlate from './SmboPlate'
|
|
||||||
import EquipmentDetails from './EquipmentDetails'
|
|
||||||
import '../../styles/smbo.css'
|
|
||||||
|
|
||||||
const platesData = [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 1,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
//captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r1'
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// id: 2,
|
|
||||||
// title: 'Емкости бурового раствора',
|
|
||||||
// placeHolderId: 2,
|
|
||||||
// state: 1,
|
|
||||||
// equipmentTimers: [
|
|
||||||
// {label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
// {label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
// {label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
// {label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
// {label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
// {label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
// ],
|
|
||||||
// equipmentSensors: [
|
|
||||||
// {label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
// {label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
// {label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
// {label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
// {label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
// {label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
// {label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
// {label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
// ],
|
|
||||||
// captionValue: 'У-У-У-у-у-у',
|
|
||||||
// custom: 'Я не понял про это',
|
|
||||||
// className: 'c2 r1'
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
title: 'Подпорные насосы',
|
|
||||||
placeHolderId: 3,
|
|
||||||
state: 2,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c3 r1'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
title: 'Буровой насос №1',
|
|
||||||
placeHolderId: 4,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c4 r1'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
title: 'Буровой насос №2',
|
|
||||||
placeHolderId: 5,
|
|
||||||
state: 0,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c5 r1'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 6,
|
|
||||||
title: 'Талевый канат',
|
|
||||||
placeHolderId: 6,
|
|
||||||
state: 2,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r1'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 7,
|
|
||||||
title: 'Станция управления ВСП',
|
|
||||||
placeHolderId: 7,
|
|
||||||
state: 3,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r2'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 8,
|
|
||||||
title: 'Компрессорный блок',
|
|
||||||
placeHolderId: 8,
|
|
||||||
state: 3,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r2'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 9,
|
|
||||||
title: 'Лебедка буровая',
|
|
||||||
placeHolderId: 9,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r3'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 10,
|
|
||||||
title: 'Блок сопротивлений и КТУ',
|
|
||||||
placeHolderId: 10,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r3'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 11,
|
|
||||||
title: 'Вспомогательная лебедка',
|
|
||||||
placeHolderId: 11,
|
|
||||||
state: 0,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r4'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 12,
|
|
||||||
title: 'Блок НКУ',
|
|
||||||
placeHolderId: 12,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r4'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 13,
|
|
||||||
title: 'Гидрорасцепитель',
|
|
||||||
placeHolderId: 13,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r5'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 14,
|
|
||||||
title: 'Блок КРУ',
|
|
||||||
placeHolderId: 14,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r5'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 15,
|
|
||||||
title: 'Привод ВСП',
|
|
||||||
placeHolderId: 15,
|
|
||||||
state: 2,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r6'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 16,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 16,
|
|
||||||
state: 3,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'А вот тут, совсем не У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r6'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 17,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 17,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r7'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 18,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 18,
|
|
||||||
state: 0,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'наработка',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r7'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 19,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 19,
|
|
||||||
state: 0,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c1 r8'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 20,
|
|
||||||
title: 'Теплогенератор',
|
|
||||||
placeHolderId: 20,
|
|
||||||
state: 1,
|
|
||||||
equipmentTimers: [
|
|
||||||
{label: 'Полная наработка', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка после ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Наработка вне р/р', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО1', value: 1, unit: 'ч'},
|
|
||||||
{label: 'Периодичность ТО2', value: 1, unit: 'ч'},
|
|
||||||
],
|
|
||||||
equipmentSensors: [
|
|
||||||
{label: 'Скорость вращения', value: 1, unit: 'Об/мин'},
|
|
||||||
{label: 'Крутящий момент', value: 1, unit: 'кН*м'},
|
|
||||||
{label: 'Общий уровень вибрации', value: 1, unit: 'мм/с'},
|
|
||||||
{label: 'Уровень масла в баке', value: 1, unit: 'м'},
|
|
||||||
{label: 'Т верхнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Т нижнего подшипника', value: 1, unit: '°C'},
|
|
||||||
{label: 'Состояние ПЧ1', value: 1, unit: ''},
|
|
||||||
{label: 'Состояние ПЧ2', value: 1, unit: ''},
|
|
||||||
],
|
|
||||||
captionValue: 'У-У-У-у-у-у',
|
|
||||||
custom: 'Я не понял про это',
|
|
||||||
className: 'c6 r8'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
const placeholderIdDictionary = {
|
|
||||||
1: {gridRowStart: 8, gridColumnStart: 1},
|
|
||||||
2: {gridRowStart: 7, gridColumnStart: 1},
|
|
||||||
3: {gridRowStart: 6, gridColumnStart: 1},
|
|
||||||
4: {gridRowStart: 5, gridColumnStart: 1},
|
|
||||||
5: {gridRowStart: 4, gridColumnStart: 1},
|
|
||||||
6: {gridRowStart: 3, gridColumnStart: 1},
|
|
||||||
7: {gridRowStart: 2, gridColumnStart: 1},
|
|
||||||
8: {gridRowStart: 1, gridColumnStart: 1},
|
|
||||||
9: {gridRowStart: 1, gridColumnStart: 2},
|
|
||||||
10: {gridRowStart: 1, gridColumnStart: 3},
|
|
||||||
11: {gridRowStart: 1, gridColumnStart: 4},
|
|
||||||
12: {gridRowStart: 1, gridColumnStart: 5},
|
|
||||||
13: {gridRowStart: 1, gridColumnStart: 6},
|
|
||||||
14: {gridRowStart: 2, gridColumnStart: 6},
|
|
||||||
15: {gridRowStart: 3, gridColumnStart: 6},
|
|
||||||
16: {gridRowStart: 4, gridColumnStart: 6},
|
|
||||||
17: {gridRowStart: 5, gridColumnStart: 6},
|
|
||||||
18: {gridRowStart: 6, gridColumnStart: 6},
|
|
||||||
19: {gridRowStart: 7, gridColumnStart: 6},
|
|
||||||
20: {gridRowStart: 8, gridColumnStart: 6},
|
|
||||||
}
|
|
||||||
|
|
||||||
const plates = []
|
|
||||||
|
|
||||||
for (let i = 1; i < 21; i++) {
|
|
||||||
const item = platesData.filter(item => item.placeHolderId === i)[0]
|
|
||||||
const plate = item ? (
|
|
||||||
<div key={i} style={placeholderIdDictionary[i]} className="pointer">
|
|
||||||
<SmboPlate
|
|
||||||
title={item.title}
|
|
||||||
state={item.state}
|
|
||||||
operatingTime={item.placeHolderId}
|
|
||||||
captionValue={item.captionValue}
|
|
||||||
>
|
|
||||||
<EquipmentDetails
|
|
||||||
id={item.id}
|
|
||||||
title={item.title}
|
|
||||||
placeHolderId={item.placeHolderId}
|
|
||||||
equipmentTimers={item.equipmentTimers}
|
|
||||||
equipmentSensors={item.equipmentSensors}
|
|
||||||
state={item.state}
|
|
||||||
captionValue={item.captionValue}
|
|
||||||
/>
|
|
||||||
</SmboPlate>
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
<div className="empty_place" style={placeholderIdDictionary[i]} key={i}>{i}</div>
|
|
||||||
)
|
|
||||||
plates.push(plate)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function Smbo() {
|
|
||||||
|
|
||||||
return (<>
|
|
||||||
<div className="smbo_container">
|
|
||||||
{plates}
|
|
||||||
{/*<div className="c2 ce5 r2 re7 center">*/}
|
|
||||||
{/* <img src={RigPlan} alt="План"/>*/}
|
|
||||||
{/*</div>*/}
|
|
||||||
<div className="c2 r8 ce6 center">
|
|
||||||
сообщения
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</>)
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
import { TelemetryAnalysisDepthToDay } from '../src/components/TelemetryAnalysisDepthToDay'
|
|
||||||
import { TelemetryAnalysisDepthToInterval } from '../src/components/TelemetryAnalysisDepthToInterval'
|
|
||||||
import { AnalysisOperationTime } from '../src/components/AnalysisOperationTime'
|
|
||||||
import { Row, Col } from 'antd'
|
|
||||||
|
|
||||||
export default function TelemetryAnalysis({idWell}) {
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<Row> </Row>
|
|
||||||
<Row justify="space-around" align="middle">
|
|
||||||
<Col span={10}>
|
|
||||||
<h2>График Глубина-день</h2>
|
|
||||||
<TelemetryAnalysisDepthToDay idWell={idWell}/>
|
|
||||||
</Col>
|
|
||||||
<Col span={10}>
|
|
||||||
<h2>График Глубина за интервал</h2>
|
|
||||||
<TelemetryAnalysisDepthToInterval idWell={idWell}/>
|
|
||||||
</Col>
|
|
||||||
</Row >
|
|
||||||
<Row><div style={{height: "150px"}}> </div></Row>
|
|
||||||
<Row justify="space-around" align="middle">
|
|
||||||
<Col span={10}>
|
|
||||||
<h2>График Операция за время</h2>
|
|
||||||
<AnalysisOperationTime idWell={idWell}/>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
@ -1,113 +0,0 @@
|
|||||||
import LoaderPortal from '../src/components/LoaderPortal'
|
|
||||||
import { useState, useEffect } from "react";
|
|
||||||
import {makeColumn, makeColumnsPlanFact, RegExpIsFloat} from '../src/components/factory'
|
|
||||||
import {WellSectionService} from '../src/services/api'
|
|
||||||
import {invokeWebApiWrapperAsync} from '../src/components/factory'
|
|
||||||
import { EditableTable } from '../src/components/EditableTable';
|
|
||||||
import { Input } from 'antd'
|
|
||||||
|
|
||||||
const TypeSelector = <Input list={'sectionTypeList'}/>
|
|
||||||
|
|
||||||
const DataListSectionTypes = <datalist id="sectionTypeList">
|
|
||||||
<option value="Пилотный ствол">Пилотный ствол</option>
|
|
||||||
<option value="Направление">Направление</option>
|
|
||||||
<option value="Кондуктор">Кондуктор</option>
|
|
||||||
<option value="Эксплуатационная колонна">Эксплуатационная колонна</option>
|
|
||||||
<option value="Транспортный ствол">Транспортный ствол</option>
|
|
||||||
<option value="Хвостовик">Хвостовик</option>
|
|
||||||
</datalist>
|
|
||||||
|
|
||||||
const numericColumnOptions = {
|
|
||||||
editable: true,
|
|
||||||
initialValue: 0,
|
|
||||||
formItemRules: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: `Введите число`,
|
|
||||||
pattern: RegExpIsFloat,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const columns = [
|
|
||||||
makeColumn('Конструкция секции', 'sectionType', {editable:true, input:TypeSelector}),
|
|
||||||
makeColumnsPlanFact('Глубина, м', 'wellDepth', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Период, д', 'buildDays', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Механическая скорость проходки, м/час', 'rateOfPenetration', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Рейсовая скорость, м/час', 'routeSpeed', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Скорость подъема КНБК', 'bhaUpSpeed', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Скорость спуска КНБК', 'bhaDownSpeed', numericColumnOptions),
|
|
||||||
makeColumnsPlanFact('Скорость спуска обсадной колонны', 'casingDownSpeed', numericColumnOptions),
|
|
||||||
]
|
|
||||||
|
|
||||||
export default function WellStat({idWell}){
|
|
||||||
const [showLoader, setShowLoader] = useState(false)
|
|
||||||
const [items, setItems] = useState([])
|
|
||||||
|
|
||||||
const addKeysAndUpdateStateData = (items) =>{
|
|
||||||
const keyedItems = items?.map(item => ({...item, key:item.id}))??[]
|
|
||||||
setItems(keyedItems)
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
invokeWebApiWrapperAsync(
|
|
||||||
async () => {
|
|
||||||
const paginationContainer = await WellSectionService.getAll(idWell, 0, 1024)
|
|
||||||
addKeysAndUpdateStateData(paginationContainer.items)
|
|
||||||
},
|
|
||||||
setShowLoader,
|
|
||||||
`Не удалось загрузить секции по скважине "${idWell}"`)
|
|
||||||
} ,[idWell])
|
|
||||||
|
|
||||||
const onAdd = (item) => {
|
|
||||||
invokeWebApiWrapperAsync(
|
|
||||||
async () => {
|
|
||||||
const updatedItems = await WellSectionService.insert(idWell, [item])
|
|
||||||
const newItems = [...items, ...updatedItems]
|
|
||||||
addKeysAndUpdateStateData(newItems)
|
|
||||||
},
|
|
||||||
setShowLoader,
|
|
||||||
`Не удалось добавить секцию в скважину "${idWell}"`)
|
|
||||||
}
|
|
||||||
|
|
||||||
const onEdit = (item) => {
|
|
||||||
invokeWebApiWrapperAsync(
|
|
||||||
async () => {
|
|
||||||
const updatedItem = await WellSectionService.update(idWell, item.id, item)
|
|
||||||
const newItems = [...items]
|
|
||||||
const index = newItems.findIndex((i) => item.key === i.key)
|
|
||||||
newItems.splice(index, 1, updatedItem)
|
|
||||||
addKeysAndUpdateStateData(newItems)
|
|
||||||
},
|
|
||||||
setShowLoader,
|
|
||||||
`Не удалось изменить секцию в скважине "${idWell}"`)
|
|
||||||
}
|
|
||||||
|
|
||||||
const onDelete = (item) =>{
|
|
||||||
invokeWebApiWrapperAsync(
|
|
||||||
async () => {
|
|
||||||
await WellSectionService.delete(idWell, [item.id])
|
|
||||||
const newItems = [...items]
|
|
||||||
const index = newItems.findIndex((i) => item.key === i.key)
|
|
||||||
newItems.splice(index, 1)
|
|
||||||
addKeysAndUpdateStateData(newItems)
|
|
||||||
},
|
|
||||||
setShowLoader,
|
|
||||||
`Не удалось удалить секцию из скважины "${idWell}"`)
|
|
||||||
}
|
|
||||||
|
|
||||||
return(
|
|
||||||
<LoaderPortal show={showLoader}>
|
|
||||||
<EditableTable
|
|
||||||
columns={columns}
|
|
||||||
dataSource={items}
|
|
||||||
size={'small'}
|
|
||||||
bordered
|
|
||||||
pagination={false}
|
|
||||||
onRowAdd={onAdd}
|
|
||||||
onRowEdit={onEdit}
|
|
||||||
onRowDelete={onDelete}
|
|
||||||
/>
|
|
||||||
{DataListSectionTypes}
|
|
||||||
</LoaderPortal>)
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
Папка для компонент реализация которых отложена, но наработки уже есть
|
|
Loading…
Reference in New Issue
Block a user