guonan
2025-04-28 94dc999e2107401cb9e6c65dd67bc17eecc5e548
src/store/simAPI.js
@@ -2,6 +2,7 @@
import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { createSimData } from '@/api/trApi';
import dayjs from 'dayjs'
export const SimAPIStore = defineStore('SimAPI', () => {
    const selectTab = ref("行政区划仿真")
@@ -22,25 +23,24 @@
        }
    }
    // 获取降雨类型
    const getRainType = (tabName) => {
        switch (tabName) {
            case '预测模拟': return 1
            case '实时模拟': return 2
            case '历史模拟': return 3
            default: return 0
        }
    }
    // 验证表单
    const validateForm = (forms) => {
        if (!forms?.name) {
            ElMessage.warning('请输入方案名称')
            return false
        }
        if (!forms.name) {
            ElMessage.warning('请确保表单均已填写')
            return false
        if (forms.type === 1 || forms.type === 3) {
            if (!forms.geom || !forms.rainfall || !forms.intensity || !forms.duration) {
                ElMessage.warning('请确保表单均已填写')
                return false
            }
        }
        if (forms.type === 2) {
            if (!forms.geom || !forms.gauges) {
                ElMessage.warning('请确保表单均已填写')
                return false
            }
        }
        return true
    }
@@ -56,12 +56,23 @@
        try {
            const params = {
                geom: forms.geom,
                areaType: getAreaType(selectTab.value),
                createTime: Date.now(),
                name: forms.name,
                type: getRainType(forms.type),
                type: forms.type,
                status: 0,
                data: forms.data
                data: JSON.stringify({
                    startTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
                    type: forms.type,
                    total: forms.rainfall,
                    duration: forms.duration,
                    intensity: forms.intensity,
                    prediction: forms.prediction,
                    history: forms.history,
                    mode: forms.mode,
                    gauges: forms.gauges
                })
            }
            const res = await createSimData(params)
            ElMessage.success('方案保存成功')