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) &&