This commit is contained in:
IDONTSUDO 2024-12-31 15:06:14 +03:00
parent d3a07a5c11
commit a94d84ba69
5 changed files with 97 additions and 15 deletions

View file

@ -1,12 +1,10 @@
import { IsString } from "class-validator";
import { IsObject, IsString } from "class-validator";
import { ValidationModel } from "../../../../../model/validation_model";
export class SelectProcessModel extends ValidationModel {
@IsString()
type: string;
@IsString()
@IsObject()
selectProcess?: any;
@IsString()
process?: string;
}

View file

@ -7,6 +7,7 @@ import { useEffect } from "react";
import { SelectProcessModel } from "../model/select_process_model";
import { Loader } from "../../../../loader/loader";
import { CoreSelect } from "../../../../select/select";
import { message } from "antd";
export const SelectProcess = observer((props: IFormBuilderComponentsProps<any>) => {
const [store] = useState(new SelectProcessStore());
@ -22,11 +23,15 @@ export const SelectProcess = observer((props: IFormBuilderComponentsProps<any>)
<div>
<CoreSelect
items={store.calculationInstances.map((el) => el.name)}
value={store.viewModel.selectProcess?.name}
label={`Процесс тип ${store.viewModel.type}`}
onChange={(value: string, index: number) =>
store.updateForm({ selectProcess: store.calculationInstances.atR(index).map((el) => el) })
}
value={store.viewModel?.selectProcess?.name ?? ""}
label={`Процесс тип ${store.viewModel?.type}`}
onChange={async (value: string, index: number) => (
store.updateForm({ selectProcess: store.calculationInstances.atR(index).map((el) => el) }),
(await store.viewModel.valid<SelectProcessModel>()).fold(
(model) => props.onChange(model),
(error) => message.error(error)
)
)}
/>
</div>
)}

View file

@ -1,21 +1,18 @@
import React from "react";
import { IFormBuilderComponentsProps } from "../../form_builder_components";
import { observer } from "mobx-react-lite";
import { ListItem } from "./ui/list_item";
import { SelectDetailStore } from "./select_detail_store";
import { SelectDetailViewModel } from "../model/select_details_model";
import { plainToInstance } from "class-transformer";
export const SelectDetail = observer((props: IFormBuilderComponentsProps<SelectDetailViewModel>) => {
const [store] = React.useState(() => new SelectDetailStore());
React.useEffect(() => {
store.viewModel = new SelectDetailViewModel(props.dependency.details);
store.isLoading = false;
store.init();
}, []);
return (
<div>
{store.isLoading ? (

View file

@ -39,8 +39,8 @@ export const FormBuildTest = observer(() => {
<FormBuilder
formBuilder={store.viewModel}
onChange={(e) => {
console.log(e.output);
// console.log(JSON.stringify(e.output))
// console.log(e.output);
console.log(JSON.stringify(e.output))
}}
/>
</div>