guonan
2025-04-17 e15245c624a20a3b46e428d646f5f2dd863cd1bc
src/store/simulation.js
@@ -1,6 +1,7 @@
// stores/ui.js
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { createSimData } from '@/api/trApi';
export const useSimStore = defineStore('ui', () => {
    // 所有UI状态
@@ -23,6 +24,8 @@
    const showResultAssess = ref(false)
    const showLayerTree = ref(true)
    const showDangerAssess = ref(false)
    const schemCard = ref([])
    const selectTab = ref("行政区划仿真")
    // 初始化方法
    const init = () => {
@@ -41,6 +44,66 @@
        deviceShow.value = false
        showResultAssess.value = false
        showDangerAssess.value = false
        schemCard.value = []
        selectTab.value = "行政区划仿真"
    }
    const handleClickTab = (data) => {
        selectTab.value = data
    }
    // 新建方案
    const createSimulation = async (forms) => {
        const getAreaType = (tabName) => {
            switch (tabName) {
                case '行政区划仿真':
                    return 1
                case '重点区域仿真':
                    return 2
                case '重点沟仿真':
                    return 3
                default:
                    return 0 // 自定义
            }
        }
        const params = {
            areaType: getAreaType(selectTab),
            createTime: Date.now(),
            name: forms.name,
            // 1为预测模拟,2为实时模拟,3为历史模拟
            type: 1,
            // 0为创建仿真,1为预处理,2为分析中,10为完成,20为出错
            status: 0,
        }
        try {
            await createSimData(params)
        } catch (error) {
            console.error('创建仿真失败:', error)
        }
    }
    // 方案相关
    const setSchemCard = (data) => {
        schemCard.value = data
    }
    // 添加单个方案数据
    const addSchemCard = (item) => {
        schemCard.value.unshift(item)
    }
    // 删除指定方案数据
    const removeSchemCardItem = (id) => {
        schemCard.value = schemCard.value.filter(item => item.id !== id)
    }
    // 更新指定方案数据
    const updateSchemCardItem = (id, newData) => {
        const index = schemCard.value.findIndex(item => item.id === id)
        if (index !== -1) {
            schemCard.value[index] = { ...schemCard.value[index], ...newData }
        }
    }
@@ -63,8 +126,8 @@
    const startMNPG = () => {
        init()
        showResultAssess.value = true
        showDangerAssess.value = true
        // showResultAssess.value = true
        // showDangerAssess.value = true
    }
    // 导航点击
@@ -104,11 +167,19 @@
        showResultAssess,
        showLayerTree,
        showDangerAssess,
        schemCard,
        selectTab,
        handleNavClick,
        init,
        startYHGL,
        startZHJC,
        startMNFZ,
        startMNPG
        startMNPG,
        setSchemCard,
        addSchemCard,
        removeSchemCardItem,
        updateSchemCardItem,
        handleClickTab,
        createSimulation,
    }
})