- {curStatus != STATUSES.COLUMNROW_EDIT ? (
-
+ {formData.status != STATUSES.COLUMNROW_EDIT ? (
+
) : null}
-
- {curStatus == STATUSES.COLUMNROW_CREATE ? (
+
+ {formData.status == STATUSES.COLUMNROW_CREATE ? (
selectRow(pOnlineShowDictionary, callBack)}
/>
selectColumn(pOnlineShowDictionary, callBack)}
/>
) : null}
@@ -127,7 +201,7 @@ const IUDFormDialog = props => {
{renderSwitch()}
-
+
);
@@ -135,18 +209,9 @@ const IUDFormDialog = props => {
//Контроль свойств - Диалог
IUDFormDialog.propTypes = {
- formOpen: PropTypes.bool.isRequired,
- closeForm: PropTypes.func.isRequired,
- curStatus: PropTypes.oneOf(Object.values(STATUSES).filter(x => typeof x === "number")),
- curCode: PropTypes.string,
- curName: PropTypes.string,
- curColCode: PropTypes.string,
- curRowCode: PropTypes.string,
- btnOkClick: PropTypes.func.isRequired,
- codeOnChange: PropTypes.func.isRequired,
- nameOnChange: PropTypes.func.isRequired,
- dictColumnClick: PropTypes.func.isRequired,
- dictRowClick: PropTypes.func.isRequired
+ initial: PropTypes.object.isRequired,
+ onOk: PropTypes.func,
+ onCancel: PropTypes.func
};
//--------------------
diff --git a/app/panels/rrp_conf_editor/iud_form_text_filed.js b/app/panels/rrp_conf_editor/iud_form_text_field.js
similarity index 59%
rename from app/panels/rrp_conf_editor/iud_form_text_filed.js
rename to app/panels/rrp_conf_editor/iud_form_text_field.js
index b0a381a..2dda6f8 100644
--- a/app/panels/rrp_conf_editor/iud_form_text_filed.js
+++ b/app/panels/rrp_conf_editor/iud_form_text_field.js
@@ -16,42 +16,55 @@ import { STYLES } from "./layouts"; //Стили диалогового окна
//Тело компонента
//---------------
-const IUDFormTextField = props => {
- //Свойства
- const { elementCode, elementValue, labelText, changeFunc, withDictionary, ...other } = props;
-
- //Состояние идентификатора элемента
- const [elementId, setElementId] = useState("");
+const IUDFormTextField = ({ elementCode, elementValue, labelText, onChange, dictionary, ...other }) => {
+ //Значение элемента
+ const [value, setValue] = useState(elementValue);
//Формирование идентификатора элемента
- const generateId = useCallback(async () => {
- setElementId(`${elementCode}-input`);
- }, [elementCode]);
+ // const generateId = useCallback(async () => {
+ // setElementId(`${elementCode}-input`);
+ // }, [elementCode]);
//При рендере поля ввода
+ // useEffect(() => {
+ // generateId();
+ // }, [generateId]);
+
+ //При получении нового значения из вне
useEffect(() => {
- generateId();
- }, [generateId]);
+ setValue(elementValue);
+ }, [elementValue]);
+
+ //Выбор значения из словаря
+ const handleDictionaryClick = () =>
+ dictionary ? dictionary(res => (res ? handleChange({ target: { name: elementCode, value: res } }) : null)) : null;
+
+ //Изменение значения элемента
+ const handleChange = e => {
+ setValue(e.target.value);
+ if (onChange) onChange(e.target.name, e.target.value);
+ };
return (
- {labelText}
+ {labelText}
changeFunc(e.target.value) : null}
- aria-describedby={`${elementCode}-helper-text`}
- label={labelText}
+ id={elementCode}
+ name={elementCode}
+ value={value}
endAdornment={
- withDictionary ? (
+ dictionary ? (
-
+
list
) : null
}
+ aria-describedby={`${elementCode}-helper-text`}
+ label={labelText}
+ onChange={handleChange}
/>
@@ -63,8 +76,8 @@ IUDFormTextField.propTypes = {
elementCode: PropTypes.string.isRequired,
elementValue: PropTypes.string,
labelText: PropTypes.string.isRequired,
- changeFunc: PropTypes.func.isRequired,
- withDictionary: PropTypes.bool
+ onChange: PropTypes.func,
+ dictionary: PropTypes.func
};
//--------------------
diff --git a/app/panels/rrp_conf_editor/layouts.js b/app/panels/rrp_conf_editor/layouts.js
index 9eb5b6e..928aae4 100644
--- a/app/panels/rrp_conf_editor/layouts.js
+++ b/app/panels/rrp_conf_editor/layouts.js
@@ -29,6 +29,7 @@ export const STATUSES = { CREATE: 0, EDIT: 1, DELETE: 2, COLUMNROW_CREATE: 3, CO
//Генерация представления ячейки c данными
export const dataCellRender = ({ row, columnDef }, showRrpConfSctnMrk, editCR, deleteCR) => {
let data = row[columnDef.name];
+ let cellStyle = { display: "flex" };
columnDef.name != "SROW_NAME" && data != undefined && columnDef.visible == true
? (data = (
@@ -41,10 +42,10 @@ export const dataCellRender = ({ row, columnDef }, showRrpConfSctnMrk, editCR, d
>
{row[columnDef.name]}
- editCR(row["NRN_" + columnDef.name.substring(5)], row[columnDef.name])}>
+ editCR(row["NRN_" + columnDef.name.substring(5)], row[columnDef.name])}>
edit
- deleteCR(row["NRN_" + columnDef.name.substring(5)], row[columnDef.name])}>
+ deleteCR(row["NRN_" + columnDef.name.substring(5)], row[columnDef.name])}>
delete
diff --git a/app/panels/rrp_conf_editor/rrp_conf_editor.js b/app/panels/rrp_conf_editor/rrp_conf_editor.js
index 5937ed5..dc796ac 100644
--- a/app/panels/rrp_conf_editor/rrp_conf_editor.js
+++ b/app/panels/rrp_conf_editor/rrp_conf_editor.js
@@ -32,6 +32,8 @@ const RrpConfEditor = () => {
columnsDef: [],
groups: [],
rows: [],
+ fixedHeader: false,
+ fixedColumns: 0,
reload: false
};
@@ -140,38 +142,6 @@ const RrpConfEditor = () => {
openForm();
};
- //Отработка нажатия на словарь граф
- const dictColumnClick = () => {
- pOnlineShowDictionary({
- unitCode: "RRPColumn",
- callBack: res =>
- res.success === true
- ? setFormData(pv => ({
- ...pv,
- colCode: res.outParameters.out_CODE,
- colVCode: res.outParameters.out_RRPVERSION_CODE,
- colVRn: res.outParameters.out_RRPVERSION
- }))
- : null
- });
- };
-
- //Отработка нажатия на словарь строк
- const dictRowClick = () => {
- pOnlineShowDictionary({
- unitCode: "RRPRow",
- callBack: res =>
- res.success === true
- ? setFormData(pv => ({
- ...pv,
- rowCode: res.outParameters.out_CODE,
- rowVCode: res.outParameters.out_RRPVERSION_CODE,
- rowVRn: res.outParameters.out_RRPVERSION
- }))
- : null
- });
- };
-
//Нажатие на кнопку подтверждения создания/исправления/удаления на форме
const formBtnOkClick = () => {
let formStateProps = {};
@@ -338,6 +308,8 @@ const RrpConfEditor = () => {
columnsDef: [...(s.XDATA.XCOLUMNS_DEF || [])],
groups: [...(s.XDATA.XGROUPS || [])],
rows: [...(s.XDATA.XROWS || [])],
+ fixedHeader: s.XDATA.XDATA_GRID.fixedHeader,
+ fixedColumns: s.XDATA.XDATA_GRID.fixedColumns,
reload: false
});
//Ищем загружен ли уже раздел с таким же ид.
@@ -414,25 +386,19 @@ const RrpConfEditor = () => {
: null;
}, [formData.colCode, formData.rowCode, formData.sctnCode, formData.sctnName, formData.status, getSctnMrkCodeName]);
+ //При изменении фильтра в диалоге
+ const handleFilterOk = filter => {
+ setFormData(filter);
+ setForm(false);
+ };
+
+ //При закрытии диалога фильтра
+ const handleFilterCancel = () => setForm(false);
+
//Генерация содержимого
return (
- {formOpen ? (
- setFormData(pv => ({ ...pv, code: v }))}
- nameOnChange={v => setFormData(pv => ({ ...pv, name: v }))}
- dictColumnClick={dictColumnClick}
- dictRowClick={dictRowClick}
- />
- ) : null}
+ {formOpen ? : null}
{rrpDoc.docLoaded ? (
@@ -445,12 +411,8 @@ const RrpConfEditor = () => {
label={
{s.name}
- editSectionClick(s.rn, s.code, s.name)}>
- edit
-
- deleteSectionClick(s.rn, s.code, s.name)}>
- delete
-
+ editSectionClick(s.rn, s.code, s.name)}>edit
+ deleteSectionClick(s.rn, s.code, s.name)}>delete
}
wrapped
@@ -472,6 +434,8 @@ const RrpConfEditor = () => {
columnsDef={s.columnsDef}
groups={s.groups}
rows={s.rows}
+ fixedHeader={s.fixedHeader}
+ fixedColumns={s.fixedColumns}
size={P8P_DATA_GRID_SIZE.LARGE}
reloading={s.reload}
dataCellRender={prms =>
diff --git a/app/panels/rrp_conf_editor/section_tab_panel.js b/app/panels/rrp_conf_editor/section_tab_panel.js
index 3935d55..afb2332 100644
--- a/app/panels/rrp_conf_editor/section_tab_panel.js
+++ b/app/panels/rrp_conf_editor/section_tab_panel.js
@@ -22,7 +22,7 @@ const SectionTabPanel = props => {
{value === index && (
- {children}
+ {children}
)}