This commit is contained in:
IDONTSUDO 2025-02-02 20:28:05 +03:00
parent 2afed3a4f0
commit 564866393f
7 changed files with 43 additions and 23 deletions

View file

@ -7,9 +7,8 @@ export abstract class CreateInstanceScenario<V extends Instance> extends Callbac
abstract validationModel: V; abstract validationModel: V;
abstract databaseModel: any; abstract databaseModel: any;
call = async (model: V): ResponseBase => { call = async (model: V): ResponseBase => {
model.instancePath = `${model.path}/${model.instanceName}`; model.instancePath = `${model.path.pathNormalize()}/${model.instanceName}`.pathNormalize();
console.log("INSTANCE PATh"); model.path = model.path.pathNormalize();
console.log(model.instancePath)
return (await new CreateFolderUseCase().call(model.instancePath)).map( return (await new CreateFolderUseCase().call(model.instancePath)).map(
async () => await new CreateDataBaseModelUseCase(this.databaseModel).call(model) async () => await new CreateDataBaseModelUseCase(this.databaseModel).call(model)
); );

View file

@ -21,8 +21,7 @@ export class ExecInstanceScenario extends CallbackStrategyWithIdQuery {
await new ReadByIdDataBaseModelUseCase<IDigitalTwinsInstanceModel>(DigitalTwinsInstanceDatabaseModel).call(id) await new ReadByIdDataBaseModelUseCase<IDigitalTwinsInstanceModel>(DigitalTwinsInstanceDatabaseModel).call(id)
).map( ).map(
(document) => ( (document) => (
console.log('DOCUMeNT PATH'),
console.log(document.instancePath.pathNormalize()),
new ExecProcessUseCase().call( new ExecProcessUseCase().call(
document.instancePath, document.instancePath,
`python3 $GET_INTERFACES --path ${document.instancePath.pathNormalize()} --package '${JSON.stringify( `python3 $GET_INTERFACES --path ${document.instancePath.pathNormalize()} --package '${JSON.stringify(

View file

@ -139,3 +139,6 @@ export const ff1Result = `{
"empty":\${NAME:string:default}, "empty":\${NAME:string:default},
"params": \${ITEM:Array<ITEM>:[]} "params": \${ITEM:Array<ITEM>:[]}
}`; }`;
// {
// "process":\${<SelectProcess/>:OBJECT:{"type": "OBJECT_DETECTION"}
// }

View file

@ -1,10 +1,18 @@
import { IsObject, IsString } from "class-validator"; import { IsObject, IsString } from "class-validator";
import { ValidationModel } from "../../../../../model/validation_model"; import { ValidationModel } from "../../../../../model/validation_model";
import { CalculationModel } from "../../../../../../features/calculation_instance/model/calculation_model";
export class SelectProcessModel extends ValidationModel { export class SelectProcessModel extends ValidationModel {
@IsString() @IsString()
type: string; type: string = '';
@IsObject() @IsObject()
selectProcess?: any; selectProcess?: SelectProcess;
} }
export interface SelectProcess {
value: CalculationModel;
}

View file

@ -8,12 +8,18 @@ import { SelectProcessModel } from "../model/select_process_model";
import { Loader } from "../../../../loader/loader"; import { Loader } from "../../../../loader/loader";
import { CoreSelect } from "../../../../select/select"; import { CoreSelect } from "../../../../select/select";
import { message } from "antd"; import { message } from "antd";
import { CalculationModel } from "../../../../../../features/calculation_instance/model/calculation_model";
export const SelectProcess = observer((props: IFormBuilderComponentsProps<any>) => { export const SelectProcess = observer((props: IFormBuilderComponentsProps<SelectProcessModel>) => {
const [store] = useState(new SelectProcessStore()); const [store] = useState(new SelectProcessStore());
useEffect(() => { useEffect(() => {
console.log(props.dependency) console.log(props.dependency);
if (typeof props.dependency === "string") {
store.loadClassInstance(SelectProcessModel, JSON.parse(props.dependency));
} else {
store.loadClassInstance(SelectProcessModel, props.dependency); store.loadClassInstance(SelectProcessModel, props.dependency);
}
store.init(); store.init();
}, []); }, []);
return ( return (
@ -23,16 +29,18 @@ export const SelectProcess = observer((props: IFormBuilderComponentsProps<any>)
) : ( ) : (
<div> <div>
<CoreSelect <CoreSelect
items={store.calculationInstances.map((el) => el.name)} items={store.calculationInstances.map((el) => el.instanceName)}
value={store.viewModel?.selectProcess?.name ?? ""} value={store.viewModel?.selectProcess?.value.instanceName ?? ""}
label={`Процесс тип ${store.viewModel?.type}`} label={`Процесс тип ${store?.viewModel?.type ?? ""}`}
onChange={async (value: string, index: number) => ( onChange={async (value: string, index: number) => {
store.updateForm({ selectProcess: store.calculationInstances.atR(index).map((el) => el) }), store.updateForm({
selectProcess: { value: store.calculationInstances.at(index) ?? CalculationModel.empty() },
});
(await store.viewModel.valid<SelectProcessModel>()).fold( (await store.viewModel.valid<SelectProcessModel>()).fold(
(model) => props.onChange(model), (model) => props.onChange(model),
(error) => message.error(error) (error) => message.error(error)
) );
)} }}
/> />
</div> </div>
)} )}

View file

@ -60,7 +60,7 @@ export const CalculationInstanceScreen = observer(() => {
() => store.deleteInstance(el._id ?? ""), () => store.deleteInstance(el._id ?? ""),
() => store.execSkill(el._id ?? ""), () => store.execSkill(el._id ?? ""),
() => store.execSkill(el._id ?? ""), () => store.execSkill(el._id ?? ""),
() => store.changeProcessStatus(el._id ?? ''), () => store.changeProcessStatus(el._id ?? "")
)} )}
</span> </span>
); );
@ -94,7 +94,10 @@ export const CalculationInstanceScreen = observer(() => {
<div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between", height: "100%" }}> <div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between", height: "100%" }}>
<FormBuilder <FormBuilder
formBuilder={store.editProcess?.formBuilder ?? FormBuilderValidationModel.empty()} formBuilder={store.editProcess?.formBuilder ?? FormBuilderValidationModel.empty()}
onChange={(formBuilder) => store.updateForm({ formBuilder: formBuilder })} onChange={(formBuilder) => {
console.log(formBuilder);
store.updateForm({ formBuilder: formBuilder });
}}
/> />
<div style={{ display: "flex" }}> <div style={{ display: "flex" }}>
@ -214,7 +217,7 @@ export const CalculationInstanceScreen = observer(() => {
store.isModalOpen = false; store.isModalOpen = false;
}} }}
> >
<FormBuilder formBuilder={store.viewModel.formBuilder} onChange={() => {}} /> <FormBuilder formBuilder={store.viewModel.formBuilder} onChange={(e) => {}} />
</Modal> </Modal>
</> </>
); );

View file

@ -129,7 +129,7 @@ export class CalculationInstanceStore extends UiDrawerFormState<calculationModel
saveEdiSkill = async () => { saveEdiSkill = async () => {
this.editDrawer(DrawersSkill.EDIT_SKILL, false); this.editDrawer(DrawersSkill.EDIT_SKILL, false);
(await this.viewModel.valid<calculationModel>()).fold( (await this.viewModel.valid<calculationModel>()).fold(
async (model) => await this.calculationHttpRepository.editCalculation(model), async (model) => (await this.calculationHttpRepository.editCalculation(model), await this.init()),
async (err) => message.error(err) async (err) => message.error(err)
); );
}; };