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 databaseModel: any;
call = async (model: V): ResponseBase => {
model.instancePath = `${model.path}/${model.instanceName}`;
console.log("INSTANCE PATh");
console.log(model.instancePath)
model.instancePath = `${model.path.pathNormalize()}/${model.instanceName}`.pathNormalize();
model.path = model.path.pathNormalize();
return (await new CreateFolderUseCase().call(model.instancePath)).map(
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)
).map(
(document) => (
console.log('DOCUMeNT PATH'),
console.log(document.instancePath.pathNormalize()),
new ExecProcessUseCase().call(
document.instancePath,
`python3 $GET_INTERFACES --path ${document.instancePath.pathNormalize()} --package '${JSON.stringify(

View file

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

View file

@ -1,10 +1,18 @@
import { IsObject, IsString } from "class-validator";
import { ValidationModel } from "../../../../../model/validation_model";
import { CalculationModel } from "../../../../../../features/calculation_instance/model/calculation_model";
export class SelectProcessModel extends ValidationModel {
@IsString()
type: string;
type: string = '';
@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 { CoreSelect } from "../../../../select/select";
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());
useEffect(() => {
console.log(props.dependency)
store.loadClassInstance(SelectProcessModel, 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.init();
}, []);
return (
@ -23,16 +29,18 @@ 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={async (value: string, index: number) => (
store.updateForm({ selectProcess: store.calculationInstances.atR(index).map((el) => el) }),
items={store.calculationInstances.map((el) => el.instanceName)}
value={store.viewModel?.selectProcess?.value.instanceName ?? ""}
label={`Процесс тип ${store?.viewModel?.type ?? ""}`}
onChange={async (value: string, index: number) => {
store.updateForm({
selectProcess: { value: store.calculationInstances.at(index) ?? CalculationModel.empty() },
});
(await store.viewModel.valid<SelectProcessModel>()).fold(
(model) => props.onChange(model),
(error) => message.error(error)
)
)}
);
}}
/>
</div>
)}

View file

@ -60,7 +60,7 @@ export const CalculationInstanceScreen = observer(() => {
() => store.deleteInstance(el._id ?? ""),
() => store.execSkill(el._id ?? ""),
() => store.execSkill(el._id ?? ""),
() => store.changeProcessStatus(el._id ?? ''),
() => store.changeProcessStatus(el._id ?? "")
)}
</span>
);
@ -94,7 +94,10 @@ export const CalculationInstanceScreen = observer(() => {
<div style={{ display: "flex", flexDirection: "column", justifyContent: "space-between", height: "100%" }}>
<FormBuilder
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" }}>
@ -151,7 +154,7 @@ export const CalculationInstanceScreen = observer(() => {
<CoreInput
trim={true}
label="Команда для запуска"
onChange={(text) => store.updateForm({ script: text.replaceAll("\n", "") })}
onChange={(text) => store.updateForm({ script: text.replaceAll("\n", "") })}
/>
<InputV2
label="FormBuilder Result"
@ -214,7 +217,7 @@ export const CalculationInstanceScreen = observer(() => {
store.isModalOpen = false;
}}
>
<FormBuilder formBuilder={store.viewModel.formBuilder} onChange={() => {}} />
<FormBuilder formBuilder={store.viewModel.formBuilder} onChange={(e) => {}} />
</Modal>
</>
);

View file

@ -129,7 +129,7 @@ export class CalculationInstanceStore extends UiDrawerFormState<calculationModel
saveEdiSkill = async () => {
this.editDrawer(DrawersSkill.EDIT_SKILL, false);
(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)
);
};