progress
This commit is contained in:
parent
d3a07a5c11
commit
a94d84ba69
5 changed files with 97 additions and 15 deletions
|
@ -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;
|
||||
}
|
|
@ -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>
|
||||
)}
|
||||
|
|
|
@ -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 ? (
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue