import { defineStore } from 'pinia' import { ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { createSimData } from '@/api/trApi'; export const SimAPIStore = defineStore('SimAPI', () => { const selectTab = ref("行政区划仿真") const isLoading = ref(false) const handleClickTab = (data) => { selectTab.value = data } // 获取区域类型 const getAreaType = (tabName) => { switch (tabName) { case '行政区划仿真': return 1 case '重点区域仿真': return 2 case '重点沟仿真': return 3 default: return 0 } } // 获取降雨类型 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 } return true } // 弹窗 const openSaveDialog = async (forms) => { if (!validateForm(forms)) return try { await ElMessageBox.confirm('确定要保存当前方案吗?', '新建方案', { confirmButtonText: '确定', cancelButtonText: '取消', }) // 用户确认后执行保存 await saveScheme(forms) } catch (error) { if (error !== 'cancel') { console.error('保存出错:', error) ElMessage.error('保存过程中出现错误') } else { ElMessage.info('已取消保存') } } } const saveScheme = async (forms) => { if (isLoading.value) { ElMessage.warning('正在保存,请稍候...') return } isLoading.value = true try { const params = { areaType: getAreaType(selectTab.value), createTime: Date.now(), name: forms.name, type: getRainType(forms.type), status: 0, data: forms.data } const response = await createSimData(params) ElMessage.success('方案保存成功') return response } catch (error) { console.error('保存失败:', error) ElMessage.error('保存失败: ' + (error.message || '请稍后重试')) throw error } finally { isLoading.value = false } } // // 新建方案 // const createSimulation = async (forms) => { // console.log(forms, 'ffffffff') // const params = { // areaType: getAreaType(selectTab), // createTime: Date.now(), // name: forms.name, // // 1为预测模拟,2为实时模拟,3为历史模拟 // type: getRainType(forms.type), // // 0为创建仿真,1为预处理,2为分析中,10为完成,20为出错 // status: 0, // data: forms.data // } // console.log(params, 'params') // try { // await createSimData(params) // } catch (error) { // console.error('创建仿真失败:', error) // } // } return { // 状态 selectTab, isLoading, // 方法 handleClickTab, openSaveDialog, saveScheme, } })