From 83d535c305e3357915446f9fe255a2b102e7f3e3 Mon Sep 17 00:00:00 2001 From: goodmice Date: Thu, 18 Aug 2022 11:49:10 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=BE=D0=B1=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChangePassword.tsx | 2 +- src/components/DownloadLink.tsx | 6 +- src/components/Table/EditableTable.jsx | 2 +- src/components/{factory.ts => factory.tsx} | 40 +++-- src/components/icons/WellIcon.tsx | 4 +- src/components/selectors/WellSelector.jsx | 2 +- src/components/selectors/WellTreeSelector.tsx | 2 +- src/components/views/WellView.tsx | 59 ++++++ src/components/views/index.ts | 1 + src/pages/AdminPanel/ClusterController.jsx | 4 +- src/pages/AdminPanel/CompanyController.jsx | 4 +- .../AdminPanel/CompanyTypeController.jsx | 2 +- src/pages/AdminPanel/DepositController.jsx | 2 +- src/pages/AdminPanel/PermissionController.jsx | 2 +- src/pages/AdminPanel/RoleController.jsx | 4 +- .../AdminPanel/Telemetry/TelemetryMerger.jsx | 4 +- .../AdminPanel/Telemetry/TelemetryViewer.jsx | 2 +- src/pages/AdminPanel/UserController/index.jsx | 7 +- src/pages/AdminPanel/VisitLog.jsx | 2 +- src/pages/AdminPanel/WellController/index.jsx | 4 +- src/pages/Analytics/Statistics.jsx | 9 +- .../WellCompositeEditor/NewParamsTable.jsx | 8 +- .../WellCompositeSections.jsx | 7 +- .../Analytics/WellCompositeEditor/index.jsx | 6 +- src/pages/Cluster/ClusterWells.jsx | 4 +- src/pages/Cluster/index.jsx | 2 +- src/pages/Deposit.jsx | 2 +- src/pages/Documents/DocumentsTemplate.jsx | 35 ++-- src/pages/DrillingProgram/CategoryAdder.jsx | 7 +- src/pages/DrillingProgram/CategoryEditor.jsx | 9 +- src/pages/DrillingProgram/CategoryHistory.jsx | 3 +- src/pages/DrillingProgram/CategoryRender.jsx | 10 +- src/pages/DrillingProgram/index.jsx | 6 +- src/pages/FileDownload.jsx | 4 +- src/pages/Login.jsx | 2 +- src/pages/Measure/MeasureTable.jsx | 8 +- src/pages/Measure/index.jsx | 4 +- src/pages/Register.jsx | 2 +- .../Reports/DailyReport/ReportEditor.jsx | 170 ++++++------------ src/pages/Reports/DailyReport/index.jsx | 4 +- src/pages/Reports/DiagramReport/Reports.jsx | 4 +- src/pages/Reports/DiagramReport/index.jsx | 12 +- src/pages/Telemetry/Archive/index.jsx | 8 +- src/pages/Telemetry/DashboardNNB/index.jsx | 6 +- src/pages/Telemetry/Messages.jsx | 4 +- .../Telemetry/Operations/DrillerSchedule.jsx | 4 +- .../Telemetry/Operations/TargetEditor.jsx | 8 +- src/pages/Telemetry/Operations/index.jsx | 13 +- .../TelemetryView/ActiveMessagesOnline.jsx | 4 +- .../Setpoints/SetpointSender.jsx | 4 +- .../TelemetryView/Setpoints/index.jsx | 8 +- .../TelemetryView/WirelineRunOut.jsx | 3 +- src/pages/Telemetry/TelemetryView/index.jsx | 8 +- src/pages/Well.jsx | 3 +- src/pages/WellOperations/DrillProcessFlow.jsx | 7 +- .../WellOperations/Tvd/NetGraphExport.jsx | 5 +- src/pages/WellOperations/Tvd/StatExport.jsx | 3 +- src/pages/WellOperations/Tvd/TLChart.jsx | 3 +- src/pages/WellOperations/Tvd/TLPie.jsx | 3 +- src/pages/WellOperations/Tvd/index.jsx | 23 +-- src/pages/WellOperations/WellDrillParams.jsx | 4 +- .../WellOperations/WellOperationsEditor.jsx | 8 +- src/pages/WellOperations/WellSectionsStat.jsx | 4 +- 63 files changed, 320 insertions(+), 286 deletions(-) rename src/components/{factory.ts => factory.tsx} (83%) mode change 100755 => 100644 create mode 100644 src/components/views/WellView.tsx diff --git a/src/components/ChangePassword.tsx b/src/components/ChangePassword.tsx index 6464cfc..e1ec41f 100755 --- a/src/components/ChangePassword.tsx +++ b/src/components/ChangePassword.tsx @@ -51,7 +51,7 @@ export const ChangePassword = memo(({ user, visible, onCanc }, setShowLoader, `Не удалось сменить пароль пользователя ${userData.login}`, - 'Смена пароля пользователя' + { actionName: 'Смена пароля пользователя' } ), [userData, onOk]) return ( diff --git a/src/components/DownloadLink.tsx b/src/components/DownloadLink.tsx index a62559b..66d47cc 100755 --- a/src/components/DownloadLink.tsx +++ b/src/components/DownloadLink.tsx @@ -2,7 +2,7 @@ import { memo, ReactNode } from 'react' import { Link, LinkProps } from 'react-router-dom' import { FileWordOutlined } from '@ant-design/icons' -import { FileInfoDto } from '@api' +import { FileInfoDto, WellDto } from '@api' import { downloadFile } from './factory' import { getLinkToFile } from '@pages/FileDownload' @@ -13,6 +13,7 @@ export type DownloadLinkProps = LinkProps & { file?: FileInfoDto name?: string icon?: ReactNode + well?: WellDto } export const DownloadLink = memo(({ @@ -20,6 +21,7 @@ export const DownloadLink = memo(({ file, name, icon = , + well, ...other }) => ( (({ to={getLinkToFile(file)} onClick={(e) => { if (file) - downloadFile(file) + downloadFile(file, well) e.preventDefault() return false }} diff --git a/src/components/Table/EditableTable.jsx b/src/components/Table/EditableTable.jsx index a18c3e9..a94955e 100755 --- a/src/components/Table/EditableTable.jsx +++ b/src/components/Table/EditableTable.jsx @@ -39,7 +39,7 @@ export const makeTableAction = ({ }, setLoader, errorMsg, - actionName + { actionName } ) ) diff --git a/src/components/factory.ts b/src/components/factory.tsx old mode 100755 new mode 100644 similarity index 83% rename from src/components/factory.ts rename to src/components/factory.tsx index 9fe9c64..80ad3aa --- a/src/components/factory.ts +++ b/src/components/factory.tsx @@ -2,9 +2,10 @@ import { notification } from 'antd' import { ArgsProps } from 'antd/lib/notification' import { Dispatch, ReactNode, SetStateAction } from 'react' -import { FunctionalValue, getFunctionalValue, isDev } from '@utils' +import { WellView } from '@components/views' import { getUserToken } from '@utils' -import { ApiError, FileInfoDto } from '@api' +import { FunctionalValue, getFunctionalValue, isDev } from '@utils' +import { ApiError, FileInfoDto, WellDto } from '@api' export type NotifyType = 'error' | 'warning' | 'info' @@ -21,16 +22,24 @@ const notifyTypes: Record { +export const notify = (body?: ReactNode, notifyType: NotifyType = 'info', well?: WellDto, other?: ArgsProps) => { if (!body) return const instance = notifyTypes[notifyType] ?? notifyTypes.defualt + const message = ( +
+ {instance.message} + +
+ ) + instance?.instance({ + ...instance, description: body, placement: 'bottomRight', duration: 10, - ...instance, + message, ...other }) } @@ -46,15 +55,20 @@ export const copyToClipboard = (value: string, successText?: string, errorText?: type asyncFunction = (...args: any) => Promise -const parseApiEror = (err: unknown, actionName?: string) => { +type InvokeOptions = { + actionName?: string, + well?: WellDto, +} + +const parseApiEror = (err: unknown, options?: InvokeOptions) => { if (!(err instanceof ApiError)) return false switch (err.status) { case 403: - if (actionName) - notify(`Недостаточно прав для выполнения действия "${actionName}"`, 'error') + if (options?.actionName) + notify(`Недостаточно прав для выполнения действия "${options.actionName}"`, 'error', options.well) else - notify('Недостаточно прав для выполнения действия', 'error') + notify('Недостаточно прав для выполнения действия', 'error', options?.well) return true case 204: return true default: return false @@ -65,7 +79,7 @@ export const invokeWebApiWrapperAsync = async ( funcAsync: asyncFunction, setShowLoader?: Dispatch>, errorNotifyText?: FunctionalValue<(err: unknown) => ReactNode>, - actionName?: string, + options?: InvokeOptions, ) => { setShowLoader?.(true) try{ @@ -73,8 +87,8 @@ export const invokeWebApiWrapperAsync = async ( } catch (ex) { if(isDev()) console.error(ex) - if (!parseApiEror(ex, actionName)) - notify(getFunctionalValue(errorNotifyText)(ex), 'error') + if (!parseApiEror(ex, options)) + notify(getFunctionalValue(errorNotifyText)(ex), 'error', options?.well) } finally { setShowLoader?.(false) } @@ -119,12 +133,12 @@ export const upload = async (url: string, formData: FormData) => { return response } -export const downloadFile = async (fileInfo: FileInfoDto) => { +export const downloadFile = async (fileInfo: FileInfoDto, well?: WellDto) => { try { await download(`/api/well/${fileInfo.idWell}/files/${fileInfo.id}`) return true } catch (error) { - notify(`Не удалось скачать файл "${fileInfo.name}" по скважине №${fileInfo.idWell}`, 'error') + notify(`Не удалось скачать файл "${fileInfo.name}"`, 'error', well) console.log(error) return false } diff --git a/src/components/icons/WellIcon.tsx b/src/components/icons/WellIcon.tsx index e0f8ed1..996ed35 100755 --- a/src/components/icons/WellIcon.tsx +++ b/src/components/icons/WellIcon.tsx @@ -9,9 +9,7 @@ export type WellIconColors = { unknown?: string } -export interface WellIconProps { - width?: string | number - height?: string | number +export type WellIconProps = React.SVGProps & { online?: boolean state?: WellIconState colors?: WellIconColors diff --git a/src/components/selectors/WellSelector.jsx b/src/components/selectors/WellSelector.jsx index 4fe00c1..ba448be 100755 --- a/src/components/selectors/WellSelector.jsx +++ b/src/components/selectors/WellSelector.jsx @@ -50,7 +50,7 @@ export const WellSelector = memo(({ value, onChange, treeData, treeLabels, ...ot }, null, 'Не удалось загрузить список скважин', - 'Получение списка скважин' + { actionName: 'Получение списка скважин' } ) }, [treeData, treeLabels]) diff --git a/src/components/selectors/WellTreeSelector.tsx b/src/components/selectors/WellTreeSelector.tsx index f06b588..addeaef 100755 --- a/src/components/selectors/WellTreeSelector.tsx +++ b/src/components/selectors/WellTreeSelector.tsx @@ -142,7 +142,7 @@ export const WellTreeSelector = memo(({ show, ...other }: TreeProps = { + 0: { enum: 'unknown', label: 'Неизвестно' }, + 1: { enum: 'active', label: 'В работе' }, + 2: { enum: 'inactive', label: 'Завершена' }, +} + +export type WellViewProps = { + well?: WellDto +} + +export const WellView = memo(({ well }) => well ? ( + + Название: + {well.caption ?? '---'} + + Куст: + {well.cluster ?? '---'} + + Месторождение: + {well.deposit ?? '---'} + + Статус: + {wellState[well.idState || 0].label} + + Широта: + {well.latitude ?? '---'} + + Долгота: + {well.longitude ?? '---'} + + Телеметрия: + + + + + ID: + {well.id ?? '---'} + + )}> + + + + {well.caption} + +) : ( + - +)) + +export default WellView diff --git a/src/components/views/index.ts b/src/components/views/index.ts index 2c5e1b0..44ac284 100755 --- a/src/components/views/index.ts +++ b/src/components/views/index.ts @@ -11,3 +11,4 @@ export { CompanyView } from './CompanyView' export { RoleView } from './RoleView' export { UserView } from './UserView' export { WirelineView } from './WirelineView' +export * from './WellView' diff --git a/src/pages/AdminPanel/ClusterController.jsx b/src/pages/AdminPanel/ClusterController.jsx index 1260c94..aad1987 100755 --- a/src/pages/AdminPanel/ClusterController.jsx +++ b/src/pages/AdminPanel/ClusterController.jsx @@ -53,7 +53,7 @@ const ClusterController = memo(() => { }, setShowLoader, `Не удалось загрузить список кустов`, - 'Получение списка кустов' + { actionName: 'Получение списка кустов' } ), []) useEffect(() => { @@ -65,7 +65,7 @@ const ClusterController = memo(() => { }, setShowLoader, `Не удалось загрузить список месторождений`, - 'Получение списка месторождений' + { actionName: 'Получение списка месторождений' } ) }, []) diff --git a/src/pages/AdminPanel/CompanyController.jsx b/src/pages/AdminPanel/CompanyController.jsx index fedfb5b..9a70d85 100755 --- a/src/pages/AdminPanel/CompanyController.jsx +++ b/src/pages/AdminPanel/CompanyController.jsx @@ -53,7 +53,7 @@ const CompanyController = memo(() => { }, setShowLoader, `Не удалось загрузить список типов компаний`, - 'Получение списка типов команд' + { actionName: 'Получение списка типов команд' } ) }, [updateTable]) @@ -65,7 +65,7 @@ const CompanyController = memo(() => { updateTable, setShowLoader, `Не удалось обновить список компаний`, - 'Получение списка компаний' + { actionName: 'Получение списка компаний' } ), permission: 'AdminCompany.edit' } diff --git a/src/pages/AdminPanel/CompanyTypeController.jsx b/src/pages/AdminPanel/CompanyTypeController.jsx index e7d20ea..1ce4932 100755 --- a/src/pages/AdminPanel/CompanyTypeController.jsx +++ b/src/pages/AdminPanel/CompanyTypeController.jsx @@ -32,7 +32,7 @@ const CompanyTypeController = memo(() => { }, setShowLoader, `Не удалось загрузить список типов компаний`, - 'Получение списка типов компаний' + { actionName: 'Получение списка типов компаний' } ), []) useEffect(() => { diff --git a/src/pages/AdminPanel/DepositController.jsx b/src/pages/AdminPanel/DepositController.jsx index d9eff66..09d7bf9 100755 --- a/src/pages/AdminPanel/DepositController.jsx +++ b/src/pages/AdminPanel/DepositController.jsx @@ -35,7 +35,7 @@ const DepositController = memo(() => { }, setShowLoader, `Не удалось загрузить список месторождении`, - 'Получение списка месторождений' + { actionName: 'Получение списка месторождений' } ), []) useEffect(() => { diff --git a/src/pages/AdminPanel/PermissionController.jsx b/src/pages/AdminPanel/PermissionController.jsx index c232fe0..6add2ea 100755 --- a/src/pages/AdminPanel/PermissionController.jsx +++ b/src/pages/AdminPanel/PermissionController.jsx @@ -40,7 +40,7 @@ const PermissionController = memo(() => { }, setShowLoader, `Не удалось загрузить список прав`, - 'Получение списка прав' + { actionName: 'Получение списка прав' } ), []) useEffect(() => { diff --git a/src/pages/AdminPanel/RoleController.jsx b/src/pages/AdminPanel/RoleController.jsx index e226b4d..8f80a9a 100755 --- a/src/pages/AdminPanel/RoleController.jsx +++ b/src/pages/AdminPanel/RoleController.jsx @@ -46,7 +46,7 @@ const RoleController = memo(() => { }, setShowLoader, `Не удалось загрузить список ролей`, - 'Получение списка ролей' + { actionName: 'Получение списка ролей' } ) }, [loadRoles]) @@ -58,7 +58,7 @@ const RoleController = memo(() => { loadRoles, setShowLoader, `Не удалось загрузить список ролей`, - 'Получение списка ролей', + { actionName: 'Получение списка ролей' }, ), permission: 'AdminUserRole.edit' } diff --git a/src/pages/AdminPanel/Telemetry/TelemetryMerger.jsx b/src/pages/AdminPanel/Telemetry/TelemetryMerger.jsx index 4444121..acb69d7 100755 --- a/src/pages/AdminPanel/Telemetry/TelemetryMerger.jsx +++ b/src/pages/AdminPanel/Telemetry/TelemetryMerger.jsx @@ -54,7 +54,7 @@ const TelemetryMerger = memo(() => { }, setIsLoading, 'Не удалось загрузить список телеметрий', - 'Получение списка телеметрий', + { actionName: 'Получение списка телеметрий' } ), []) const mergeTelemetry = useCallback(() => invokeWebApiWrapperAsync( @@ -65,7 +65,7 @@ const TelemetryMerger = memo(() => { }, setIsMerging, 'Не удалось объединить телеметрии', - 'Объединение телеметрий', + { actionName: 'Объединение телеметрий' } ), [updateTelemetry, secondary, primary]) useEffect(() => { diff --git a/src/pages/AdminPanel/Telemetry/TelemetryViewer.jsx b/src/pages/AdminPanel/Telemetry/TelemetryViewer.jsx index 6589d98..41f129d 100755 --- a/src/pages/AdminPanel/Telemetry/TelemetryViewer.jsx +++ b/src/pages/AdminPanel/Telemetry/TelemetryViewer.jsx @@ -94,7 +94,7 @@ const TelemetryController = memo(() => { }, setShowLoader, `Не удалось загрузить список телеметрии скважин`, - 'Полученик списка телеметрии скважин' + { actionName: 'Полученик списка телеметрии скважин' } ) }, []) diff --git a/src/pages/AdminPanel/UserController/index.jsx b/src/pages/AdminPanel/UserController/index.jsx index df2a9e3..fc22c7f 100755 --- a/src/pages/AdminPanel/UserController/index.jsx +++ b/src/pages/AdminPanel/UserController/index.jsx @@ -49,7 +49,8 @@ const UserController = memo(() => { setFilteredUsers(filteredUsers) }, setIsSearching, - `Не удалось произвести поиск пользователей` + `Не удалось произвести поиск пользователей`, + { actionName: 'Поиск пользователей' } ) }, [users, searchValue]) @@ -88,7 +89,7 @@ const UserController = memo(() => { }, setShowLoader, `Не удалось загрузить список пользователей`, - 'Получение списка пользователей' + { actionName: 'Получение списка пользователей' } ), []) useEffect(() => { @@ -170,7 +171,7 @@ const UserController = memo(() => { }, setShowLoader, `Не удалось загрузить список компаний`, - 'Получение списка компаний' + { actionName: 'Получение списка компаний' } ) }, []) diff --git a/src/pages/AdminPanel/VisitLog.jsx b/src/pages/AdminPanel/VisitLog.jsx index ccf544b..68b642c 100755 --- a/src/pages/AdminPanel/VisitLog.jsx +++ b/src/pages/AdminPanel/VisitLog.jsx @@ -38,7 +38,7 @@ const VisitLog = memo(() => { }, setShowLoader, `Не удалось загрузить список последних посещений пользователей`, - 'Получение списка последних посещений' + { actionName: 'Получение списка последних посещений' } ) }, []) diff --git a/src/pages/AdminPanel/WellController/index.jsx b/src/pages/AdminPanel/WellController/index.jsx index dadf24a..4dddbc6 100755 --- a/src/pages/AdminPanel/WellController/index.jsx +++ b/src/pages/AdminPanel/WellController/index.jsx @@ -56,7 +56,7 @@ const WellController = memo(() => { }, setShowLoader, `Не удалось загрузить список скважин`, - 'Получение списка скважин' + { actionName: 'Получение списка скважин' } ), []) const duplicateWell = useCallback((well) => { @@ -116,7 +116,7 @@ const WellController = memo(() => { }, setShowLoader, `Не удалось загрузить список кустов`, - 'Получение списка кустов' + { actionName: 'Получение списка кустов' } ) }, [updateTable]) diff --git a/src/pages/Analytics/Statistics.jsx b/src/pages/Analytics/Statistics.jsx index c3f6e11..e25cb51 100755 --- a/src/pages/Analytics/Statistics.jsx +++ b/src/pages/Analytics/Statistics.jsx @@ -103,8 +103,8 @@ const Statistics = memo(() => { setSectionTypes(Object.entries(types)) }, setIsPageLoading, - `Не удалось получить типы секции для скважины "${well.caption}"`, - `Получение списка возможных секций`, + `Не удалось получить типы секции`, + { actionName: `Получение списка возможных секций`, well } ) }, [well]) @@ -125,7 +125,8 @@ const Statistics = memo(() => { ]) }, setIsPageLoading, - 'Не удалось установить необходимые столбцы' + 'Не удалось установить необходимые столбцы', + { actionName: 'Установка столбцов' } ) }, [sectionTypes, avgData, cmpSpeedRender]) @@ -152,6 +153,7 @@ const Statistics = memo(() => { }, setIsAvgTableLoading, 'Не удалось загрузить данные для расчёта средних значений', + { actionName: 'Загрузка данных для расчёта средних значений' } ) }, [avgWells]) @@ -163,6 +165,7 @@ const Statistics = memo(() => { }, setIsCmpTableLoading, 'Не удалось получить скважины для сравнения', + { actionName: 'Загрузка скважин для сравнения' } ) }, [cmpWells]) diff --git a/src/pages/Analytics/WellCompositeEditor/NewParamsTable.jsx b/src/pages/Analytics/WellCompositeEditor/NewParamsTable.jsx index 391c600..bf504df 100755 --- a/src/pages/Analytics/WellCompositeEditor/NewParamsTable.jsx +++ b/src/pages/Analytics/WellCompositeEditor/NewParamsTable.jsx @@ -28,8 +28,8 @@ export const NewParamsTable = memo(({ selectedWellsKeys }) => { setParams(params) }, setShowParamsLoader, - `Не удалось загрузить список режимов для скважины "${well.caption}"`, - 'Получение списка режимов скважины' + `Не удалось загрузить список режимов`, + { actionName: 'Получение списка режимов скважины', well } ), [well]) const onParamsAddClick = useCallback(() => invokeWebApiWrapperAsync( @@ -38,8 +38,8 @@ export const NewParamsTable = memo(({ selectedWellsKeys }) => { setIsParamsModalVisible(false) }, setShowParamsLoader, - `Не удалось добавить режимы в список скважины "${well.caption}"`, - 'Добавление режима скважины' + `Не удалось добавить режимы в список`, + { actionName: 'Добавление режима скважины', well } ), [well, params]) return ( diff --git a/src/pages/Analytics/WellCompositeEditor/WellCompositeSections.jsx b/src/pages/Analytics/WellCompositeEditor/WellCompositeSections.jsx index 76a8689..2a608a5 100644 --- a/src/pages/Analytics/WellCompositeEditor/WellCompositeSections.jsx +++ b/src/pages/Analytics/WellCompositeEditor/WellCompositeSections.jsx @@ -110,7 +110,8 @@ const WellCompositeSections = memo(({ statsWells, selectedSections }) => { setWellOperations(operations) }, setShowLoader, - `Не удалось загрузить операции по скважине "${selectedWell.caption}"`, + `Не удалось загрузить операции`, + { actionName: 'Загрузка операций', well: selectedWell } ) }, [selectedWell, isOpsModalVisible]) @@ -134,8 +135,8 @@ const WellCompositeSections = memo(({ statsWells, selectedSections }) => { setSelectedWellsKeys(keys) }, setShowLoader, - `Не удалось сохранить изменения выбранных секций для композитной скважины "${well.caption}"`, - 'Изменение выбранных секций скважины' + `Не удалось сохранить изменения выбранных секций`, + { actionName: 'Изменение выбранных секций', well } ) }, [well, selectedWellsKeys]) diff --git a/src/pages/Analytics/WellCompositeEditor/index.jsx b/src/pages/Analytics/WellCompositeEditor/index.jsx index b413041..c0cc5b9 100755 --- a/src/pages/Analytics/WellCompositeEditor/index.jsx +++ b/src/pages/Analytics/WellCompositeEditor/index.jsx @@ -44,8 +44,8 @@ const WellCompositeEditor = memo(() => { } }, setShowLoader, - `Не удалось получить данные по скважине "${well.caption}"`, - 'Получение списка скважин' + `Не удалось получить данные`, + { actionName: 'Получение списка скважин', well } ) }, [well]) @@ -63,7 +63,7 @@ const WellCompositeEditor = memo(() => { }, setShowTabLoader, 'Не удалось загрузить статистику по скважинам/секциям', - 'Получение статистики по скважинам/секциям' + { actionName: 'Получение статистики по скважинам/секциям' } ) }, [selectedIdWells]) diff --git a/src/pages/Cluster/ClusterWells.jsx b/src/pages/Cluster/ClusterWells.jsx index 6793400..2a5a4da 100755 --- a/src/pages/Cluster/ClusterWells.jsx +++ b/src/pages/Cluster/ClusterWells.jsx @@ -64,8 +64,8 @@ const ClusterWells = memo(({ statsWells }) => { setWellOperations(operations.operations) }, setShowLoader, - `Не удалось загрузить операции по скважине "${selectedWell.caption}"`, - 'Получение операций по скважине' + `Не удалось загрузить операции`, + { actionName: 'Получение операций по скважине', well: selectedWell} ) }, [selectedWell, isOpsModalVisible]) diff --git a/src/pages/Cluster/index.jsx b/src/pages/Cluster/index.jsx index 98c5e95..4041d03 100755 --- a/src/pages/Cluster/index.jsx +++ b/src/pages/Cluster/index.jsx @@ -22,7 +22,7 @@ const Cluster = memo(() => { }, setShowLoader, `Не удалось загрузить данные по кусту "${idCluster}"`, - 'Получение данных по кусту' + { actionName: 'Получение данных по кусту' } ) }, [idCluster]) diff --git a/src/pages/Deposit.jsx b/src/pages/Deposit.jsx index 96e1ca0..98629b3 100755 --- a/src/pages/Deposit.jsx +++ b/src/pages/Deposit.jsx @@ -58,7 +58,7 @@ const Deposit = memo(() => { }, setShowLoader, `Не удалось загрузить список кустов`, - 'Получить список кустов' + { actionName: 'Получить список кустов' } ) }, []) diff --git a/src/pages/Documents/DocumentsTemplate.jsx b/src/pages/Documents/DocumentsTemplate.jsx index 89e5345..c98e45b 100755 --- a/src/pages/Documents/DocumentsTemplate.jsx +++ b/src/pages/Documents/DocumentsTemplate.jsx @@ -16,21 +16,6 @@ const pageSize = 12 const { RangePicker } = DatePicker const { Search } = Input -const columns = [ - { - title: 'Документ', - key: 'document', - dataIndex: 'name', - render: (name, row) => ( - - ), - }, - makeDateColumn('Дата загрузки', 'uploadDate'), - makeNumericColumn('Размер', 'size', null, null, formatBytes), - makeColumn('Автор', 'author', { render: item => }), - makeColumn('Компания', 'company', { render: (_, record) => }) -] - export const DocumentsTemplate = ({ idCategory, well: givenWell, mimeTypes, headerChild, customColumns, beforeTable, onChange, tableName }) => { const [page, setPage] = useState(1) const [filterDataRange, setFilterDataRange] = useState([]) @@ -45,7 +30,21 @@ export const DocumentsTemplate = ({ idCategory, well: givenWell, mimeTypes, head const uploadUrl = useMemo(() => `/api/well/${well.id}/files/?idCategory=${idCategory}`, [well, idCategory]) - const mergedColumns = useMemo(() => [...columns, ...(customColumns ?? [])], [customColumns]) + const mergedColumns = useMemo(() => [ + { + title: 'Документ', + key: 'document', + dataIndex: 'name', + render: (name, row) => ( + + ), + }, + makeDateColumn('Дата загрузки', 'uploadDate'), + makeNumericColumn('Размер', 'size', null, null, formatBytes), + makeColumn('Автор', 'author', { render: item => }), + makeColumn('Компания', 'company', { render: (_, record) => }), + ...(customColumns ?? []) + ], [well, customColumns]) const companies = useMemo(() => files.map(file => file?.author?.company?.caption).filter(Boolean).filter(unique), [files]) const filenames = useMemo(() => files.map(file => file.name).filter(Boolean).filter(unique), [files]) @@ -78,8 +77,8 @@ export const DocumentsTemplate = ({ idCategory, well: givenWell, mimeTypes, head setPagination(newPagination) }, setShowLoader, - `Не удалось загрузить файлы по скважине "${well.caption}"`, - 'Загрузка файла по скважине' + `Не удалось список файлов`, + { actionName: 'Загрузка списка файлов', well } ) }, [filterCompanyName, filterDataRange, filterFileName, idCategory, well, page]) diff --git a/src/pages/DrillingProgram/CategoryAdder.jsx b/src/pages/DrillingProgram/CategoryAdder.jsx index 888c569..bdecf0d 100755 --- a/src/pages/DrillingProgram/CategoryAdder.jsx +++ b/src/pages/DrillingProgram/CategoryAdder.jsx @@ -32,7 +32,8 @@ export const CategoryAdder = memo(({ categories, onUpdate, className, ...other } }))) }, setShowCatLoader, - `Не удалось установить список доступных категорий для добавления` + `Не удалось установить список доступных категорий для добавления`, + { actionName: 'Установка списка доступных категорий для добавления' } ) }, [categories]) @@ -44,8 +45,8 @@ export const CategoryAdder = memo(({ categories, onUpdate, className, ...other } onUpdate?.() }, setShowLoader, - `Не удалось добавить новые категорий программы бурения для скважины "${well.caption}"`, - `Добавление категорий программы бурения` + `Не удалось добавить новые категорий программы бурения`, + { actionName: 'Добавление категорий программы бурения', well } ), [onUpdate, well]) return ( diff --git a/src/pages/DrillingProgram/CategoryEditor.jsx b/src/pages/DrillingProgram/CategoryEditor.jsx index f93600a..b1066e1 100755 --- a/src/pages/DrillingProgram/CategoryEditor.jsx +++ b/src/pages/DrillingProgram/CategoryEditor.jsx @@ -53,7 +53,8 @@ export const CategoryEditor = memo(({ visible, category, onClosed }) => { setFilteredUsers(filteredUsers) }, setIsSearching, - `Не удалось произвести поиск пользователей` + `Не удалось произвести поиск пользователей`, + { actionName: 'Поиск пользователей' } ) }, [users, searchValue]) @@ -83,7 +84,8 @@ export const CategoryEditor = memo(({ visible, category, onClosed }) => { setAllUsers(allUsers) }, setShowLoader, - `Не удалось загрузить список доступных пользователей скважины "${well.caption}"` + `Не удалось загрузить список доступных пользователей`, + { actionName: 'Загрузка списка доступных пользователей', well } ) }, [well]) @@ -124,9 +126,8 @@ export const CategoryEditor = memo(({ visible, category, onClosed }) => { <> Не удалось изменить статус пользователя - для скважины "{well.caption}" , - `Изменение статуса пользователя` + { actionName: `Изменение статуса пользователя`, well } ), [users, well, category.idFileCategory]) const userColumns = useMemo(() => [ diff --git a/src/pages/DrillingProgram/CategoryHistory.jsx b/src/pages/DrillingProgram/CategoryHistory.jsx index 152a47f..7c3108a 100755 --- a/src/pages/DrillingProgram/CategoryHistory.jsx +++ b/src/pages/DrillingProgram/CategoryHistory.jsx @@ -79,7 +79,8 @@ export const CategoryHistory = ({ idCategory, visible, onClose }) => { setData(arrayOrDefault(paginatedHistory?.items)) }, setIsLoading, - `Не удалось загрузить историю категорий "${idCategory}" скважины "${well.caption}"` + `Не удалось загрузить историю категории "${idCategory}"`, + { actionName: `Загрузка истории категории "${idCategory}"`, well } ) }, [well, idCategory, visible, range, companyName, fileName, page, pageSize]) diff --git a/src/pages/DrillingProgram/CategoryRender.jsx b/src/pages/DrillingProgram/CategoryRender.jsx index 057cd98..a161f28 100755 --- a/src/pages/DrillingProgram/CategoryRender.jsx +++ b/src/pages/DrillingProgram/CategoryRender.jsx @@ -65,8 +65,8 @@ export const CategoryRender = memo(({ partData, onUpdate, onEdit, onHistory, set await onUpdate?.() }, setIsLoading, - `Не удалось ${approve ? 'согласовать' : 'отклонить'} документ для скважины "${well.caption}"!`, - `${approve ? 'Согласование' : 'Отклонение'} документа "${title}" скважины "${well.caption}"` + `Не удалось ${approve ? 'согласовать' : 'отклонить'} документ!`, + { actionName: `${approve ? 'Согласование' : 'Отклонение'} документа "${title}"`, well } ), [well, setIsLoading, file, permissionToApprove, title, onUpdate]) const onRemoveClick = useCallback(() => invokeWebApiWrapperAsync( @@ -75,8 +75,8 @@ export const CategoryRender = memo(({ partData, onUpdate, onEdit, onHistory, set onUpdate?.() }, setIsDeleting, - `Не удалось удалить категорию "${title}" для скважины "${well.caption}"`, - `Удаление категории "${title}" скважины "${well.caption}"` + `Не удалось удалить категорию "${title}"`, + { actionName: `Удаление категории "${title}"`, well } ), [well, idFileCategory, onUpdate, title]) const onUploadComplete = useCallback(() => { @@ -85,7 +85,7 @@ export const CategoryRender = memo(({ partData, onUpdate, onEdit, onHistory, set }, [onUpdate, idFileCategory]) const onUploadError = useCallback((e) => { - notify(e?.message ?? 'Ошибка загрузки файла', 'error') + notify(e?.message ?? 'Ошибка загрузки файла', 'error', well) setIsUploading(false) }, []) diff --git a/src/pages/DrillingProgram/index.jsx b/src/pages/DrillingProgram/index.jsx index cad25c6..fe1fda4 100755 --- a/src/pages/DrillingProgram/index.jsx +++ b/src/pages/DrillingProgram/index.jsx @@ -76,7 +76,8 @@ const DrillingProgram = memo(() => { })) }, setShowLoader, - `Не удалось загрузить название скважины "${well.caption}"` + `Не удалось загрузить категории программы бурения`, + { actionName: 'Загрузка категорий программы бурения', well } ), [well]) useEffect(() => { @@ -105,7 +106,8 @@ const DrillingProgram = memo(() => { await updateData() }, setShowLoader, - `Не удалось сбросить ошибку формирования программы бурения для скважины ${well.caption}` + `Не удалось сбросить ошибку формирования программы бурения`, + { actionName: 'Сброс ошибки форматирования программы бурения', well } ), [well]) return ( diff --git a/src/pages/FileDownload.jsx b/src/pages/FileDownload.jsx index 5a057d2..c18b51c 100644 --- a/src/pages/FileDownload.jsx +++ b/src/pages/FileDownload.jsx @@ -26,7 +26,7 @@ const FileDownload = memo(function FileDownload() { async () => setWell(await WellService.get(idWell)), null, 'Не удалось получить информацию о скважине', - 'Получение данных о скважине', + { actionName: 'Получение данных о скважине' } ) }, [idWell]) @@ -43,7 +43,7 @@ const FileDownload = memo(function FileDownload() { setIsError(true) return 'Не удалось получить информацию о файле' }, - 'Получение информации о файле' + { actionName: 'Получение информации о файле' } ) }, [idWell, idFile]) diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index 12c645d..f261d05 100755 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -27,7 +27,7 @@ const Login = memo(() => { }, setShowLoader, (ex) => ex?.message ?? 'Ошибка входа', - 'Вход в систему' + { actionName: 'Вход в систему' } ), [navigate, location]) return ( diff --git a/src/pages/Measure/MeasureTable.jsx b/src/pages/Measure/MeasureTable.jsx index 09b401b..810c4bf 100755 --- a/src/pages/Measure/MeasureTable.jsx +++ b/src/pages/Measure/MeasureTable.jsx @@ -60,8 +60,8 @@ export const MeasureTable = memo(({ group, updateMeasuresFunc, additionalButtons updateMeasuresFunc() }, setShowLoader, - `Не удалось удалить запись ${displayedValues.id} для скважины "${well.caption}"`, - 'Удаление записи для скважины' + `Не удалось удалить запись ${displayedValues.id}`, + { actionName: 'Удаление записи для скважины', well } ), [well, displayedValues, updateMeasuresFunc]) const editingDisabled = useMemo(() => disabled || !!displayedValues?.isDefaultData, [displayedValues?.isDefaultData]) @@ -95,8 +95,8 @@ export const MeasureTable = memo(({ group, updateMeasuresFunc, additionalButtons updateMeasuresFunc() }, setShowLoader, - `Не удалось добавить/изменить запись для скаважины "${well.caption}"`, - 'Добавление/изменение записи по скважине' + `Не удалось добавить/изменить запись`, + { actionName: 'Добавление/изменение записи по скважине', well } ), [displayedValues, editingActionName, group.idCategory, well, measuresForm, updateMeasuresFunc]) return ( diff --git a/src/pages/Measure/index.jsx b/src/pages/Measure/index.jsx index 744a89f..e6b4590 100755 --- a/src/pages/Measure/index.jsx +++ b/src/pages/Measure/index.jsx @@ -69,8 +69,8 @@ const Measure = memo(() => { }) }, setShowLoader, - `Не удалось загрузить последние данные по скважине ${well.caption}`, - 'Получение последних данных телеметрий' + `Не удалось загрузить последние данные`, + { actionName: 'Получение последних данных телеметрий', well } ) }, [well, isMeasuresUpdating]) diff --git a/src/pages/Register.jsx b/src/pages/Register.jsx index 186e1d8..89ddc46 100755 --- a/src/pages/Register.jsx +++ b/src/pages/Register.jsx @@ -62,7 +62,7 @@ export const Register = memo(() => { }, setShowLoader, `Ошибка отправки заявки на регистрацию`, - 'Отправка заявки на регистрацию' + { actionName: 'Отправка заявки на регистрацию' } ), [navigate]) return ( diff --git a/src/pages/Reports/DailyReport/ReportEditor.jsx b/src/pages/Reports/DailyReport/ReportEditor.jsx index 4741ba4..261f3ec 100644 --- a/src/pages/Reports/DailyReport/ReportEditor.jsx +++ b/src/pages/Reports/DailyReport/ReportEditor.jsx @@ -53,25 +53,25 @@ const table1Columns = [ const names = [ ['head', [ - 'wellName', 'clusterName', 'contractor', 'countLaunchesMSE', 'customer', 'bottomholeDepth', 'verticalDepth', - 'firstDriller', 'secondDriller', 'zenithAngle', 'azimuthAngle', 'penetrationSAUB', 'penetrationSpinMaster', - 'penetrationTorkMaster', 'secondDriller', 'wellDepthIntervalFinishDate', 'wellDepthIntervalStartDate', - 'workTimeSAUB', 'workTimeSpinMaster', 'workTimeTorkMaster', 'reportDate', + 'wellName', 'clusterName', 'customer', 'contractor', 'reportDate', 'wellDepthIntervalStartDate', 'wellDepthIntervalFinishDate', + 'bottomholeDepth', 'verticalDepth', 'zenithAngle', 'azimuthAngle', 'firstDriller', 'secondDriller', 'workTimeSAUB', + 'workTimeSpinMaster', 'workTimeTorkMaster', 'penetrationSAUB', 'penetrationSpinMaster', 'penetrationTorkMaster', 'countLaunchesMSE', ]], ['bha', [ 'bhaDescription', 'extensionDrillingOneBegin', 'extensionDrillingOneFinish', 'sluiceBegin', 'sluiceFinish', 'climbBegin', 'climbFinish', 'descentBegin', 'descentFinish', 'extensionDrillingTwoBegin', 'extensionDrillingTwoFinish', ]], - ['noDrilling', ['actualTimeBarrelPreparation', 'actualTimeExtension', 'standardTimeBarrelPreparation', 'standardTimeExtension']], + ['noDrilling', ['standardTimeBarrelPreparation', 'standardTimeExtension', 'actualTimeBarrelPreparation', 'actualTimeExtension']], ['timeBalance', [ - 'drilling', 'flushing', 'building', 'elaboration', 'extension', 'repair', 'knbk', 'spo', 'pzr', 'pzr', 'pgr', 'gis', - 'ozc', 'engineeringWorks', 'takingMeasure', 'cementing', 'simple', 'npv', + 'drilling', 'flushing', 'building', 'elaboration', 'extension', 'repair', 'knbk', 'spo', 'pzr', + 'pvo', 'pgr', 'gis', 'ozc', 'engineeringWorks', 'takingMeasure', 'cementing', 'simple', 'npv', + 'elaborationBeforeBuilding', 'templatingBeforeBuilding', 'flushingBeforeBuilding', 'staticSurveying', ]], ['saub', [ - 'avgDiffDropRotor', 'avgDiffPressureSlide', 'declinesReasonsROP', 'deviationFromTVD', 'drillingTimeInRotor', - 'declinesReasonsROP', 'extensionsCount', 'extensionsCount', 'penetrationInRotor', 'penetrationInSlide', - 'rotorDrillingModes', 'rotorSlidePercent', 'reductionTimeDrilling', 'increaseSpeedSection', 'increaseSpeedDay', - 'sectionDrillingTimeTotal', 'sectionPenetrationTotal', 'sectionROPPlan', 'slideDrillingModes', 'mspSection' + 'rotorDrillingModes', 'slideDrillingModes', 'penetrationInRotor', 'numberDrillingHours', 'avgDiffDropRotor', + 'penetrationInSlide', 'drillingTimeInRotor', 'avgDiffPressureSlide', 'sectionROPPlan', 'sectionDrillingTimeTotal', + 'sectionPenetrationTotal', 'extensionsCount', 'deviationFromTVD', 'declinesReasonsROP', 'increaseSpeedSection', + 'increaseSpeedDay', 'reductionTimeDrilling', 'rotorSlidePercent', 'mspSection', ]], ['sign', ['drillingMaster', 'supervisor']], ] @@ -248,14 +248,21 @@ const table2Summary = () => ( ) -const makeItem = (name, label) => ({ name, label }) -const renderDescriptions = (items) => items.map(({ name, label }) => ( - - - - - -)) +const makeItem = (name, label, number, style) => ({ name, label, style, number }) +const renderDescriptions = (items) => ( + + {items.map(({ name, label, style, number }) => { + const Component = number ? InputNumber : Input + return ( + + + + + + ) + })} + +) const tab1Items = [ makeItem('wellName', 'Название скважины'), @@ -264,9 +271,14 @@ const tab1Items = [ makeItem('contractor', 'Подрядчик'), ] +const tab2Items = [ + makeItem('extensionDrillingTwoBegin', 'Бурение с наращиваниями в инт. 2763-2850м. Время начала'), + makeItem('extensionDrillingTwoFinish', 'Бурение с наращиваниями в инт. 2763-2850м. Время окончания'), + makeItem('bhaDescription', 'КНБК описание'), +] + const tab4Items = [ makeItem('drilling', 'Бурение'), - makeItem('sectionDrillingTimeTotal', 'Время бурения за секцию'), makeItem('flushing', 'Промывка'), makeItem('building', 'Наращивание'), makeItem('elaboration', 'Проработка'), @@ -286,6 +298,24 @@ const tab4Items = [ makeItem('npv', 'НПВ'), ] +const tab5Items1 = [ + makeItem('sectionROPPlan', 'Плановая МСП за секцию', true), + makeItem('sectionDrillingTimeTotal', 'Время бурения за секцию', true), + makeItem('sectionPenetrationTotal', 'Проходка за секцию', true), + makeItem('extensionsCount', 'Кол-во наращиваний', true), + makeItem('deviationFromTVD', 'Отклонение от ГГД +/-, сут', true), +] + +const tab5Items2 = [ + makeItem('mspSection', 'МСП', false, {}), + makeItem('reductionTimeDrilling', 'Сокращение времени бурения за секцию, ч', false, {}), + makeItem('rotorSlidePercent', 'Ротор/Слайд %', false, {}), + makeItem('rotorDrillingModes', 'Режимы бурения в роторе'), + makeItem('slideDrillingModes', 'Режимы бурения в слайде'), + makeItem('increaseSpeedSection', 'Увеличение мех скорости за секцию %'), + makeItem('increaseSpeedDay', 'Увеличение мех скорости за сутки %'), +] + export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDateBusy }) => { const [form] = Form.useForm() const [isInvalid, setIsInvalid] = useState(false) @@ -323,8 +353,8 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate form.resetFields() }, setIsLoading, - `Не удалось сохранить суточный рапорт для скважины "${well.caption}"`, - 'Сохранение суточного рапорта' + `Не удалось сохранить суточный рапорт`, + { actionName: 'Сохранение суточного рапорта', well } ), [data, onDone, well, form]) const onDateChange = useCallback((date) => invokeWebApiWrapperAsync( @@ -337,7 +367,7 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate }, setIsLoading, (e) => `Не удалось загрузить автозаполняемые данные для нового рапорта: ${e}`, - 'Получение автозаполняемых данных суточного рапорта' + { actionName: 'Получение автозаполняемых данных суточного рапорта', well } ), [well, data, setFields, checkIsDateBusy]) return ( @@ -370,9 +400,7 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate - - {renderDescriptions(tab1Items)} - + {renderDescriptions(tab1Items)} - - - - - - - - - - - - - - - - - + {renderDescriptions(tab2Items)}
- - {renderDescriptions(tab4Items)} - + {renderDescriptions(tab4Items)}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + {renderDescriptions(tab5Items1)} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + {renderDescriptions(tab5Items2)} diff --git a/src/pages/Reports/DailyReport/index.jsx b/src/pages/Reports/DailyReport/index.jsx index b9dbd5c..665c36b 100644 --- a/src/pages/Reports/DailyReport/index.jsx +++ b/src/pages/Reports/DailyReport/index.jsx @@ -27,8 +27,8 @@ const DailyReport = memo(() => { setData(data.map((row, i) => ({ ...row, reportDate: row.head.reportDate }))) }, setIsLoading, - `Не удалось загрузить список суточных рапортов для скважины "${well.caption}"`, - 'Получение списка суточных рапортов', + `Не удалось загрузить список суточных рапортов`, + { actionName: 'Получение списка суточных рапортов', well } ), [well]) useEffect(() => { diff --git a/src/pages/Reports/DiagramReport/Reports.jsx b/src/pages/Reports/DiagramReport/Reports.jsx index 335f658..cacdf1d 100644 --- a/src/pages/Reports/DiagramReport/Reports.jsx +++ b/src/pages/Reports/DiagramReport/Reports.jsx @@ -70,8 +70,8 @@ export const Reports = memo(() => { setReports(reports) }, setShowLoader, - `Не удалось загрузить список рапортов по скважине "${well.caption}"`, - 'Получение списка рапортов' + `Не удалось загрузить список рапортов`, + { actionName: 'Получение списка рапортов', well } ) }, [well]) diff --git a/src/pages/Reports/DiagramReport/index.jsx b/src/pages/Reports/DiagramReport/index.jsx index 88ff90e..f96e569 100644 --- a/src/pages/Reports/DiagramReport/index.jsx +++ b/src/pages/Reports/DiagramReport/index.jsx @@ -77,10 +77,8 @@ const DiagramReport = memo(() => { }) }, setShowLoader, - `Не удалось создать отчет по скважине "${well.caption}" c - ${formatDate(filterDateRange[0])} по - ${formatDate(filterDateRange[1])}`, - 'Создание отчёта по скважине' + `Не удалось создать отчет c ${formatDate(filterDateRange[0])} по ${formatDate(filterDateRange[1])}`, + { actionName: 'Создание отчёта по скважине', well } ), [filterDateRange, format, well, step]) const disabledDate = useCallback((current) => @@ -108,8 +106,8 @@ const DiagramReport = memo(() => { ]) }, setShowLoader, - `Не удалось получить диапозон дат рапортов для скважины "${well.caption}"`, - 'Получение диапозона дат рапортов' + `Не удалось получить диапозон дат рапортов`, + { actionName: 'Получение диапозона дат рапортов', well } ) }, [well]) @@ -130,7 +128,7 @@ const DiagramReport = memo(() => { `Не удалось получить предварительные параметры отчета c ${formatDate(filterDateRange[0])} по ${formatDate(filterDateRange[1])}`, - 'Получение размера рапортов' + { actionName: 'Получение размера рапортов', well } ) }, [filterDateRange, step, format, well]) diff --git a/src/pages/Telemetry/Archive/index.jsx b/src/pages/Telemetry/Archive/index.jsx index 44d7214..fa0fbb3 100755 --- a/src/pages/Telemetry/Archive/index.jsx +++ b/src/pages/Telemetry/Archive/index.jsx @@ -175,8 +175,8 @@ const Archive = memo(() => { setDateLimit(dates) }, setShowLoader, - `Не удалось загрузить диапозон телеметрии для скважины "${well.caption}"`, - 'Загрузка диапозона телеметрии' + `Не удалось загрузить диапозон телеметрии`, + { actionName: 'Загрузка диапозона телеметрии', well } ) }, [well]) @@ -207,8 +207,8 @@ const Archive = memo(() => { }, setShowLoader, - `Не удалось загрузить данные по скважине "${well.caption}" c ${formatDate(startDate)} по ${formatDate(+startDate + chartInterval)}`, - 'Загрузка телеметрий в диапозоне' + `Не удалось загрузить данные c ${formatDate(startDate)} по ${formatDate(+startDate + chartInterval)}`, + { actionName: 'Загрузка телеметрий в диапозоне', well } ) }, [well, chartInterval, loaded, startDate]) diff --git a/src/pages/Telemetry/DashboardNNB/index.jsx b/src/pages/Telemetry/DashboardNNB/index.jsx index 21afc8b..2d4606e 100644 --- a/src/pages/Telemetry/DashboardNNB/index.jsx +++ b/src/pages/Telemetry/DashboardNNB/index.jsx @@ -136,7 +136,7 @@ const DashboardNNB = memo(({ enableEditing = false }) => { }, setIsLoading, 'Не удалось загрузить информацию о параметрах ННБ', - 'Получение информации о параметрах ННБ' + { actionName: 'Получение информации о параметрах ННБ' } ) }, []) @@ -159,8 +159,8 @@ const DashboardNNB = memo(({ enableEditing = false }) => { handleData(await WitsRecord61Service.getLastData(well.id), '61') }, setIsLoading, - `Не удалось загрузить последние данные по скважине ${well.caption}`, - 'Получение данных WITS', + `Не удалось загрузить последние данные WITS`, + { actionName: 'Получение данных WITS', well } ) return Subscribe('hubs/telemetry', `well_${well.id}_wits`, { methodName: 'ReceiveWitsRecord1', handler: (data) => handleData(data, '1') }, diff --git a/src/pages/Telemetry/Messages.jsx b/src/pages/Telemetry/Messages.jsx index 85dc09a..7ad92e6 100755 --- a/src/pages/Telemetry/Messages.jsx +++ b/src/pages/Telemetry/Messages.jsx @@ -95,8 +95,8 @@ const Messages = memo(() => { }) }, setShowLoader, - `Не удалось загрузить сообщения по скважине "${well.caption}"`, - 'Полученик списка сообщений' + `Не удалось загрузить сообщения`, + { actionName: 'Полученик списка сообщений', well } ) }, [well, page, categories, range, searchString]) diff --git a/src/pages/Telemetry/Operations/DrillerSchedule.jsx b/src/pages/Telemetry/Operations/DrillerSchedule.jsx index 3474960..8b4b2cf 100644 --- a/src/pages/Telemetry/Operations/DrillerSchedule.jsx +++ b/src/pages/Telemetry/Operations/DrillerSchedule.jsx @@ -33,8 +33,8 @@ export const DrillerSchedule = memo(({ drillers, loading, onChange }) => { setSchedule(schedule) }, setShowLoader, - `Не удалось загрузить расписания по скважине "${well.caption}"`, - 'Получение списка расписаний', + `Не удалось загрузить расписания`, + { actionName: 'Получение списка расписаний', well } ), [well]) const onModalOpen = useCallback(() => { diff --git a/src/pages/Telemetry/Operations/TargetEditor.jsx b/src/pages/Telemetry/Operations/TargetEditor.jsx index 2f4ba3c..1df0c9a 100644 --- a/src/pages/Telemetry/Operations/TargetEditor.jsx +++ b/src/pages/Telemetry/Operations/TargetEditor.jsx @@ -29,8 +29,8 @@ export const TargetEditor = memo(({ loading, onChange }) => { setTargets(targets) }, setShowLoader, - `Не удалось загрузить цели для скважины "${well.caption}"`, - 'Получение списка целей', + `Не удалось загрузить цели`, + { actionName: 'Получение списка целей', well } ), [well]) const onModalOpen = useCallback(() => setShowModal(true), []) @@ -81,8 +81,8 @@ export const TargetEditor = memo(({ loading, onChange }) => { ]) }, setShowLoader, - `Не удалось получить список категорий целей для скважины "${well.caption}"`, - 'Получение списка категорий целей' + `Не удалось получить список категорий целей`, + { actionName: 'Получение списка категорий целей', well } ) }, [well]) diff --git a/src/pages/Telemetry/Operations/index.jsx b/src/pages/Telemetry/Operations/index.jsx index e2f5000..c518806 100644 --- a/src/pages/Telemetry/Operations/index.jsx +++ b/src/pages/Telemetry/Operations/index.jsx @@ -47,7 +47,7 @@ const Operations = memo(() => { }, setDrillersLoader, 'Не удалось загрузить список бурильщиков', - 'Получение списка бурильщиков' + { actionName: 'Получение списка бурильщиков' } ), []) const updateData = useCallback(async () => invokeWebApiWrapperAsync( @@ -57,8 +57,8 @@ const Operations = memo(() => { setData(data) }, setIsLoading, - `Не удалось загрузить список определённых операций по скважине "${well.caption}"`, - 'Получение списка определённых операций', + `Не удалось загрузить список определённых операций`, + { actionName: 'Получение списка определённых операций', well } ), [well, dates, selectedCategory]) useEffect(() => { @@ -77,7 +77,8 @@ const Operations = memo(() => { }))) }, setIsLoading, - 'Не удалось загрзуить категории операций' + 'Не удалось загрзуить категории операций', + { actionName: 'Получение категорий операций' } ) }, []) @@ -92,8 +93,8 @@ const Operations = memo(() => { } }, setIsLoading, - `Не удалось загрузить диапазон доступных дат для скважины "${well.caption}"`, - 'Получение дапазона доступних дат', + `Не удалось загрузить диапазон доступных дат`, + { actionName: 'Получение дапазона доступних дат', well } ) }, [well]) diff --git a/src/pages/Telemetry/TelemetryView/ActiveMessagesOnline.jsx b/src/pages/Telemetry/TelemetryView/ActiveMessagesOnline.jsx index eabd742..c43a138 100755 --- a/src/pages/Telemetry/TelemetryView/ActiveMessagesOnline.jsx +++ b/src/pages/Telemetry/TelemetryView/ActiveMessagesOnline.jsx @@ -32,8 +32,8 @@ export const ActiveMessagesOnline = memo(({ well: givenWell }) => { handleReceiveMessages(messages) }, setLoader, - `Не удалось загрузить сообщения по скважине "${well.caption}"`, - 'Получение списка сообщений' + `Не удалось загрузить сообщения`, + { actionName: 'Получение списка сообщений', well } ) return Subscribe('hubs/telemetry',`well_${well.id}`, { methodName: 'ReceiveMessages', diff --git a/src/pages/Telemetry/TelemetryView/Setpoints/SetpointSender.jsx b/src/pages/Telemetry/TelemetryView/Setpoints/SetpointSender.jsx index 6efe976..0d7bcf4 100755 --- a/src/pages/Telemetry/TelemetryView/Setpoints/SetpointSender.jsx +++ b/src/pages/Telemetry/TelemetryView/Setpoints/SetpointSender.jsx @@ -72,8 +72,8 @@ export const SetpointSender = memo(({ onClose, visible, setpointNames }) => { await onClose(true) }, setIsLoading, - `Не удалось отправить уставки по скважине "${well.caption}"`, - `Рекомендация новыой уставки` + `Не удалось отправить уставки`, + { actionName: `Рекомендация новыой уставки`, well } ), [well, setpoints, comment, expirePeriod, onClose]) return ( diff --git a/src/pages/Telemetry/TelemetryView/Setpoints/index.jsx b/src/pages/Telemetry/TelemetryView/Setpoints/index.jsx index 7f25c60..828f61c 100755 --- a/src/pages/Telemetry/TelemetryView/Setpoints/index.jsx +++ b/src/pages/Telemetry/TelemetryView/Setpoints/index.jsx @@ -35,8 +35,8 @@ export const Setpoints = memo(({ ...other }) => { }))) }, setIsLoading, - `Не удалось загрузить список имён уставок по скважине "${well.caption}"`, - 'Получение списка имён уставок' + `Не удалось загрузить список имён уставок`, + { actionName: 'Получение списка имён уставок', well } ) }, [well]) @@ -60,8 +60,8 @@ export const Setpoints = memo(({ ...other }) => { setSetpoints(setpoints) }, setIsLoading, - `Не удалось загрузить список для скважины "${well.caption}"`, - 'Получение списка рекомендаций' + `Не удалось загрузить список рекомендаций`, + { actionName: 'Получение списка рекомендаций', well } ), [well]) const onOpenClick = useCallback(async () => { diff --git a/src/pages/Telemetry/TelemetryView/WirelineRunOut.jsx b/src/pages/Telemetry/TelemetryView/WirelineRunOut.jsx index 763c623..d3ef138 100644 --- a/src/pages/Telemetry/TelemetryView/WirelineRunOut.jsx +++ b/src/pages/Telemetry/TelemetryView/WirelineRunOut.jsx @@ -18,7 +18,8 @@ export const WirelineRunOut = memo(() => { setTwro(twro) }, setIsLoading, - `Не удалось получить данные по талевому канату скважины "${well.caption}"` + `Не удалось получить данные по талевому канату`, + { actionName: 'Получение данных по талевому канату', well } ), [well]) const onTooltipVisibleChanged = useCallback((visible) => { diff --git a/src/pages/Telemetry/TelemetryView/index.jsx b/src/pages/Telemetry/TelemetryView/index.jsx index 2220061..c0c0242 100755 --- a/src/pages/Telemetry/TelemetryView/index.jsx +++ b/src/pages/Telemetry/TelemetryView/index.jsx @@ -193,8 +193,8 @@ const TelemetryView = memo(() => { handleDataSpin(dataSpin) }, null, - `Не удалось получить данные по скважине "${well.caption}"`, - 'Получение данных по скважине' + `Не удалось получить данные`, + { actionName: 'Получение данных по скважине', well } ) }, [well, chartInterval, handleDataSpin, handleDataSaub]) @@ -215,8 +215,8 @@ const TelemetryView = memo(() => { setRop(rop) }, setShowLoader, - `Не удалось загрузить данные по скважине "${well.caption}"`, - 'Получение данных по скважине' + `Не удалось загрузить данные`, + { actionName: 'Получение данных по скважине', well } ) }, [well]) diff --git a/src/pages/Well.jsx b/src/pages/Well.jsx index 347263d..a54f6b1 100755 --- a/src/pages/Well.jsx +++ b/src/pages/Well.jsx @@ -53,7 +53,8 @@ const Well = memo(() => { setWell(newWell) }, undefined, - `Не удалось изменить данные скважины "${well.caption}"` + `Не удалось изменить данные скважины`, + { actionName: 'Изменение данных скважины', well } ), [well]) return ( diff --git a/src/pages/WellOperations/DrillProcessFlow.jsx b/src/pages/WellOperations/DrillProcessFlow.jsx index 798583f..86dcb09 100755 --- a/src/pages/WellOperations/DrillProcessFlow.jsx +++ b/src/pages/WellOperations/DrillProcessFlow.jsx @@ -7,7 +7,6 @@ import { EditableTable, makeNumericMinMax, makeNumericStartEnd } from '@componen import { DrillFlowChartService } from '@api' import { arrayOrDefault } from '@utils' - const columns = [ makeNumericStartEnd('Глубина, м', 'depth'), makeNumericMinMax('Нагрузка, т', 'axialLoad'), @@ -29,8 +28,8 @@ export const DrillProcessFlow = memo(() => { setFlows(arrayOrDefault(flows)) }, setShowLoader, - `Не удалось загрузить режимно-технологическую карту скважины "${well.caption}"`, - 'Получение режимно-технологической карты скважины' + `Не удалось загрузить режимно-технологическую карту`, + { actionName: 'Получение режимно-технологической карты', well } ), [well]) useEffect(() => { @@ -52,7 +51,7 @@ export const DrillProcessFlow = memo(() => { edit: { ...handlerProps, action: 'update', actionName: 'Редактирование месторождения', recordParser }, delete: { ...handlerProps, action: 'delete', actionName: 'Удаление месторождения', permission: 'DrillFlowChart.delete' }, } - }, [updateFlows, well.di]) + }, [updateFlows, well.id]) return ( diff --git a/src/pages/WellOperations/Tvd/NetGraphExport.jsx b/src/pages/WellOperations/Tvd/NetGraphExport.jsx index e574b0b..bcfd690 100755 --- a/src/pages/WellOperations/Tvd/NetGraphExport.jsx +++ b/src/pages/WellOperations/Tvd/NetGraphExport.jsx @@ -10,8 +10,9 @@ export const NetGraphExport = memo(({ well, ...other }) => { const onExport = useCallback(() => invokeWebApiWrapperAsync( async () => await download(`/api/well/${well.id}/wellOperations/scheduleReport`), setIsFileExporting, - 'Не удалось загрузить файл' - ), [well.id]) + 'Не удалось загрузить файл', + { actionName: 'Загрузка файла', well } + ), [well]) return (
diff --git a/src/pages/WellOperations/Tvd/StatExport.jsx b/src/pages/WellOperations/Tvd/StatExport.jsx index c0d51a3..dc7462e 100644 --- a/src/pages/WellOperations/Tvd/StatExport.jsx +++ b/src/pages/WellOperations/Tvd/StatExport.jsx @@ -9,7 +9,8 @@ export const StatExport = memo(({ well }) => { const onExport = useCallback((isWell) => invokeWebApiWrapperAsync( async () => await download(`/api/DetectedOperation/export?${isWell ? 'idWell' : 'idCluster'}=${isWell ? well.id : well.idCluster}`), setIsFileExporting, - 'Не удалось загрузить файл' + 'Не удалось загрузить файл', + { actionName: 'Загрузка файла', well } ), [well]) return ( diff --git a/src/pages/WellOperations/Tvd/TLChart.jsx b/src/pages/WellOperations/Tvd/TLChart.jsx index 4d82890..b173992 100644 --- a/src/pages/WellOperations/Tvd/TLChart.jsx +++ b/src/pages/WellOperations/Tvd/TLChart.jsx @@ -92,7 +92,8 @@ export const TLChart = memo(({ }).flat()) }, setIsLoading, - `Не удалось загрузить список операций по скважине "${well.caption}"` + `Не удалось загрузить список операций`, + { actionName: 'Получение списка операций', well } ) }, [well]) diff --git a/src/pages/WellOperations/Tvd/TLPie.jsx b/src/pages/WellOperations/Tvd/TLPie.jsx index bf3e2cf..6b94c3a 100644 --- a/src/pages/WellOperations/Tvd/TLPie.jsx +++ b/src/pages/WellOperations/Tvd/TLPie.jsx @@ -84,7 +84,8 @@ export const TLPie = memo(({ well }) => { setStats(stats) }, setIsLoading, - `Не удалось загрузить статистику автоопределённых операций по скважине "${well.caption}"` + `Не удалось загрузить статистику автоопределённых операций`, + { actionName: 'Получение статистики автоопределённых операций', well } ) }, [well]) diff --git a/src/pages/WellOperations/Tvd/index.jsx b/src/pages/WellOperations/Tvd/index.jsx index aafbd7a..8bfed7c 100644 --- a/src/pages/WellOperations/Tvd/index.jsx +++ b/src/pages/WellOperations/Tvd/index.jsx @@ -1,6 +1,6 @@ import { LineChartOutlined, LinkOutlined } from '@ant-design/icons' import { memo, useState, useEffect, useMemo } from 'react' -import { Switch, Segmented, Button } from 'antd' +import { Switch, Segmented } from 'antd' import { Link } from 'react-router-dom' import * as d3 from 'd3' @@ -20,18 +20,19 @@ import AdditionalTables from './AdditionalTables' import '@styles/index.css' import '@styles/tvd.less' +const operationsColors = [ + '#1abc9c', '#16a085', '#2ecc71', '#27ae60', '#3498db', + '#2980b9', '#9b59b6', '#8e44ad', '#34495e', '#2c3e50', + '#f1c40f', '#f39c12', '#e67e22', '#d35400', '#e74c3c', + '#c0392b', '#ecf0f1', '#bdc3c7', '#95a5a6', '#7f8c8d', +] + export const makeGetColor = (types) => (type) => { if (!type) return '#0008' - const raw = [ - '#1abc9c', '#16a085', '#2ecc71', '#27ae60', '#3498db', - '#2980b9', '#9b59b6', '#8e44ad', '#34495e', '#2c3e50', - '#f1c40f', '#f39c12', '#e67e22', '#d35400', '#e74c3c', - '#c0392b', '#ecf0f1', '#bdc3c7', '#95a5a6', '#7f8c8d', - ] - if (!types || types.length <= 0) return raw[type] + if (!types || types.length <= 0) return operationsColors[type] const i = types.indexOf(type) - return i < 0 ? raw[type] : raw[i] + return i < 0 ? operationsColors[type] : operationsColors[i] } const Item = ({ label, children, ...other }) => (
{label}: {children}
) @@ -189,8 +190,8 @@ const Tvd = memo(({ well: givenWell, title, ...other }) => { invokeWebApiWrapperAsync( async () => setOperations(await getOperations(well.id)), setIsLoading, - `Не удалось загрузить операции по скважине "${well.caption}"`, - 'Получение списка опервций по скважине' + `Не удалось загрузить операции`, + { actionName: 'Получение списка опервций по скважине', well } ) }, [well]) diff --git a/src/pages/WellOperations/WellDrillParams.jsx b/src/pages/WellOperations/WellDrillParams.jsx index 1387584..6391023 100755 --- a/src/pages/WellOperations/WellDrillParams.jsx +++ b/src/pages/WellOperations/WellDrillParams.jsx @@ -49,8 +49,8 @@ export const WellDrillParams = memo(() => { setParams(params) }, setShowLoader, - `Не удалось загрузить список режимов бурения скважины "${well.caption}"`, - 'Получение списка режимов бурения скважины' + `Не удалось загрузить список режимов бурения`, + { actionName: 'Получение списка режимов бурения скважины', well } ), [well]) useEffect(() => { diff --git a/src/pages/WellOperations/WellOperationsEditor.jsx b/src/pages/WellOperations/WellOperationsEditor.jsx index da471b1..5ac3cfc 100755 --- a/src/pages/WellOperations/WellOperationsEditor.jsx +++ b/src/pages/WellOperations/WellOperationsEditor.jsx @@ -80,8 +80,8 @@ const WellOperationsEditor = memo(({ idType, showNpt, ...other }) => { setSectionTypes(sectionTypes.map(([id, label]) => ({ value: parseInt(id), label }))) }, setShowLoader, - `Не удалось загрузить список операций по скважине "${well.caption}"`, - 'Получение списка операций по скважине' + `Не удалось загрузить список операций`, + { actionName: 'Получение списка операций по скважине', well } ) }, [well]) @@ -98,8 +98,8 @@ const WellOperationsEditor = memo(({ idType, showNpt, ...other }) => { setPaginationTotal(total) }, setShowLoader, - `Не удалось загрузить список операций по скважине ${well.caption}`, - 'Получение списка операций по скважине' + `Не удалось загрузить список операций`, + { actionName: 'Получение списка операций', well } ), [well, idType, pageNumAndPageSize]) useEffect(() => { diff --git a/src/pages/WellOperations/WellSectionsStat.jsx b/src/pages/WellOperations/WellSectionsStat.jsx index 59d874f..dcef7ba 100755 --- a/src/pages/WellOperations/WellSectionsStat.jsx +++ b/src/pages/WellOperations/WellSectionsStat.jsx @@ -57,8 +57,8 @@ export const WellSectionsStat = memo(() => { } }, setShowLoader, - `Не удалось получить статистику по секциям скважины "${well.caption}"`, - 'Получение статистики по секциям скважины' + `Не удалось получить статистику по секциям`, + { actionName: 'Получение статистики по секциям', well } ) }, [well])