Merge branch 'master' of http://103.135.160.14:9034/r/NslWeb
| | |
| | | |
| | | /////////////////////// è°ç¨æ¥å£ï¼ä½¿ç¨æ¶æå¼ï¼ /////////////////////// |
| | | import { getData, getSimData, deleteSimData } from "@/api/trApi.js"; |
| | | |
| | | onMounted(() => { |
| | | getScheme(); |
| | | getData({ type:2 }) |
| | |
| | | |
| | | const props = defineProps({ |
| | | deleteSim: Boolean, // æ¥æ¶ç¶ç»ä»¶ä¼ éç彿° |
| | | showAddIns: Boolean, |
| | | }); |
| | | |
| | | // è·å仿çå表 |
| | | const schemeList = ref([]); |
| | | async function getScheme() { |
| | | try { |
| | | const res = await getSimData(); |
| | | schemeList.value = res.data; |
| | | } catch (error) { |
| | | console.error("Error fetching data:", error); |
| | | } |
| | | } |
| | | |
| | | // æ°å»ºæ¹æ¡å®æä¹åæ¹æ¡å表é宿¶å·æ° |
| | | watch( |
| | | () => props.showAddIns, |
| | | (newVal) => { |
| | | if (newVal == false) { |
| | | getScheme(); |
| | | } |
| | | } |
| | | ); |
| | | |
| | | // å é¤ä»¿çå表 |
| | | watch( |
| | | () => props.deleteSim, |
| | | (newVal) => { |
| | |
| | | } |
| | | } |
| | | ); |
| | | |
| | | const schemeList = ref([]); |
| | | |
| | | async function getScheme() { |
| | | try { |
| | | const res = await getSimData(); |
| | | schemeList.value = res.data; |
| | | } catch (error) { |
| | | console.error("Error fetching data:", error); |
| | | } |
| | | } |
| | | |
| | | const deleteSim = () => { |
| | | ElMessageBox.confirm("ç¡®å®è¦å é¤è¯¥æ¹æ¡å?", "å 餿¹æ¡", { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, |
| | | } |
| | | }) |
| | |
| | | import { ref } from 'vue' |
| | | import { createSimData } from '@/api/trApi'; |
| | | |
| | | export const useSimStore = defineStore('ui', () => { |
| | | export const useSimStore = defineStore('simulation', () => { |
| | | // ææUIç¶æ |
| | | const navigationShow = ref(true) |
| | | const leftShow = ref(false) |
| | |
| | | const showLayerTree = ref(true) |
| | | const showDangerAssess = ref(false) |
| | | const schemCard = ref([]) |
| | | const selectTab = ref("è¡æ¿åºå仿ç") |
| | | const backToHome = ref(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) |
| | | } |
| | | } |
| | | |
| | | // æ¹æ¡ç¸å
³ |
| | |
| | | showLayerTree, |
| | | showDangerAssess, |
| | | schemCard, |
| | | selectTab, |
| | | // selectTab, |
| | | backToHome, |
| | | handleNavClick, |
| | | init, |
| | | startYHGL, |
| | |
| | | addSchemCard, |
| | | removeSchemCardItem, |
| | | updateSchemCardItem, |
| | | handleClickTab, |
| | | createSimulation, |
| | | backToHome, |
| | | // handleClickTab, |
| | | // createSimulation, |
| | | setBackToHome |
| | | } |
| | | }) |
| | |
| | | <el-button type="primary" @click="openSaveDialog">ä¿åæ¹æ¡</el-button> |
| | | <el-button type="success" @click="startPlay">å¼å§æ¨¡æ</el-button> |
| | | </div> |
| | | <!---------------------------- ä¿åæ¹æ¡å¯¹è¯æ¡ï¼æ¥å£çæ¬éå é¤ï¼ --------------------------------> |
| | | <!-- <el-dialog |
| | | v-model="saveDialogVisible" |
| | | :title="dialogTitle" |
| | | width="50%" |
| | | :before-close="handleClose" |
| | | custom-class="custom-dialog" |
| | | > |
| | | <div class="dialog-content"> |
| | | <p><strong>模æç±»åï¼</strong>{{ dialogTitle }}</p> |
| | | <p v-if="disForm === 'è¡æ¿åºå仿ç'"> |
| | | <strong>è¡æ¿åºåï¼</strong>{{ forms.eare }} |
| | | </p> |
| | | <p v-if="disForm === 'éç¹åºå仿ç'"> |
| | | <strong>éç¹åºåï¼</strong>{{ forms.eares }} |
| | | </p> |
| | | <p><strong>éé¨éï¼</strong>{{ forms.rainfall }} mm</p> |
| | | <p><strong>é鍿¶é¿ï¼</strong>{{ forms.duration }} h</p> |
| | | <p><strong>éé¨å¼ºåº¦ï¼</strong>{{ forms.intensity }} mm/h</p> |
| | | <p><strong>ä¸ä¼ æä»¶ï¼</strong>{{ uploadedFilesText }}</p> |
| | | </div> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="saveDialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="confirmSave">ç¡®å®ä¿å</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import Papa from "papaparse"; |
| | | import { ElMessage, ElMessageBox } from "element-plus"; |
| | | import { initeWaterPrimitiveView } from "@/utils/water"; |
| | | import { useSimStore } from "@/store/simulation"; |
| | | import { SimAPIStore } from "@/store/simAPI"; |
| | | |
| | | const simStore = useSimStore(); |
| | | const simStore = SimAPIStore(); |
| | | |
| | | // 注å
¥ç¶ç»ä»¶æä¾çæ¹æ³ |
| | | const { startSimulate, endSimulate } = inject("simulateActions"); |
| | | const saveDialogVisible = ref(false); // æ§å¶ä¿åæ¹æ¡å¯¹è¯æ¡çæ¾ç¤ºç¶æï¼æ¥å£çæ¬å é¤ï¼ |
| | | // è¡¨åæ°æ® |
| | | const forms = reactive({ |
| | | name: "", |
| | |
| | | return forms.fileList.map((file) => file.name).join(", ") || "æ "; |
| | | }); |
| | | |
| | | ////////////////////////////////////// æ¥å£çæ¬éå é¤////////////////////////////////////// |
| | | // // æå¼ä¿åæ¹æ¡å¯¹è¯æ¡ |
| | | //////////////////////////////////æ¥å£çæ¬å¯ç¨////////////////////////////////// |
| | | const openSaveDialog = async () => { |
| | | await simStore.openSaveDialog(forms); |
| | | }; |
| | | |
| | | // const isLoading = ref(false); |
| | | // // ä¿åæ¹æ¡ |
| | | // const openSaveDialog = () => { |
| | | // if ( |
| | | // !forms.rainfall || |
| | |
| | | // ElMessage.warning("请å
å¡«åææå¿
填项"); |
| | | // return; |
| | | // } |
| | | // saveDialogVisible.value = true; |
| | | // } |
| | | // const handleClose = () => { |
| | | // saveDialogVisible.value = false; |
| | | // ElMessageBox.confirm("ç¡®å®è¦ä¿åå½åæ¹æ¡å?", dialogTitle.value, { |
| | | // confirmButtonText: "ç¡®å®", |
| | | // cancelButtonText: "åæ¶", |
| | | // type: "warning", |
| | | // }) |
| | | // .then(confirmSave) |
| | | // .catch(() => { |
| | | // ElMessage({ |
| | | // type: "info", |
| | | // message: "已忶ä¿å", |
| | | // }); |
| | | // }); |
| | | // }; |
| | | |
| | | // // 确认ä¿å |
| | | // const confirmSave = () => { |
| | | // console.log("ä¿åæ¹æ¡æå", { |
| | | // 模æç±»å: dialogTitle.value, |
| | | // è¡æ¿åºå: simStore.selectTab === "è¡æ¿åºå仿ç" ? forms.eare : null, |
| | | // éç¹åºå: simStore.selectTab === "éç¹åºå仿ç" ? forms.eares : null, |
| | | // éé¨é: `${forms.rainfall} mm`, |
| | | // é鍿¶é¿: `${forms.duration} h`, |
| | | // éé¨å¼ºåº¦: `${forms.intensity} mm/h`, |
| | | // ä¸ä¼ æä»¶: forms.fileList.map((file) => file.name), |
| | | // }); |
| | | // ElMessage.success("æ¹æ¡å·²ä¿å"); |
| | | // saveDialogVisible.value = false; |
| | | // resetForm(); |
| | | // const confirmSave = async () => { |
| | | // if (isLoading.value) { |
| | | // ElMessage.warning("æ£å¨ä¿åï¼è¯·ç¨å..."); |
| | | // return; // 鲿¢éå¤æäº¤ |
| | | // } |
| | | // isLoading.value = true; // å¼å§å è½½ç¶æ |
| | | // try { |
| | | // await simStore.createSimulation(forms); // è°ç¨ Store ä¸çä¿åæ¹æ³ |
| | | // ElMessage.success("ä¿åæå"); |
| | | // saveDialogVisible.value = true; // æ¾ç¤ºä¿åå¯¹è¯æ¡ï¼å¦æéè¦ï¼ |
| | | // } catch (error) { |
| | | // console.error("ä¿å失败:", error); |
| | | // ElMessage.error("ä¿å失败ï¼è¯·ç¨åéè¯"); |
| | | // } finally { |
| | | // isLoading.value = false; // ç»æå è½½ç¶æ |
| | | // } |
| | | // }; |
| | | ////////////////////////////////////// ç»æå é¤////////////////////////////////////// |
| | | |
| | | //////////////////////////////////æ¥å£çæ¬å¯ç¨////////////////////////////////// |
| | | const isLoading = ref(false); |
| | | // ä¿åæ¹æ¡ |
| | | const openSaveDialog = () => { |
| | | if ( |
| | | !forms.rainfall || |
| | | !forms.duration || |
| | | !forms.intensity || |
| | | (simStore.selectTab === "è¡æ¿åºå仿ç" && !forms.eare) || |
| | | (simStore.selectTab === "éç¹åºå仿ç" && !forms.eares) |
| | | ) { |
| | | ElMessage.warning("请å
å¡«åææå¿
填项"); |
| | | return; |
| | | } |
| | | ElMessageBox.confirm("ç¡®å®è¦ä¿åå½åæ¹æ¡å?", dialogTitle.value, { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(confirmSave) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: "info", |
| | | message: "已忶ä¿å", |
| | | }); |
| | | }); |
| | | }; |
| | | const confirmSave = async () => { |
| | | if (isLoading.value) { |
| | | ElMessage.warning("æ£å¨ä¿åï¼è¯·ç¨å..."); |
| | | return; // 鲿¢éå¤æäº¤ |
| | | } |
| | | isLoading.value = true; // å¼å§å è½½ç¶æ |
| | | try { |
| | | await simStore.createSimulation(forms); // è°ç¨ Store ä¸çä¿åæ¹æ³ |
| | | ElMessage.success("ä¿åæå"); |
| | | saveDialogVisible.value = true; // æ¾ç¤ºä¿åå¯¹è¯æ¡ï¼å¦æéè¦ï¼ |
| | | } catch (error) { |
| | | console.error("ä¿å失败:", error); |
| | | ElMessage.error("ä¿å失败ï¼è¯·ç¨åéè¯"); |
| | | } finally { |
| | | isLoading.value = false; // ç»æå è½½ç¶æ |
| | | } |
| | | }; |
| | | //////////////////////////////////æ¥å£çæ¬å¯ç¨////////////////////////////////// |
| | | |
| | | // é置表å |
| | |
| | | } |
| | | return true; |
| | | }; |
| | | |
| | | |
| | | // å¼å§æ¨¡æ |
| | | function startPlay() { |
| | |
| | | <div class="input-group"> |
| | | <div class="input-item"> |
| | | <label>åå²é¨æ
:</label> |
| | | <el-select v-model="rainfallHistory" placeholder="è¯·éæ©" popper-class="mySelectStyle"> |
| | | <el-option v-for="item in HistoricalRainData" :key="item.id" :label="item.name" |
| | | :value="item.id"></el-option> |
| | | <el-select |
| | | v-model="rainfallHistory" |
| | | placeholder="è¯·éæ©" |
| | | popper-class="mySelectStyle" |
| | | > |
| | | <el-option |
| | | v-for="item in HistoricalRainData" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="input-group"> |
| | | <div class="input-item"> |
| | | <label>æ¹æ¡åç§°:</label> |
| | | <el-input v-model="schemeName" type="text" placeholder="请è¾å
¥"></el-input> |
| | | <el-input |
| | | v-model="schemeName" |
| | | type="text" |
| | | placeholder="请è¾å
¥" |
| | | ></el-input> |
| | | </div> |
| | | <div class="input-item"> |
| | | <label>é鍿»é:</label> |
| | | <el-input v-model="totalRainfall" type="number" placeholder="请è¾å
¥"></el-input> |
| | | <el-input |
| | | v-model="totalRainfall" |
| | | type="number" |
| | | placeholder="请è¾å
¥" |
| | | ></el-input> |
| | | <span>mm</span> |
| | | </div> |
| | | <div class="input-item"> |
| | | <label>éé¨å¼ºåº¦:</label> |
| | | <el-input v-model="rainfallIntensity" type="number" placeholder="请è¾å
¥"></el-input> |
| | | <el-input |
| | | v-model="rainfallIntensity" |
| | | type="number" |
| | | placeholder="请è¾å
¥" |
| | | ></el-input> |
| | | <span>mm/h</span> |
| | | </div> |
| | | <div class="input-item"> |
| | | <label>é鍿¶é¿:</label> |
| | | <el-input v-model="rainfallDuration" type="number" placeholder="请è¾å
¥"></el-input> |
| | | <el-input |
| | | v-model="rainfallDuration" |
| | | type="number" |
| | | placeholder="请è¾å
¥" |
| | | ></el-input> |
| | | <span>h</span> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | |
| | | <!-- ä¿åæ¹æ¡å¯¹è¯æ¡ --> |
| | | <el-dialog v-model="saveDialogVisible" title="ä¿åæ¹æ¡" width="50%" :before-close="handleClose" |
| | | custom-class="custom-dialog"> |
| | | <el-dialog |
| | | v-model="saveDialogVisible" |
| | | title="ä¿åæ¹æ¡" |
| | | width="50%" |
| | | :before-close="handleClose" |
| | | custom-class="custom-dialog" |
| | | > |
| | | <div class="dialog-content"> |
| | | <p><strong>æ¹æ¡åç§°ï¼</strong>{{ schemeName }}</p> |
| | | <p><strong>æééç¹æ²ï¼</strong>{{ props.selectedArea }}</p> |
| | |
| | | |
| | | <script setup> |
| | | import { ref, computed, inject } from "vue"; |
| | | import { ElMessage } from "element-plus"; |
| | | import { ElMessage, ElMessageBox } from "element-plus"; |
| | | import { initeWaterPrimitiveView } from "@/utils/water"; |
| | | import { useSimStore } from "@/store/simulation.js"; // å¼å
¥ Store |
| | | import { getRainfallData } from "@/api/hpApi.js" |
| | | import { getRainfallData } from "@/api/hpApi.js"; |
| | | |
| | | // è·å Store å®ä¾ |
| | | const simStore = useSimStore(); |
| | | // æµè¯è·åé¨éæ°æ® |
| | |
| | | // æ°æ®ç»å® |
| | | const rainfallHistory = ref("2"); // é»è®¤éä¸ç¬¬äºé¡¹ |
| | | const totalRainfall = ref(50); // é鍿»é |
| | | const schemeName = ref('æ¹æ¡åç§°'); // æ¹æ¡åç§° |
| | | const schemeName = ref("æ¹æ¡åç§°"); // æ¹æ¡åç§° |
| | | const rainfallIntensity = ref(70); // éé¨å¼ºåº¦ |
| | | const rainfallDuration = ref(5); // é鍿¶é¿ |
| | | const isCollapsed = ref(false); // æ§å¶è¯¦æ
çå±å¼/æ¶èµ·ç¶æ |
| | |
| | | ElMessage.warning("请å
å¡«åææå¿
填项"); |
| | | return; |
| | | } |
| | | saveDialogVisible.value = true; |
| | | ElMessageBox.confirm("ç¡®å®è¦ä¿åå½åæ¹æ¡å?", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(confirmSave) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: "info", |
| | | message: "已忶ä¿å", |
| | | }); |
| | | }); |
| | | // saveDialogVisible.value = true; |
| | | }; |
| | | const params = { |
| | | name: schemeName.value, |
| | | type: "å岿¨¡æ", |
| | | data: { |
| | | rainFall: totalRainfall.value, |
| | | rainfallIntensity: rainfallIntensity.value, |
| | | rainfallDuration: rainfallDuration.value, |
| | | rainfallHistory: rainfallHistory.value, |
| | | }, |
| | | }; |
| | | const isLoading = ref(false); |
| | | const confirmSave = async () => { |
| | | if (isLoading.value) { |
| | | ElMessage.warning("æ£å¨ä¿åï¼è¯·ç¨å..."); |
| | | return; // 鲿¢éå¤æäº¤ |
| | | } |
| | | isLoading.value = true; // å¼å§å è½½ç¶æ |
| | | try { |
| | | await simStore.createSimulation(params); // è°ç¨ Store ä¸çä¿åæ¹æ³ |
| | | ElMessage.success("ä¿åæå"); |
| | | saveDialogVisible.value = true; // æ¾ç¤ºä¿åå¯¹è¯æ¡ï¼å¦æéè¦ï¼ |
| | | } catch (error) { |
| | | console.error("ä¿å失败:", error); |
| | | ElMessage.error("ä¿å失败ï¼è¯·ç¨åéè¯"); |
| | | } finally { |
| | | isLoading.value = false; // ç»æå è½½ç¶æ |
| | | } |
| | | }; |
| | | |
| | | // å
³éä¿åæ¹æ¡å¯¹è¯æ¡ |
| | |
| | | saveDialogVisible.value = false; |
| | | }; |
| | | |
| | | // 确认ä¿å |
| | | const confirmSave = () => { |
| | | // æé æ°çæ¹æ¡å¯¹è±¡ |
| | | const newScheme = { |
| | | id: Date.now().toString(), // å¯ä¸ ID |
| | | area: props.selectedArea, // åºå |
| | | name: selectedRainfallName.value, // æ¹æ¡åç§° |
| | | createTime: new Date().toISOString(), // å建æ¶é´ |
| | | taskStatus: 1, // åå§ç¶æä¸ºæªå¼å§ |
| | | totalRainfall: totalRainfall.value, // é鍿»é |
| | | schemeName: schemeName.value, // é鍿»é |
| | | rainfallIntensity: rainfallIntensity.value, // éé¨å¼ºåº¦ |
| | | rainfallDuration: rainfallDuration.value, // é鍿¶é¿ |
| | | }; |
| | | // // 确认ä¿å |
| | | // const confirmSave = () => { |
| | | // // æé æ°çæ¹æ¡å¯¹è±¡ |
| | | // const newScheme = { |
| | | // id: Date.now().toString(), // å¯ä¸ ID |
| | | // area: props.selectedArea, // åºå |
| | | // name: selectedRainfallName.value, // æ¹æ¡åç§° |
| | | // createTime: new Date().toISOString(), // å建æ¶é´ |
| | | // taskStatus: 1, // åå§ç¶æä¸ºæªå¼å§ |
| | | // totalRainfall: totalRainfall.value, // é鍿»é |
| | | // schemeName: schemeName.value, // é鍿»é |
| | | // rainfallIntensity: rainfallIntensity.value, // éé¨å¼ºåº¦ |
| | | // rainfallDuration: rainfallDuration.value, // é鍿¶é¿ |
| | | // }; |
| | | |
| | | simStore.addSchemCard(newScheme); |
| | | ElMessage.success("æ¹æ¡å·²ä¿å"); |
| | | // å
³éå¯¹è¯æ¡ |
| | | saveDialogVisible.value = false; |
| | | }; |
| | | // simStore.addSchemCard(newScheme); |
| | | // ElMessage.success("æ¹æ¡å·²ä¿å"); |
| | | // // å
³éå¯¹è¯æ¡ |
| | | // saveDialogVisible.value = false; |
| | | // }; |
| | | |
| | | // å¼å§æ¨¡æ |
| | | function startPlay() { |
| | |
| | | <span>ä»¿çæ¨æ¼æ¹æ¡</span> |
| | | </div> |
| | | <div class="left-content"> |
| | | <div style=" |
| | | <div |
| | | style=" |
| | | display: flex; |
| | | justify-content: space-evenly; |
| | | padding: 8px 8px 8px 0px; |
| | | " |
| | | v-if="btnShow"> |
| | | <el-button style="width: 45%;" @click="handleClick">æ°å»ºä»¿çæ¹æ¡</el-button> |
| | | <el-button style="width: 45%;" @click="deleteSelectedScheme">å é¤ä»¿çæ¹æ¡</el-button> |
| | | v-if="btnShow" |
| | | > |
| | | <el-button style="width: 45%" @click="handleClick" |
| | | >æ°å»ºä»¿çæ¹æ¡</el-button |
| | | > |
| | | <el-button style="width: 45%" @click="deleteSelectedScheme" |
| | | >å é¤ä»¿çæ¹æ¡</el-button |
| | | > |
| | | </div> |
| | | <!-- <schemeCard ref="schemeCardRef" @start="start" @end="end" @reset="reset" @closeBtn="handleBackFromParent" /> --> |
| | | <schemeCard |
| | |
| | | @end="end" |
| | | @reset="reset" |
| | | :deleteSim="deleteSim" |
| | | :showAddIns="showAddIns" |
| | | @closeBtn="handleBackFromParent" |
| | | /> |
| | | </div> |
| | |
| | | } |
| | | function handleBackFromParent(value) { |
| | | if (value === false) { |
| | | btnShow.value = false |
| | | } else btnShow.value = true |
| | | btnShow.value = false; |
| | | } else btnShow.value = true; |
| | | } |
| | | function initDevicePoint() { |
| | | list.forEach((item) => { |
| | |
| | | import citySim from "./CitySim.vue"; |
| | | import kgSim from "./KGSim.vue"; |
| | | |
| | | import { useSimStore } from "@/store/simulation"; |
| | | import { SimAPIStore } from "@/store/simAPI"; |
| | | |
| | | const simStore = useSimStore(); |
| | | const simStore = SimAPIStore(); |
| | | |
| | | // å®ä¹è¿åäºä»¶ |
| | | const emits = defineEmits(["back"]); |
| | |
| | | |
| | | // æ ç¾ç¹å»äºä»¶ |
| | | const handleClick = (tab) => { |
| | | simStore.handleClickTab(tab.props.label); |
| | | SimAPIStore.handleClickTab(tab.props.label); |
| | | }; |
| | | |
| | | // è¿åä¸ä¸çº§ |