Compare commits

..

No commits in common. "5498bf4935eed7fe36084af6159564133c86e7e0" and "b23f2d0d1c1414c58c0299b23d1d060bc35df1fc" have entirely different histories.

5 changed files with 15 additions and 22 deletions

View File

@ -101,18 +101,6 @@ const EditCell = memo(({ refCell, onChange, disabled, value, tableId, cellId, ta
return () => observer.disconnect();
}, [state.currentValue]);
useEffect(() => {
// Небольшая задержка для гарантии, что DOM полностью готов
const timeoutId = setTimeout(() => {
if (textareaRef.current && !disabled) {
textareaRef.current.focus();
textareaRef.current.select();
}
}, 50);
return () => clearTimeout(timeoutId);
}, [disabled]);
const handleSave = useCallback(() => {
const { currentValue } = state;

View File

@ -77,7 +77,6 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => {
error: wsError,
updateCell: contextUpdateCell,
addRow: contextAddRow,
deleteRow: contextDeleteRow,
startEditing: contextStartEditing,
addProgram: contextAddProgram,
addProject: contextAddProject,

View File

@ -84,8 +84,12 @@ export function updateCells(data, newRows) {
) {
if (newData && typeof newData === "object") {
Object.keys(newData).forEach((key) => {
if (row.data && row.data[key] !== undefined) {
row.data[key] = deepMerge(row.data[key], newData[key]);
if (row.data && row.data[key]) {
if (typeof row.data[key] === "object") {
row.data[key] = deepMerge(row.data[key], newData[key]);
} else {
row.data[key] = newData[key];
}
} else if (row[key]) {
row[key] = newData[key];
}
@ -108,6 +112,7 @@ export function updateCells(data, newRows) {
findAndUpdate(updatedRows);
});
return updatedRows;
}
@ -211,7 +216,7 @@ export function deleteRow(data, lineId) {
rows.splice(i, 1);
i--;
}
if ((rowDeleteSortOrder > 0) & (row.sort_order >= rowDeleteSortOrder)) {
row.sort_order = row.sort_order - 1;
}

View File

@ -53,6 +53,5 @@ export const SHEET_NAME = {
"AHR_UTILITY": "АХР Коммунальные услуги",
"AHR_SECURITY": "АХР Безопасность",
"OTCH9F": "Отчет 9ф",
"SMETA": "Смета",
'STRUCTURE': 'Структура'
"SMETA": "Смета"
};

View File

@ -76,7 +76,7 @@ export default function ProjectsPage() {
useEffect(() => {
if (!user) return;
if (user.role_id == ROLES_NAME_ID.admin) {
SspApi.getAll({ is_active: true }).then(data => {
SspApi.getAll({is_active: true}).then(data => {
if (data.success) {
setProjectData(prev => ({
...prev, 'ССП/РФ': {
@ -248,9 +248,11 @@ export default function ProjectsPage() {
getItemId={(project) => project.id}
getItemTitle={(project) => project.name || 'Проект'}
extraActions={
<PrimaryButton onClick={openModal} startIcon={<WhitePlus />} height='2.5rem' >
Создать проект
</PrimaryButton>
user.role_id === ROLES_NAME_ID.admin && (
<PrimaryButton onClick={openModal} startIcon={<WhitePlus />} height='2.5rem' >
Создать проект
</PrimaryButton>
)
}
filterActions={
<Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap', alignItems: 'center', height: '2.5rem' }}>