chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
import { create } from 'zustand';
|
||||
import api from '../api/client';
|
||||
import type {
|
||||
OverviewData, EquipmentItem, ProgressItem,
|
||||
AlarmItem, TrendItem, SamplingOverview, SamplingTrendItem,
|
||||
InspectionOverview, InspectionTrendItem,
|
||||
DevStatus, CncDisplay, WasherPoint, CncHistoryPoint,
|
||||
CncOeeItem, WasherOeeItem,
|
||||
} from '../types';
|
||||
|
||||
interface DashboardState {
|
||||
// Page 1: Overview
|
||||
overview: OverviewData | null;
|
||||
equipment: EquipmentItem[];
|
||||
progress: ProgressItem[];
|
||||
alarms: AlarmItem[];
|
||||
trends: TrendItem[];
|
||||
samplingOverview: SamplingOverview | null;
|
||||
samplingTrends: SamplingTrendItem[];
|
||||
inspectionOverview: InspectionOverview | null;
|
||||
inspectionTrends: InspectionTrendItem[];
|
||||
loading: boolean;
|
||||
|
||||
// Page 2: Machine Monitor
|
||||
devStatus: DevStatus[];
|
||||
cncLatest: CncDisplay[];
|
||||
washerLatest: WasherPoint[];
|
||||
cncHistory: CncHistoryPoint[];
|
||||
cncOee: CncOeeItem[];
|
||||
washerOee: WasherOeeItem[];
|
||||
monitorLoading: boolean;
|
||||
|
||||
fetchAll: () => Promise<void>;
|
||||
refresh: () => Promise<void>;
|
||||
fetchMonitor: () => Promise<void>;
|
||||
refreshMonitor: () => Promise<void>;
|
||||
}
|
||||
|
||||
export const useStore = create<DashboardState>((set) => ({
|
||||
// Page 1 state
|
||||
overview: null,
|
||||
equipment: [],
|
||||
progress: [],
|
||||
alarms: [],
|
||||
trends: [],
|
||||
samplingOverview: null,
|
||||
samplingTrends: [],
|
||||
inspectionOverview: null,
|
||||
inspectionTrends: [],
|
||||
loading: false,
|
||||
|
||||
// Page 2 state
|
||||
devStatus: [],
|
||||
cncLatest: [],
|
||||
washerLatest: [],
|
||||
cncHistory: [],
|
||||
cncOee: [],
|
||||
washerOee: [],
|
||||
monitorLoading: false,
|
||||
|
||||
fetchAll: async () => {
|
||||
set({ loading: true });
|
||||
try {
|
||||
const [overview, equipment, progress, alarms, trends, cncLatest, samplingOverview, samplingTrends, inspectionOverview, inspectionTrends] =
|
||||
await Promise.all([
|
||||
api.get('/overview').then(r => r.data),
|
||||
api.get('/equipment-status').then(r => r.data),
|
||||
api.get('/production-progress').then(r => r.data),
|
||||
api.get('/alarms').then(r => r.data),
|
||||
api.get('/trends').then(r => r.data),
|
||||
api.get('/cnc-latest').then(r => r.data),
|
||||
api.get('/sampling-overview').then(r => r.data),
|
||||
api.get('/sampling-trends').then(r => r.data),
|
||||
api.get('/inspection-overview').then(r => r.data),
|
||||
api.get('/inspection-trends').then(r => r.data),
|
||||
]);
|
||||
set({ overview, equipment, progress, alarms, trends, cncLatest, samplingOverview, samplingTrends, inspectionOverview, inspectionTrends, loading: false });
|
||||
} catch {
|
||||
set({ loading: false });
|
||||
}
|
||||
},
|
||||
|
||||
refresh: async () => {
|
||||
try {
|
||||
const [overview, equipment, alarms, cncLatest, samplingOverview, inspectionOverview] = await Promise.all([
|
||||
api.get('/overview').then(r => r.data),
|
||||
api.get('/equipment-status').then(r => r.data),
|
||||
api.get('/alarms').then(r => r.data),
|
||||
api.get('/cnc-latest').then(r => r.data),
|
||||
api.get('/sampling-overview').then(r => r.data),
|
||||
api.get('/inspection-overview').then(r => r.data),
|
||||
]);
|
||||
set({ overview, equipment, alarms, cncLatest, samplingOverview, inspectionOverview });
|
||||
} catch { /* ignore */ }
|
||||
},
|
||||
|
||||
fetchMonitor: async () => {
|
||||
set({ monitorLoading: true });
|
||||
try {
|
||||
const [devStatus, cncLatest, washerLatest, cncOee, washerOee] = await Promise.all([
|
||||
api.get('/device-status').then(r => r.data),
|
||||
api.get('/cnc-latest').then(r => r.data),
|
||||
api.get('/washer-latest').then(r => r.data),
|
||||
api.get('/cnc-oee').then(r => r.data),
|
||||
api.get('/washer-oee').then(r => r.data),
|
||||
]);
|
||||
set({ devStatus, cncLatest, washerLatest, cncOee, washerOee, monitorLoading: false });
|
||||
} catch {
|
||||
set({ monitorLoading: false });
|
||||
}
|
||||
},
|
||||
|
||||
refreshMonitor: async () => {
|
||||
try {
|
||||
const [devStatus, cncLatest, washerLatest, cncOee, washerOee] = await Promise.all([
|
||||
api.get('/device-status').then(r => r.data),
|
||||
api.get('/cnc-latest').then(r => r.data),
|
||||
api.get('/washer-latest').then(r => r.data),
|
||||
api.get('/cnc-oee').then(r => r.data),
|
||||
api.get('/washer-oee').then(r => r.data),
|
||||
]);
|
||||
set({ devStatus, cncLatest, washerLatest, cncOee, washerOee });
|
||||
} catch { /* ignore */ }
|
||||
},
|
||||
}));
|
||||
Reference in New Issue
Block a user