From f60451eb4b4259212f684279f5184541142a2438 Mon Sep 17 00:00:00 2001 From: goodmice Date: Mon, 29 Nov 2021 16:49:22 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=86=D0=B5=20=D0=BC=D0=BE=D0=BD=D0=B8=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=B3=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20"=D0=A0=D0=B5=D0=BA=D0=BE=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B0=D1=86=D0=B8=D1=8F=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BE=D0=BA"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PageHeader.jsx | 33 ------- src/components/PageHeader.tsx | 36 +++++++ src/components/PeriodPicker.tsx | 12 +-- src/components/Table/EditableCell.jsx | 38 -------- src/components/Table/EditableCell.tsx | 43 +++++++++ src/components/Table/EditableTable.jsx | 53 ++++++----- src/components/Table/index.tsx | 26 +++-- src/images/logoSmaill.svg | 38 ++++++++ src/pages/Archive/index.jsx | 1 + src/pages/TelemetryView/Setpoints.jsx | 127 +++++++++++++++++++++++++ src/pages/TelemetryView/index.jsx | 2 + src/utils/index.ts | 9 ++ 12 files changed, 300 insertions(+), 118 deletions(-) delete mode 100644 src/components/PageHeader.jsx create mode 100644 src/components/PageHeader.tsx delete mode 100644 src/components/Table/EditableCell.jsx create mode 100644 src/components/Table/EditableCell.tsx create mode 100644 src/images/logoSmaill.svg create mode 100644 src/pages/TelemetryView/Setpoints.jsx create mode 100644 src/utils/index.ts diff --git a/src/components/PageHeader.jsx b/src/components/PageHeader.jsx deleted file mode 100644 index 68c7731..0000000 --- a/src/components/PageHeader.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Layout, Button } from 'antd' -import { UserOutlined } from '@ant-design/icons' -import logo from '../images/logo_32.png' -import { Link } from "react-router-dom" -import WellTreeSelector from './WellTreeSelector' - -const { Header } = Layout - -export default function PageHeader({title='Мониторинг', wellsList}){ - const login = localStorage['login'] - - let handleLogout = () => { - localStorage.removeItem('login') - localStorage.removeItem('token') - } - - return( - -
- - АСБ - - -

{title}

- - - -
-
- ) -}; \ No newline at end of file diff --git a/src/components/PageHeader.tsx b/src/components/PageHeader.tsx new file mode 100644 index 0000000..569c39e --- /dev/null +++ b/src/components/PageHeader.tsx @@ -0,0 +1,36 @@ +import { Layout, Button } from 'antd' +import { UserOutlined } from '@ant-design/icons' +import logo from '../images/logo_32.png' +import { Link } from 'react-router-dom' +import WellTreeSelector from './WellTreeSelector' +import { headerHeight } from '../utils' + +const { Header } = Layout + +const logoStyle = { height: headerHeight } + +const handleLogout = () => { + localStorage.removeItem('login') + localStorage.removeItem('token') +} + +type PageHeaderProps = { title?: string } + +export const PageHeader = ({ title = 'Мониторинг' }: PageHeaderProps) => ( + +
+ + {'АСБ'} + + +

{title}

+ + + +
+
+) + +export default PageHeader diff --git a/src/components/PeriodPicker.tsx b/src/components/PeriodPicker.tsx index 3442d0e..88bbe6a 100644 --- a/src/components/PeriodPicker.tsx +++ b/src/components/PeriodPicker.tsx @@ -19,13 +19,11 @@ type PeriodPickerProps = { } export const PeriodPicker = ({ defaultValue = defaultPeriod, onChange }: PeriodPickerProps) => ( - + - const rules = formItemRules ?? [{ - required: isRequired, - message: `Please Input ${title}!`, - }] - - const editor = - {inputNode} - - - const tdStyle = editing - ? { padding:0 } - : null - - return ( - {editing ? editor: children} - ) -} \ No newline at end of file diff --git a/src/components/Table/EditableCell.tsx b/src/components/Table/EditableCell.tsx new file mode 100644 index 0000000..25168d3 --- /dev/null +++ b/src/components/Table/EditableCell.tsx @@ -0,0 +1,43 @@ +import { Form, Input } from 'antd' +import { NamePath, Rule } from 'rc-field-form/lib/interface' + +type EditableCellProps = { + editing?: boolean + dataIndex?: NamePath + input?: React.Component + isRequired?: boolean + title: string + formItemClass?: string + formItemRules?: Rule[] + children: React.ReactNode + initialValue: any +} + +export const EditableCell = ({ + editing, + dataIndex, + input, + isRequired, + title, + formItemClass, + formItemRules, + children, + initialValue, +}: EditableCellProps) => ( + + {!editing ? children : ( + + {input ?? } + + )} + +) diff --git a/src/components/Table/EditableTable.jsx b/src/components/Table/EditableTable.jsx index 568309a..68544be 100644 --- a/src/components/Table/EditableTable.jsx +++ b/src/components/Table/EditableTable.jsx @@ -14,13 +14,14 @@ export const tryAddKeys = (items) => { } export const EditableTable = ({ - columns, - dataSource, - onChange, // Метод вызывается со всем dataSource с измененными элементами после любого действия - onRowAdd, // Метод вызывается с новой добавленной записью. Если метод не определен, то кнопка добавления строки не показывается - onRowEdit,// Метод вызывается с новой отредактированной записью. Если метод не поределен, то кнопка редактирования строки не показывается - onRowDelete,// Метод вызывается с удаленной записью. Если метод не поределен, то кнопка удаления строки не показывается - ...otherTableProps}) => { + columns, + dataSource, + onChange, // Метод вызывается со всем dataSource с измененными элементами после любого действия + onRowAdd, // Метод вызывается с новой добавленной записью. Если метод не определен, то кнопка добавления строки не показывается + onRowEdit,// Метод вызывается с новой отредактированной записью. Если метод не поределен, то кнопка редактирования строки не показывается + onRowDelete,// Метод вызывается с удаленной записью. Если метод не поределен, то кнопка удаления строки не показывается + ...otherTableProps +}) => { const [form] = Form.useForm() const [data, setData] = useState(tryAddKeys(dataSource)) @@ -70,20 +71,20 @@ export const EditableTable = ({ if(item.key === newRowKeyValue) item.key = newRowKeyValue + newData.length - + const isAdding = editingKey === newRowKeyValue setEditingKey('') setData(newData) if (isAdding) try{ - onRowAdd(newItem) + onRowAdd(newItem) }catch(err){ console.log('callback onRowAdd fault:', err) } else try{ - onRowEdit(newItem) + onRowEdit(newItem) }catch(err){ console.log('callback onRowEdit fault:', err) } @@ -103,10 +104,10 @@ export const EditableTable = ({ const deleteRow = (record) =>{ const newData = [...data] const index = newData.findIndex((item) => record.key === item.key) - + newData.splice(index, 1) setData(newData) - + onRowDelete(record) if(onChange) @@ -115,7 +116,7 @@ export const EditableTable = ({ const operationColumn = { width: 82, - title: (!!onRowAdd) &&