fix этапов
This commit is contained in:
parent
3aa9c96f25
commit
c6502e59a7
@ -143,7 +143,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
|
||||
}
|
||||
},
|
||||
columnVirtualizerOptions: ({ table }) => ({
|
||||
overscan: 1,
|
||||
overscan: 10,
|
||||
measureElement: (el) => {
|
||||
if (!el) return 150;
|
||||
const index = Number(el?.getAttribute?.('data-index'));
|
||||
@ -152,7 +152,6 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
|
||||
const colId = table.getState().columnPinning.left[index];
|
||||
const column = table.getColumn(colId);
|
||||
return column.columnDef.size;
|
||||
|
||||
}
|
||||
const allCols = [...table.getLeftVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns()]
|
||||
return allCols[index]?.getSize() ?? 150;
|
||||
|
||||
@ -168,7 +168,7 @@ const SettingPanel = ({
|
||||
<ExportDefaultButton
|
||||
onClick={handleExport}
|
||||
disabled={!formId || !sheetName || isExporting}
|
||||
text={isExporting ? 'Экспорт...' : 'Экспорт в Excel'}
|
||||
text={isExporting ? 'Экспорт...' : 'Экспорт'}
|
||||
/>
|
||||
</GroupByObject>
|
||||
</Stack>
|
||||
|
||||
@ -38,13 +38,12 @@ export const AddStagesModal = ({
|
||||
sheetOptions = [], // [{ value: 'sheet1', label: 'Лист 1' }]
|
||||
formType = '',
|
||||
defaultSheet = '',
|
||||
defaultRole,
|
||||
}) => {
|
||||
const [startDate, setStartDate] = useState(null);
|
||||
const [endDate, setEndDate] = useState(null);
|
||||
const [stageName, setStageName] = useState('');
|
||||
const [selectedSheet, setSelectedSheet] = useState(defaultSheet);
|
||||
const [selectedRole, setSelectedRole] = useState(defaultRole);
|
||||
const [selectedRole, setSelectedRole] = useState();
|
||||
const [columnsConfig, setColumnsConfig] = useState({ columns: [], colors: {} });
|
||||
const [selectedColumns, setSelectedColumns] = useState([]);
|
||||
|
||||
@ -89,10 +88,10 @@ export const AddStagesModal = ({
|
||||
setEndDate(null);
|
||||
setStageName('');
|
||||
setSelectedSheet(defaultSheet);
|
||||
setSelectedRole(defaultRole);
|
||||
setSelectedRole();
|
||||
setSelectedColumns([]);
|
||||
}
|
||||
}, [stage, isOpen, defaultSheet, defaultRole]);
|
||||
}, [stage, isOpen, defaultSheet]);
|
||||
|
||||
const handleSave = () => {
|
||||
const opensAt = formatDateForApi(startDate);
|
||||
@ -129,7 +128,7 @@ export const AddStagesModal = ({
|
||||
setEndDate(null);
|
||||
setStageName('');
|
||||
setSelectedSheet(defaultSheet);
|
||||
setSelectedRole(defaultRole);
|
||||
setSelectedRole();
|
||||
setSelectedColumns([]);
|
||||
onClose();
|
||||
};
|
||||
@ -238,6 +237,7 @@ export const AddStagesModal = ({
|
||||
placeholderSelect="Выбрано столбцов: "
|
||||
selectedIds={selectedColumns}
|
||||
onSelectNode={handleColumnsSelect}
|
||||
forStage={true}
|
||||
/>
|
||||
</FormControl>
|
||||
</Stack>
|
||||
@ -247,7 +247,7 @@ export const AddStagesModal = ({
|
||||
<FormControl fullWidth>
|
||||
<FormLabel>Роль</FormLabel>
|
||||
<Select
|
||||
value={selectedRole}
|
||||
value={selectedRole ?? ''}
|
||||
onChange={(e) => setSelectedRole(e.target.value)}
|
||||
displayEmpty
|
||||
size="small"
|
||||
|
||||
@ -76,41 +76,59 @@ export const SettingModal = ({
|
||||
setIsAddEditModalOpen(true);
|
||||
};
|
||||
const transformToSheetOptions = (data) => {
|
||||
const sheetMap = new Map();
|
||||
// TO DO пока не добавили direction для этапов
|
||||
|
||||
data.forEach(item => {
|
||||
const key = item.direction ? `${item.sheet}_${item.direction}` : item.sheet;
|
||||
// const sheetMap = new Map();
|
||||
|
||||
if (!sheetMap.has(key)) {
|
||||
sheetMap.set(key, {
|
||||
sheet: item.sheet,
|
||||
direction: item.direction,
|
||||
names: []
|
||||
});
|
||||
}
|
||||
// data.forEach(item => {
|
||||
// const key = item.direction ? `${item.sheet}_${item.direction}` : item.sheet;
|
||||
|
||||
const entry = sheetMap.get(key);
|
||||
if (!entry.names.includes(item.name)) {
|
||||
entry.names.push(item.name);
|
||||
}
|
||||
});
|
||||
// if (!sheetMap.has(key)) {
|
||||
// sheetMap.set(key, {
|
||||
// sheet: item.sheet,
|
||||
// direction: item.direction,
|
||||
// names: []
|
||||
// });
|
||||
// }
|
||||
|
||||
// const entry = sheetMap.get(key);
|
||||
// if (!entry.names.includes(item.name)) {
|
||||
// entry.names.push(item.name);
|
||||
// }
|
||||
// });
|
||||
|
||||
// const sheetOptions = [];
|
||||
|
||||
// sheetMap.forEach((value) => {
|
||||
// let label = value.names.join(' / ');
|
||||
|
||||
// if (value.direction) {
|
||||
// label += ` (${value.direction})`;
|
||||
// }
|
||||
|
||||
// sheetOptions.push({
|
||||
// value: value.direction ? `${value.sheet}_${value.direction}` : value.sheet,
|
||||
// label: label,
|
||||
// sheet: value.sheet,
|
||||
// direction: value.direction
|
||||
// });
|
||||
// });
|
||||
|
||||
// return sheetOptions;
|
||||
|
||||
const sheetOptions = [];
|
||||
|
||||
sheetMap.forEach((value) => {
|
||||
let label = value.names.join(' / ');
|
||||
|
||||
if (value.direction) {
|
||||
label += ` (${value.direction})`;
|
||||
data.forEach((value) => {
|
||||
if (sheetOptions.find(s => s.sheet == value.sheet)) {
|
||||
return;
|
||||
}
|
||||
|
||||
sheetOptions.push({
|
||||
value: value.direction ? `${value.sheet}_${value.direction}` : value.sheet,
|
||||
label: label,
|
||||
value: value.sheet,
|
||||
label: value.name,
|
||||
sheet: value.sheet,
|
||||
direction: value.direction
|
||||
});
|
||||
});
|
||||
direction: value.direction,
|
||||
})
|
||||
})
|
||||
|
||||
return sheetOptions;
|
||||
};
|
||||
|
||||
@ -34,7 +34,7 @@ export const ExportWithTextButton = (props) => {
|
||||
<Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
|
||||
<ExportSvg size="1rem" color="#45881c" strokeWidth={'.33px'} />
|
||||
<span style={{ fontSize: '.88rem' }}>
|
||||
{props?.text || 'Экспорт в Excel'}
|
||||
{props?.text || 'Экспорт'}
|
||||
</span>
|
||||
</Stack>
|
||||
</PrimaryOutlinedButton>
|
||||
@ -57,7 +57,7 @@ export const ExportDefaultButton = (props) => {
|
||||
<DefaultOutlinedButton {...props}>
|
||||
<Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
|
||||
<ExportSvg color="#4a5565" strokeWidth={'.33'} size="1rem" />
|
||||
<span>{props?.text || 'Экспорт в Excel'}</span>
|
||||
<span>{props?.text || 'Экспорт'}</span>
|
||||
</Stack>
|
||||
</DefaultOutlinedButton>
|
||||
);
|
||||
|
||||
@ -21,6 +21,7 @@ const CollapsibleTree = ({
|
||||
placeholderSelect = 'Скрыто столбцов: ',
|
||||
selectedIds = [],
|
||||
onSelectNode,
|
||||
forStage = false
|
||||
}) => {
|
||||
const [expandedItems, setExpandedItems] = useState([]);
|
||||
const [anchorEl, setAnchorEl] = useState(null);
|
||||
@ -144,7 +145,7 @@ const CollapsibleTree = ({
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
const selectedCount = selectedNodes.length - 1; //1 колонка всегда скрыта
|
||||
const selectedCount = forStage ? selectedNodes.length : selectedNodes.length - 1; //1 колонка всегда скрыта
|
||||
|
||||
const isAllSelected = () => {
|
||||
if (!columnTree) return false;
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { DIRECTION_TRANSLATE, FORM_TYPE_OPTIONS } from '../../../constants';
|
||||
import {
|
||||
Section,
|
||||
SectionStartPart,
|
||||
@ -22,7 +23,7 @@ const TableCard = ({ table, onNavigate }) => {
|
||||
</div>
|
||||
<SectionTitle>
|
||||
<h2>{table.name}</h2>
|
||||
<h2>{table?.direction}</h2>
|
||||
<h2>{DIRECTION_TRANSLATE[table?.direction]}</h2>
|
||||
{/* <UsersList>
|
||||
<div className="img-user"></div>
|
||||
</UsersList> */}
|
||||
|
||||
@ -37,6 +37,7 @@ export const EDIT_ACCESS_RUSSIAN = {
|
||||
|
||||
export const FORM_TYPE_OPTIONS = ['FORM_1', 'FORM_2', 'FORM_3', 'FORM_4'];
|
||||
export const FROM_TYPE_TRANSLATE = { 'FORM_1': 'Смета ССП', 'FORM_2': 'Смета РФ', 'FORM_3': 'Программа развитие ПРРС', 'FORM_4': 'Проектная деятельность' };
|
||||
export const DIRECTION_TRANSLATE = { 'Support': 'Поддержка', 'Development': 'Развитие' };
|
||||
|
||||
export const ORG_UNIT_TYPE_OPTIONS = [
|
||||
{ value: 'ssp', label: 'ССП' },
|
||||
|
||||
@ -22,7 +22,7 @@ import { ModalCreateProject } from './ModalCreateProject';
|
||||
import { ExportWithTextButton } from '../../components/common/Buttons/ButtonsActions';
|
||||
import { exportSingleForm } from '../../utils/exportForm';
|
||||
import TablesList from '../../components/common/TableList/TableList';
|
||||
import { FROM_TYPE_TRANSLATE, SHEET_NAME } from '../../constants';
|
||||
import { DIRECTION_TRANSLATE, FROM_TYPE_TRANSLATE, SHEET_NAME } from '../../constants';
|
||||
|
||||
const TaskInfo = ({ task }) => {
|
||||
const portalContent = (
|
||||
@ -61,7 +61,7 @@ export default function TaskPage() {
|
||||
const mappedTables = data.result.all_sheets.map(sheet => ({
|
||||
name: SHEET_NAME[sheet.sheet_name] || sheet.sheet_name,
|
||||
sheet: sheet.sheet_name,
|
||||
direction: sheet.direction
|
||||
direction: sheet.direction,
|
||||
}));
|
||||
setTables(mappedTables);
|
||||
} catch (error) {
|
||||
|
||||
@ -26,6 +26,7 @@ import {
|
||||
FORM_TYPE_OPTIONS,
|
||||
ORG_UNIT_TYPE_OPTIONS,
|
||||
ROLES_NAME_ID,
|
||||
FROM_TYPE_TRANSLATE
|
||||
} from '../../constants';
|
||||
import { useAuth } from '../../app/context/AuthProvider';
|
||||
import { SspApi } from '../../api/ssp';
|
||||
@ -129,8 +130,8 @@ export default function TasksPage() {
|
||||
} catch (error) {
|
||||
toast.error(
|
||||
error.response?.data?.detail ||
|
||||
error.response?.data?.message ||
|
||||
'Ошибка при создании задачи',
|
||||
error.response?.data?.message ||
|
||||
'Ошибка при создании задачи',
|
||||
);
|
||||
} finally {
|
||||
setLoadingUpdate(false);
|
||||
@ -182,7 +183,7 @@ export default function TasksPage() {
|
||||
const res = await TasksApi.list(params);
|
||||
const data = res.result;
|
||||
|
||||
|
||||
|
||||
setItems(data);
|
||||
setTotalCount(res.count);
|
||||
|
||||
@ -413,7 +414,7 @@ export default function TasksPage() {
|
||||
onChange={(e) => handleFormChange('formTypeCode', e.target.value)}
|
||||
renderValue={(selected) =>
|
||||
selected ? (
|
||||
selected
|
||||
FROM_TYPE_TRANSLATE[selected]
|
||||
) : (
|
||||
<span style={{ color: 'rgba(0,0,0,0.6)' }}>Не выбрана</span>
|
||||
)
|
||||
@ -423,7 +424,7 @@ export default function TasksPage() {
|
||||
>
|
||||
{FORM_TYPE_OPTIONS.map((formType) => (
|
||||
<MenuItem key={formType} value={formType}>
|
||||
{formType}
|
||||
{FROM_TYPE_TRANSLATE[formType]}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Select>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user