useInProgressStore.js 2.12 KB
import { defineStore } from 'pinia';
import { reactive, ref } from 'vue';
import { useI18n } from 'vue-i18n';

export const useInProgressStore = defineStore('inprogress', () => {
    const i18n = useI18n();

    const progressEnum = {
        position: 0,
        edit: 1,
        trimPointDefine: 2,
        aligner: 3,
        waiting: 3
    };

    const mesh = ref(null);
    const marginMesh = ref(null);
    const alignerMesh = ref(null);
    const isCompleted = ref(false);

    const currentProgress = ref('position');
    const nextStepButtonText = ref(i18n.t('generateTrimLine'));
    const currentProgressStepNumber = ref(progressEnum[currentProgress.value]);

    const setCurrentProgress = (val) => {
        currentProgress.value = val;
        currentProgressStepNumber.value = progressEnum[val];
        switch (currentProgress.value) {
            case 'position':
                nextStepButtonText.value = i18n.t('generateTrimLine');
                break;
            case 'positionComplete':
                nextStepButtonText.value = i18n.t('editTrimLine');
                break;
            case 'edit':
                nextStepButtonText.value = i18n.t('markOnIncisorCusp');
                break;
            case 'trimPointDefine':
                nextStepButtonText.value = i18n.t('generateAligner');
                break;
            case 'aligner':
                nextStepButtonText.value = i18n.t('completed');
                break;
            case 'waiting':
                nextStepButtonText.value = i18n.t('waitingforaligner');
                break;
            default:
                break;
        }
    };

    const setMesh = (val) => {
        mesh.value = val;
    };
    const setMarginMesh = (val) => {
        marginMesh.value = val;
    };
    const setAlignerMesh = (val) => {
        alignerMesh.value = val;
    };
    const setIsCompleted = (val) => {
        isCompleted.value = val;
    };
    return {
        currentProgressStepNumber,
        currentProgress,
        nextStepButtonText,
        setMesh,
        setMarginMesh,
        setAlignerMesh,
        setIsCompleted,
        setCurrentProgress
    };
});