new human event mangaer

This commit is contained in:
2025-07-22 16:33:33 +05:30
parent 88361b1623
commit 708c8a4ba1
19 changed files with 1355 additions and 992 deletions

View File

@@ -1,5 +1,6 @@
import React from "react";
import InputRange from "../../../../../ui/inputs/InputRange";
import InputWithDropDown from "../../../../../ui/inputs/InputWithDropDown";
import SwapAction from "./SwapAction";
interface AssemblyActionProps {
@@ -10,6 +11,15 @@ interface AssemblyActionProps {
disabled?: boolean,
onChange: (value: number) => void;
};
assemblyCount: {
value: number;
min: number;
max: number;
step: number;
defaultValue: string,
disabled: false,
onChange: (value: number) => void;
}
swapOptions: string[];
swapDefaultOption: string;
onSwapSelect: (value: string) => void;
@@ -18,6 +28,7 @@ interface AssemblyActionProps {
const AssemblyAction: React.FC<AssemblyActionProps> = ({
processTime,
assemblyCount,
swapOptions,
swapDefaultOption,
onSwapSelect,
@@ -34,6 +45,21 @@ const AssemblyAction: React.FC<AssemblyActionProps> = ({
onClick={() => { }}
onChange={processTime.onChange}
/>
{assemblyCount && (
<InputWithDropDown
label="Assembly Count"
value={assemblyCount.value.toString()}
min={assemblyCount.min}
max={assemblyCount.max}
disabled={assemblyCount.disabled}
defaultValue={assemblyCount.defaultValue}
step={assemblyCount.step}
activeOption="unit"
onClick={() => { }}
onChange={(value) => assemblyCount.onChange(parseInt(value))}
/>
)}
<SwapAction
options={swapOptions}
defaultOption={swapDefaultOption}

View File

@@ -11,7 +11,7 @@ interface WorkerActionProps {
disabled?: boolean;
onChange: (value: string) => void;
};
loadCount?: {
loadCount: {
value: number;
min: number;
max: number;

View File

@@ -20,6 +20,7 @@ function HumanMechanics() {
const [activeOption, setActiveOption] = useState<"worker" | "assembly">("worker");
const [speed, setSpeed] = useState("0.5");
const [loadCount, setLoadCount] = useState(0);
const [assemblyCount, setAssemblyCount] = useState(0);
const [loadCapacity, setLoadCapacity] = useState("1");
const [processTime, setProcessTime] = useState(10);
const [swappedMaterial, setSwappedMaterial] = useState("Default material");
@@ -56,6 +57,7 @@ function HumanMechanics() {
setLoadCapacity(firstAction.loadCapacity.toString());
setActiveOption(firstAction.actionType);
setLoadCount(firstAction.loadCount || 0);
setAssemblyCount(firstAction.assemblyCount || 0);
setProcessTime(firstAction.processTime || 10);
setSwappedMaterial(firstAction.swapMaterial || "Default material");
}
@@ -84,6 +86,7 @@ function HumanMechanics() {
setActiveOption(newCurrentAction.actionType);
setLoadCapacity(newCurrentAction.loadCapacity.toString());
setLoadCount(newCurrentAction.loadCount || 0);
setAssemblyCount(newCurrentAction.assemblyCount || 0);
if (newCurrentAction.actionType === 'assembly') {
setProcessTime(newCurrentAction.processTime || 10);
@@ -200,6 +203,28 @@ function HumanMechanics() {
setLoadCount(value);
};
const handleAssemblyCountChange = (value: number) => {
if (!currentAction || !selectedPointData || !selectedAction.actionId) return;
const updatedAction = { ...currentAction, assemblyCount: value };
const updatedActions = selectedPointData.actions.map(action => action.actionUuid === updatedAction.actionUuid ? updatedAction : action);
const updatedPoint = { ...selectedPointData, actions: updatedActions };
const event = updateAction(
selectedProduct.productUuid,
selectedAction.actionId,
updatedAction
);
if (event) {
updateBackend(selectedProduct.productName, selectedProduct.productUuid, projectId || '', event);
}
setCurrentAction(updatedAction);
setSelectedPointData(updatedPoint);
setAssemblyCount(value);
};
const handleProcessTimeChange = (value: number) => {
if (!currentAction || !selectedPointData || !selectedAction.actionId) return;
@@ -281,6 +306,7 @@ function HumanMechanics() {
actionName: `Action ${selectedPointData.actions.length + 1}`,
actionType: "worker",
loadCount: 1,
assemblyCount: 1,
loadCapacity: 1,
processTime: 10,
triggers: [],
@@ -389,7 +415,7 @@ function HumanMechanics() {
}}
loadCount={{
value: loadCount,
min: 0,
min: 1,
max: 20,
step: 1,
defaultValue: "1",
@@ -407,6 +433,15 @@ function HumanMechanics() {
max: 60,
onChange: handleProcessTimeChange,
}}
assemblyCount={{
value: assemblyCount,
min: 1,
max: 20,
step: 1,
defaultValue: "1",
disabled: false,
onChange: handleAssemblyCountChange,
}}
swapOptions={["Default material", "Material 1", "Material 2", "Material 3"]}
swapDefaultOption={swappedMaterial}
onSwapSelect={handleMaterialChange}