liuqiao 1 年之前
父节点
当前提交
0d02b25895
共有 5 个文件被更改,包括 496 次插入261 次删除
  1. 二进制
      src/assets/img/b0.png
  2. 215 143
      src/view/Dialoges.vue
  3. 5 5
      src/view/appmian.vue
  4. 263 55
      src/view/components/MyBoundary.vue
  5. 13 58
      src/view/components/Sourcedisaster.vue

二进制
src/assets/img/b0.png


+ 215 - 143
src/view/Dialoges.vue

@@ -51,7 +51,7 @@
        
       </div>
     </template>
-    <div class="my_content1 bgcolor  tablefocus">
+    <div class="my_content1 bgcolor  tablefocus scoperadio ">
         <el-table   
         :data="tableData"
         style="width: 100%"
@@ -65,7 +65,7 @@
         :header-cell-style="{'background':' #375A88'}"
        @select="projectsSelectionSelect"
         >
-            <el-table-column>
+            <el-table-column  width="50">
             <template #default="scope">
                 <el-radio v-model="scoperadio" :label="scope.row.aid"  @change="getRadioRow(scope.row)"></el-radio>
             </template>
@@ -145,10 +145,10 @@
   </el-dialog>
   </el-dialog>
   <!--火灾左侧栏-->
-  <div class="common-layout" style="margin: 0;"> 
-      <el-aside width="278px" class="L_aside asideg asidegbg  leftbgimg">
+  <div class="common-layout" style="margin: 0;" v-show="leftcoll.collfire"> 
+      <el-aside width="278px" class="L_aside L_aside1 asideg asidegbg  leftbgimg">
         <div class="demo-collapse">
-    <el-collapse v-model="coolactiveName" accordion v-show="leftcoll.collfire">
+    <el-collapse v-model="coolactiveName" accordion >
       <el-collapse-item  name="1">
         <template #title>
             <el-icon class="iconimg Frame2" fit="contain" ></el-icon>  
@@ -157,52 +157,70 @@
           </el-icon>
         </template>
         <div class="asides_content">
-            <el-form :inline="true" :model="formInline" class="demo-form-inline">
-             <div class="l_padding" style="padding:20px 20px 20px 24px; ">
-                <!-- <el-form-item label="Activity zone">
-                <el-select v-model="form.region" placeholder="please select your zone">
-                    <el-option label="Zone one" value="shanghai" />
-                    <el-option label="Zone two" value="beijing" />
-                </el-select>
-                </el-form-item> -->
-                <div class="line">
+            <el-form :inline="true" :model="tuiyanobj" class="demo-form-inline">
+             <div class="l_padding " style="padding:20px 20px 20px 24px; ">
+                <div class="line selecwidth">
                 <el-form-item label="污染物选择:" >
-                <el-select v-model="formInline.region" placeholder="请选择">
+                    <el-select
+                    v-model="options.coid"
+                    multiple
+                    filterable
+                    allow-create
+                    default-first-option
+                    :reserve-keyword="false"
+                    value-key="code"
+                    @change="selectchange($event)"
+                    placeholder="请选择"
+                >
                     <el-option
-                        v-for="item in strResultFormatlist"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.value"
-                    ></el-option>
-                </el-select>
+                    v-for="item in options"
+                    :key="item.coid"
+                    :label="item.code"
+                    :value="item"
+                    />
+  </el-select>
             </el-form-item>
         </div>
         <ul>
+            <li>
+            <div class="demo-datetime-picker">
+            <span class="inputtext_1">选择时间</span>
+            <div class="block">
+            <el-date-picker
+                v-model="pickertime"
+                type="datetime"
+                placeholder="Pick a Date"
+                format="YYYY-MM-DD HH:mm:ss"
+                @change="timeclick()"
+            />
+            </div>
+             </div>
+            </li>
             <li><span class="inputtext_1">时间步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.dt" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">空间步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.dx" />
         <span class="righttext">m</span></div>
         </li>
         <li><span class="inputtext_1">模拟时长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.totaltime" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">输出步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.reportstep" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">交互步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.interactionstep" />
         <span class="righttext">s</span></div>
         </li>
         </ul>
     </div>
     <div class="asdis_btn">
-        <div class="btn"><span class="spantext">初始数据</span></div>
-        <div class="btn"><span class="spantext">开始计算</span></div>
+        <div class="btn"><span class="spantext" @click="initial();">初始数据</span></div>
+        <div class="btn"><span class="spantext" @click="calculate();">开始计算</span></div>
     </div>
   
     <div class=" logs">
@@ -224,9 +242,15 @@
     
       </el-collapse-item>
     </el-collapse>
-    <!-- 突水 -->
-    <el-collapse v-model="coolactiveName" accordion v-show="leftcoll.collwater">
-      <el-collapse-item  name="2">
+  </div>
+      </el-aside>
+  </div>
+  <!-- 突水 -->
+  <div class="common-layout" style="margin: 0;" v-show="leftcoll.collwater"> 
+      <el-aside width="278px" class="L_aside L_aside1 asideg asidegbg  leftbgimg">
+        <div class="demo-collapse">
+    <el-collapse v-model="coolactiveName" accordion >
+      <el-collapse-item  name="1">
         <template #title>
             <el-icon class="iconimg Frame3" fit="contain" ></el-icon>  
           突水<el-icon class="header-icon">
@@ -234,34 +258,48 @@
           </el-icon>
         </template>
         <div class="asides_content">
-            <el-form :inline="true" :model="formInline" class="demo-form-inline">
-             <div class="l_padding" style="padding:20px 20px 20px 24px; ">
+            <el-form :inline="true" :model="tuiyanobj" class="demo-form-inline">
+             <div class="l_padding " style="padding:20px 20px 20px 24px; ">
         <ul>
+            <li>
+            <div class="demo-datetime-picker">
+            <span class="inputtext_1">选择时间</span>
+            <div class="block">
+            <el-date-picker
+                v-model="pickertime"
+                type="datetime"
+                placeholder="Pick a Date"
+                format="YYYY-MM-DD HH:mm:ss"
+                @change="timeclick()"
+            />
+            </div>
+             </div>
+            </li>
             <li><span class="inputtext_1">时间步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.dt" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">空间步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.dx" />
         <span class="righttext">m</span></div>
         </li>
         <li><span class="inputtext_1">模拟时长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.totaltime" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">输出步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.reportstep" />
         <span class="righttext">s</span></div>
         </li>
         <li><span class="inputtext_1">交互步长</span>
-            <div class="inputkuang"> <el-input v-model="formInline.user" />
+            <div class="inputkuang"> <el-input v-model="tuiyanobj.interactionstep" />
         <span class="righttext">s</span></div>
         </li>
         </ul>
     </div>
     <div class="asdis_btn">
-        <div class="btn"><span class="spantext">初始数据</span></div>
-        <div class="btn"><span class="spantext">开始计算</span></div>
+        <div class="btn"><span class="spantext" @click="initial();">初始数据</span></div>
+        <div class="btn"><span class="spantext" @click="calculate();">开始计算</span></div>
     </div>
   
     <div class=" logs">
@@ -283,79 +321,8 @@
     
       </el-collapse-item>
     </el-collapse>
-  </div>
-  <!-- 推演结果 -->
-  <div class="result" v-show="monitor">
-    <el-tabs
-    v-model="resultactiveName"
-    type="card"
-    class="demo-tabs"
-    @tab-click="handleClick"
-  >
-    <el-tab-pane label="当前时间" name="first">
-        <div class="newtime">{{newtime}}</div>
-    </el-tab-pane>
-    <el-tab-pane label="指定时间" name="second"> <div class="newtime">{{newtime}}</div></el-tab-pane>
-    <el-tab-pane label="动画演示" name="third">
-        <div class="animation_s">
-        <el-slider
-              :max="endtime"
-              :min="starttime"
-            ></el-slider>
-            <!-- <el-progress type="line" :percentage="percentage" :color="customColor" :stroke-width="4"/> -->
-            <div class="tanniu">
-                <ul>
-                    <li> <el-image :src="t1" fit="contain" ></el-image><p>后退</p></li>
-                    <li> <el-image :src="t2" fit="contain" ></el-image><p>播放</p></li>
-                    <li> <el-image :src="t3" fit="contain" ></el-image><p>暂停</p></li>
-                    <li> <el-image :src="t4" fit="contain" ></el-image><p>快进</p></li>
-                </ul>
-            </div>
-        </div>
-    </el-tab-pane>
-  </el-tabs>
   </div>
       </el-aside>
-   
-  </div>
- <!-- 监测点 -->
- <!-- 监测点 -->
- <div class="jiancedian asideg1 " v-show="monitor">
-        <div class="jc_header he_pading color1">
-            
-            <el-form-item label="污染物选择:" >
-                <el-select v-model="formInline.region" placeholder="请选择">
-                    <el-option
-                        v-for="item in strResultFormatlist"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.value"
-                    ></el-option>
-                </el-select>
-            </el-form-item>
-        </div>
-        <div class="jc_content tablecolor">
-            <div class="jc_padding">
-             <div class="xian">
-                <el-table
-        :data="tableData2"
-        style="width: 100%"
-        @current-change= "handleCurrentChange"
-        :row-class-name="tableRowClassName"
-        :header-cell-style="{'background':'rgba(13, 22, 57, 0.96) '}"
-
-        >
-    <el-table-column prop="date" label="监测点名称"  width="120" />
-    <el-table-column prop="name" label="水位(m)"  />
-    <el-table-column prop="name" label="流量(m³/s)"/>
-  </el-table>
-</div>
-            </div>
-            <div class="jc_header color1">
-                <span class="jc_tile">锋面定义</span>
-        </div>
-        <div style="height:200px"></div>
-        </div>
   </div>
   </div>
 </template>
@@ -385,6 +352,7 @@ const props= defineProps({
     }
 
  });
+ let pickertime=ref('');
  let zqname=ref({});
  let shiguobj=ref({
         source:'自荐',
@@ -402,6 +370,7 @@ const props= defineProps({
     name:"",
     time:""
  })
+ const value1 = ref('')
  let loading=ref(true)
  let aid=ref("");
    let firepid=ref("");
@@ -424,6 +393,30 @@ const dialog=ref({
    dialogForm:false,
    dialogsgdelect:false,
 })
+let tuiyanobj=ref({
+    value:[''],
+    acctime:'24-03-06 00:00:00',
+    dt:'',
+    dx:'',
+    reportstep:'',
+    interactionstep:'',
+    totaltime:'',
+    coids:'',
+    cocodes:''
+
+})
+let tuiyanobj2=ref({
+    value:['SO2'],
+    acctime:'24-03-06 00:00:00',
+    dt:'0.1',
+    dx:'10',
+    reportstep:'60',
+    interactionstep:'3600',
+    totaltime:'3600',
+    coids:'1',
+    cocodes:'CO2'
+
+})
 let coolactiveName=ref(["1","2"]);
 let rizhi=ref({
   top:"50px",
@@ -437,29 +430,23 @@ const formInline = ref({
   date: '',
   
 })
-const strResultFormatlist = ref([
-    //  { id: 0, name: "灾情演化",value: ".vtk" },
-    //  { id: 1, name: "演化过程" ,value: ".mesh"},
-   ]);
-// let strResultFormatlist=ref([
-//           { value: ".vtk", name: ".vtk",id:1 },
-//         { value: ".mesh", name: ".mesh",id:2 },
-//         { value: ".ugrid", name: ".ugrid",id:3 },
-//         { value: ".bdf", name: ".bdf",id:4 },
-//         { value: ".neu", name: ".neu",id:5  },
-   
-//       ]);
-   
+const value = ref([])
+const options = ref([
+  {
+    value: 'HTML',
+    label: 'HTML',
+  },
+  {
+    value: 'CSS',
+    label: 'CSS',
+  },
+  {
+    value: 'JavaScript',
+    label: 'JavaScript',
+  },
+])
 let scoperadio=ref(1);
-let url=ref("http://localhost:8080/?aid=0")
 // 推演结果
-const resultactiveName = ref('first');
-let newtime=ref("");
-let starttime = ref(1);
-let endtime = ref(60);
-let timenum = ref(2);
-let isstop = ref(false);
-const percentage = ref(20)
 const customColor = ref('#409eff')
 const tableRowClassName = ({row, rowIndex}) =>{
     if (rowIndex%2 != 0) {
@@ -497,11 +484,7 @@ const handleCurrentChange= ({row, rowIndex}) =>{
   console.log(row);
 }
 // aid获取
-function init(){
-     let urlarr=(url.value).split("?aid=");
-     aid.value=parseInt(urlarr[1]);
 
-   }
 // 类型选择
 const classclick= () =>{
 
@@ -510,8 +493,6 @@ const classclick= () =>{
   classradio.value=classradio1.value;
   props.addselect();
   getdata();
- // sessionStorage.setItem('classradio',classradio.value);
-
 }
 // 事故确定列表
 const accident=()=>{
@@ -521,7 +502,7 @@ const accident=()=>{
     emit('headerclick',sgdata.value);
     dialog.value.dialogVisible_fire=false;
     emit('childfun');
-   // handledisaster();
+    pollute();
 }
 }
 const  accident2=()=>{
@@ -620,15 +601,83 @@ const getdata=()=>{
           })
           .catch((err) => {
             loading.value=false;
+            ElMessage.error(err.returnMsg)
           })
  
   }
+// 污染物的查询
+const pollute=()=>{
+    const params = {
+        transCode: 'D10013',
+        }
+        request(params)
+          .then((res) => { 
+            console.log(res)
+            options.value=res.rows
+          })
+          .catch((err) => {
+            ElMessage.error(err.returnMsg)
+          })
+}
+//默认时间
+const inititimeDefaultal=()=>{
+      var date = new Date();
+      var s1 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate()) + " 00:00:00";
+      var s2 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate()) + " 23:59:59";
+    console.log(s1)
+      return s1;
+}
+
+// 初始数据
+const initial=()=>{
+   tuiyanobj2.value.acctime=inititimeDefaultal();
+    tuiyanobj.value=tuiyanobj2.value;
 
+}
+//推演的开始计算
+
+const timeclick=()=>{
+    tuiyanobj.value.acctime=pickertime.value.getFullYear() + "-" + (pickertime.value.getMonth() + 1) + "-" + (pickertime.value.getDate()) + " 00:00:00";
+}
+//  下拉多选
+const selectchange=(val)=>{
+  let arr1=[];
+  let arr2=[];
+    for(let i=0;i<=val.length-1;i++){
+        console.log(val[i])
+        arr1.push(val[i].coid);
+        arr2.push(val[i].code);
+      
+
+    }
+    console.log(arr2);
+    tuiyanobj.value.coids= arr1.join(',');
+    tuiyanobj.value.cocodes =arr2.join(',');
+}
+const calculate=()=>{
+    
+    const params = {
+        transCode: 'D00008',
+        aid:aid.value,
+        acctime:tuiyanobj.value.acctime,
+        dt:tuiyanobj.value.dt,
+        dx:tuiyanobj.value.dx,
+        reportstep:tuiyanobj.value.reportstep,
+        interactionstep:tuiyanobj.value.interactionstep,
+        totaltime:tuiyanobj.value.totaltime,
+        coids:tuiyanobj.value.coids,
+        cocodes:tuiyanobj.value.cocodes,
+        }
+       
+        request(params)
+          .then((res) => { 
+            console.log(res)
+          })
+          .catch((err) => {
+            ElMessage.error(err.returnMsg)
+          })
+}
 onMounted(() => {
-    init();
-    const timestamp = new Date().getTime();
-    timestampToTime(timestamp)
-    newtime.value= timestampToTime(timestamp);
 });
 
 defineExpose({monitor,accident2,leftcoll,classradio,aid});
@@ -1069,6 +1118,12 @@ border-radius: 0px 0px 0px 0px;
 border: 1px solid;
 border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
 }
+.selecwidth .el-input__wrapper{
+    height: auto !important;
+}
+.selecwidth .el-select__tags{
+max-width: 200px !important;
+}
 .ddd_div .el-input__inner{
     border: none;
     /* background: rgba(104,173,255,0.3); */
@@ -1358,4 +1413,21 @@ border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255,
     font-weight: bold;
     color: #fff;
 }
+.scoperadio .el-radio__label{
+    display: none;
+}
+.el-select__input{
+    font-size: 12px;
+}
+.L_aside1{
+    background: rgba(13, 22, 57, 0.6);
+    border-bottom: 1px solid;
+    border-left: 1px solid;
+    border-right: 1px solid;
+    -o-border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
+    border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
+    box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
+    border-radius: 0px 0px 0px 0px;
+    background-color: rgba(13, 22, 57, 0.4); 
+}
 </style>

+ 5 - 5
src/view/appmian.vue

@@ -104,10 +104,10 @@ const aidlist=()=>{
 // 获取子组件的方法
 const childfun=()=>{
     sourcedis.value.handledisaster(aid.value);
+    boundary.value.addboundary(aid.value);
    sourcedis.value.accident3();
 }
 const headerclick=(data)=>{
-    console.log(data);
     headerobj.value.name=data.name;
     headerobj.value.time=data.time;
     aid.value=data.aid
@@ -116,13 +116,13 @@ const handleSelect = (key,keyPath) => {
     switch (key) {
     case '1':
     sourcedis.value.accident3();
-    boundary.value.boun.collfire=false;
+    boundary.value.accident4(key);
     lliudialog.value.leftcoll.collfire=false;
      lliudialog.value.leftcoll.collwater=false;
      tanimation.value.monitor=false;
         break;
     case '2':
-    boundary.value.accident4();
+    boundary.value.accident4(key);
     sourcedis.value.sour.collfire=false;
     sourcedis.value.sour.collwater=false;
     lliudialog.value.leftcoll.collfire=false;
@@ -130,17 +130,17 @@ const handleSelect = (key,keyPath) => {
      tanimation.value.monitor=false;
     break;
     case '3':
+    boundary.value.accident4(key);
     sourcedis.value.sour.collfire=false;
     sourcedis.value.sour.collwater=false;
-    boundary.value.boun.collfire=false;
     lliudialog.value.accident2();
     tanimation.value.monitor=false;
         break;
      case '4':
+     boundary.value.accident4(key);
      tanimation.value.accident5(aid.value);
      sourcedis.value.sour.collfire=false;
     sourcedis.value.sour.collwater=false;
-    boundary.value.boun.collfire=false;
      lliudialog.value.leftcoll.collfire=false;
      lliudialog.value.leftcoll.collwater=false;
     default:

+ 263 - 55
src/view/components/MyBoundary.vue

@@ -5,7 +5,7 @@
 
         <!--火灾左侧栏-->
         <div class="common-layout " style="margin: 0;">
-            <el-aside width="591px" class="L_aside asideg asidegbg leftbgimg2 " v-show="boun.collfire">
+            <el-aside width="591px" class="L_aside L_aside1 asideg asidegbg leftbgimg2 " v-show="boun.collfire">
                 <div class="demo-collapse">
                     <el-collapse v-model="coolactiveName1" accordion>
                         <el-collapse-item name="1">
@@ -19,26 +19,29 @@
                                 <div class="jc_content tablecolor">
 
                                     <div class="jc_padding font12">
-                                        <div class="xian btncolor">
+                                        <div class="xian btncolor tablefocus bmar">
 
                                             <el-table :data="ftableData" style="width: 100%"
-                                                @current-change="handleCurrentChange" :row-class-name="tableRowClassName"
+                                               :max-height="tableHeight"
+                                                :highlight-current-row="true"
+                                                 :row-class-name="tableRowClassName"
+                                                 @row-click="handleDelete($event)"
                                                 :header-cell-style="{ 'background': 'rgba(13, 22, 57, 0.96) ' }">
-                                                <el-table-column prop="date" label="节点选择" />
-                                                <el-table-column prop="name" label="边界类型" />
-                                                <el-table-column prop="date" label="流量(m³/s)" width="80" />
-                                                <el-table-column prop="name" label="压强(pa)" width="70" />
-                                                <el-table-column prop="date" label="温度(℃)" />
-                                                <el-table-column prop="name" label="污染物1浓度" width="95" />
-                                                <el-table-column prop="date" label="污染物2浓度" width="95" />
+                                                <el-table-column prop="nid" label="节点选择" />
+                                                <el-table-column prop="type" label="边界类型" />
+                                                <el-table-column prop="flow" label="流量(m³/s)" width="80" />
+                                                <el-table-column prop="pressure" label="压强(pa)" width="70" />
+                                                <el-table-column prop="temperature" label="温度(℃)" />
+                                                <el-table-column prop="polcon1" label="污染物1浓度" width="95" />
+                                                <el-table-column prop="polcon2" label="污染物2浓度" width="95" />
                                             </el-table>
                                             <div class="asdis_btn">
                                                 <div class="flex_a">
-                                                    <div class="btns" @click="addboundary(); dialog.dialogVisible = true;">
+                                                    <div class="btns" @click="bounadd();dialog.dialogVisible = true;">
                                                         <span class="spantext">添加</span></div>
                                                 </div>
                                                 <div class="flex_a">
-                                                    <div class="btns"><span class="spantext">删除</span></div>
+                                                    <div class="btns"  @click="sdialog.dialogsgdelect=true"><span class="spantext">删除</span></div>
                                                 </div>
                                                 <div class="flex_a">
                                                     <div class="btns"><span class="spantext">确认</span></div>
@@ -58,6 +61,57 @@
 
             </el-aside>
 
+        </div>
+        <!-- 突水 -->
+        <div class="common-layout " style="margin: 0;">
+            <el-aside width="231px" class="L_aside L_aside1 asideg asidegbg leftbgimg0 " v-show="boun.collwater">
+                <div class="demo-collapse">
+                    <el-collapse v-model="coolactiveName1" accordion>
+                        <el-collapse-item name="2">
+                            <template #title>
+                                <el-icon class="iconimg Frame3" fit="contain"></el-icon>
+                               突水<el-icon class="header-icon">
+                                    <info-filled />
+                                </el-icon>
+                            </template>
+                            <div class="asides_content">
+                                <div class="jc_content tablecolor">
+
+                                    <div class="jc_padding font12">
+                                        <div class="xian btncolor tablefocus bmar">
+
+                                            <el-table :data="ftableData" style="width: 100%"
+                                               :max-height="tableHeight"
+                                                :highlight-current-row="true"
+                                                 :row-class-name="tableRowClassName"
+                                                 @row-click="handleDelete($event)"
+                                                :header-cell-style="{ 'background': 'rgba(13, 22, 57, 0.96) ' }">
+                                                <el-table-column prop="nid" label="节点选择" />
+                                                <el-table-column prop="type" label="边界类型" />
+                                            </el-table>
+                                        </div>
+                                    </div>
+                                    <div class="asdis_btn">
+                                                <div class="flex_a">
+                                                    <div class="btns" @click="bounadd();dialog.dialogVisible = true;">
+                                                        <span class="spantext">添加</span></div>
+                                                </div>
+                                                <div class="flex_a">
+                                                    <div class="btns"  @click="sdialog.dialogsgdelect=true"><span class="spantext">删除</span></div>
+                                                </div>
+                                            </div>
+
+                                </div>
+
+                            </div>
+
+                        </el-collapse-item>
+                    </el-collapse>
+
+                </div>
+
+            </el-aside>
+
         </div>
         <!-- 添加 -->
         <el-dialog v-model="dialog.dialogVisible" width="482" :modal="false" :close-on-click-modal="false" draggable
@@ -71,12 +125,13 @@
                 </div>
             </template>
             <div class="addye">
-                <el-form class="demo-form-inline" :inline="true" :model="formInline">
+                <div class="fireclass" v-if="props.classradio=='Fire'">
+                    <el-form class="demo-form-inline" :inline="true" :model="bformInline">
                     <div class="l_padding input" style="padding:20px 20px 20px 24px; ">
 
                         <div class="demo-input-suffix firsttitle magintop">
-                            <el-form-item label="节点选择" :label-width="formLabelWidth6">
-                                <el-input v-model="selectstr" class="w-50 m-2" placeholder="节点选择" />
+                            <el-form-item label="节点名称" :label-width="formLabelWidth6">
+                                <el-input v-model="bformInline.nname" class="w-50 m-2" placeholder="节点名称" />
                             </el-form-item>
                             <div class="btn2">
                                 <el-button type="primary"
@@ -84,34 +139,58 @@
                             </div>
                         </div>
                         <el-form-item label="边界类型" :label-width="formLabelWidth6">
-                            <el-select v-model="formInline.region" placeholder="请选择">
-                                <el-option v-for="item in formInline.options" :key="item.id" :label="item.label"
+                            <el-select v-model="bformInline.type" placeholder="请选择">
+                                <el-option v-for="item in bformInline.options" :key="item.id" :label="item.label"
                                     :value="item.value"></el-option>
                             </el-select>
                         </el-form-item>
                         <el-form-item label="流量(m³/s)"  :label-width="formLabelWidth6">
-                    <el-input  v-model="formInline.user" class="w-50 m-2"  placeholder="请输入"  />
+                    <el-input  v-model="bformInline.flow" class="w-50 m-2"  placeholder="请输入"  />
                     </el-form-item>
                     <el-form-item label="压强(pa)"  :label-width="formLabelWidth6">
-                        <el-input  v-model="formInline.user" class="w-50 m-2"  placeholder="请输入"  />
+                        <el-input  v-model="bformInline.pressure" class="w-50 m-2"  placeholder="请输入"  />
                         </el-form-item>
                         <el-form-item label="温度(℃)"  :label-width="formLabelWidth6">
-                        <el-input  v-model="formInline.user" class="w-50 m-2"  placeholder="请输入"  />
+                        <el-input  v-model="bformInline.temperature" class="w-50 m-2"  placeholder="请输入"  />
                         </el-form-item>
                         <el-form-item label="污染物1浓度"  :label-width="formLabelWidth6">
-                        <el-input  v-model="formInline.user" class="w-50 m-2"  placeholder="请输入"  />
+                        <el-input  v-model="bformInline.polcon1" class="w-50 m-2"  placeholder="请输入"  />
                         </el-form-item>
                         <el-form-item label="污染物2浓度"  :label-width="formLabelWidth6">
-                        <el-input  v-model="formInline.user" class="w-50 m-2"  placeholder="请输入"  />
+                        <el-input  v-model="bformInline.polcon2" class="w-50 m-2"  placeholder="请输入"  />
+                        </el-form-item>
+                    </div>
+                </el-form>
+                </div>
+                <div class="Waterclass" v-else>
+                    <el-form class="demo-form-inline" :inline="true" :model="bformInline">
+                    <div class="l_padding input" style="padding:20px 20px 20px 24px; ">
+
+                        <div class="demo-input-suffix firsttitle magintop">
+                            <el-form-item label="节点名称" :label-width="formLabelWidth6">
+                                <el-input v-model="bformInline.nname" class="w-50 m-2" placeholder="节点名称" />
+                            </el-form-item>
+                            <div class="btn2">
+                                <el-button type="primary"
+                                    @click="fireclick(); sdialog.dialogVisiblenode = true">选择节点</el-button>
+                            </div>
+                        </div>
+                        <el-form-item label="边界类型" :label-width="formLabelWidth6">
+                            <el-select v-model="bformInline.type" placeholder="请选择">
+                                <el-option v-for="item in bformInline.options2" :key="item.id" :label="item.label"
+                                    :value="item.value"></el-option>
+                            </el-select>
                         </el-form-item>
                     </div>
                 </el-form>
+                </div>
+              
                 <div class="dialog-footer footer_div l_btn">
                     <div class="footerbtn flex1">
                         <div class="borderimg"><el-button @click="dialog.dialogVisible = false">取消</el-button></div>
                     </div>
                     <div class="footerbtn flex1">
-                        <div class="borderimg"><el-button @click="accidentboun()">
+                        <div class="borderimg"><el-button @click="accidentboun();dialog.dialogVisible = false">
                                 确定
                             </el-button></div>
                     </div>
@@ -161,7 +240,7 @@
                             <div class="borderimg"><el-button @click=" sdialog.dialogVisiblenode = false">取消</el-button></div>
                         </div>
                         <div class="footerbtn flex1">
-                            <div class="borderimg"><el-button @click="selectfun(); sdialog.dialogVisiblenode = false">
+                            <div class="borderimg"><el-button @click="selectfun();">
                                     确定
                                 </el-button></div>
                         </div>
@@ -169,7 +248,23 @@
                 </div>
             </el-dialog>
         </el-dialog>
-
+ <!-- 删除 -->
+        <el-dialog v-model="sdialog.dialogsgdelect" width="400"  class="dialog_class bgcolor tianjia">
+                <template #header="{titleId, titleClass }">
+                <div class="my-header ">
+                    <el-image :src="icon" fit="contain" ></el-image>
+                    <h4 :id="titleId" :class="titleClass">删除框</h4>
+                
+                </div>
+                </template>
+                    <h4 class="delecttitle"> 是否确认删除 <span class="spanclad">{{zqname }}</span></h4>
+                <div class="dialog-footer footer_div l_btn">
+                    <div class="footerbtn flex1"><div class="borderimg"><el-button @click="sdialog.dialogsgdelect=false">取消</el-button></div></div>
+                    <div class="footerbtn flex1"><div class="borderimg"><el-button  @click="fundeledata();sdialog.dialogsgdelect=false">
+                确定
+                    </el-button></div></div>
+                </div>
+            </el-dialog>
     </div>
 </template>
 <script setup >
@@ -186,24 +281,34 @@ const props = defineProps({
 });
 let sdialog = ref({
     dialogVisiblenode: false,
+    dialogsgdelect:false,
 })
 const strResultFormatlist = reactive(
 
     { id: 0, name: "灾情演化", value: ".vtk" },
     { id: 1, name: "演化过程", value: ".mesh" }
 );
+let zqname=ref('');
+let tableHeight=ref(400)
 const multipleTableRef = ref()
 const multipleSelection = ref([])
 const formLabelWidth5 = ref(77);
 const formLabelWidth6 = ref(120);
 let tableData2=ref([]);
-let selectstr = ref('');
 let searchtaggd = ref("");
 let total = ref(1);
-let firepid=ref("");
 const currentPage4 = ref(1);
 const pageSize4 = ref(5)
-let formInline = reactive({
+let nid=ref();
+let bid=ref();
+let bformInline = ref({
+    nname:'',
+    type:'Pressure',
+    flow:'',
+    pressure:'',
+    temperature:'',
+    polcon1:'',
+    polcon2:'',
     user: '11',
     nodesel: '1',
     nodesselect: [
@@ -220,15 +325,19 @@ let formInline = reactive({
     options: [
         {
             value: 'massflow',
-            label: '压力入口',
+            label: '流量入口',
         },
         {
             value: 'Pressure',
-            label: '流量入口',
+            label: ' 压力入口',
+        },
+    ],
+    region: 'Pressure',
+    options2: [
+        {
+            value: 'Pressure',
+            label: ' 压力入口',
         },
-
-
-
     ]
 
 })
@@ -270,17 +379,19 @@ const pipelinedata = (searchtag) => {
             total.value = res.total;
         })
         .catch((err) => {
+            ElMessage.error(err.returnMsg)
         })
 }
 const selectfun = () => {
-    selectstr.value = '';
+    sdialog.value.dialogVisiblenode = false;
+    bformInline.value.nname= '';
     currentPage4.value = 1;
     console.log()
     if (multipleSelection.value.length != 0) {
-        firepid.value = multipleSelection.value[0].id;
-        selectstr.value = multipleSelection.value[0].name;
+        nid.value = multipleSelection.value[0].id;
+        bformInline.value.nname= multipleSelection.value[0].name;
     } else {
-        selectstr.value = '';
+        bformInline.value.nname = '';
 
     }
 }
@@ -300,23 +411,81 @@ const projectsSelectionSelect = (selection, row) => {
 
     // console.log(row)
 }
-// 火灾边界数据的查询
-const addboundary = () => {
+//边界添加前清空
+const  bounadd=()=>{
+    bformInline.value.nname='';
+    bformInline.value.type='Pressure',
+    bformInline.value.flow='';
+    bformInline.value.pressure='';
+    bformInline.value.temperature='';
+    bformInline.value.polcon1='';
+    bformInline.value.polcon2='';
+}
+//边界的添加
+const  accidentboun=()=>{
     const params = {
-        transCode: 'D10007',
+        transCode: 'D10008',
+        nid:nid.value,
+        nname:bformInline.value.nname,
+        type:bformInline.value.type,
         aid: props.aid,
+        flow:bformInline.value.flow,
+        pressure:bformInline.value.pressure,
+        temperature:bformInline.value.temperature,
+        polcon1:bformInline.value.polcon1,
+        polcon2:bformInline.value.polcon2,
+    }
+    request(params)
+        .then((res) => {
+         addboundary();
+          
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+// 边界数据的查询
+const addboundary = (valaid) => {
+    const params = {
+        transCode: 'D10007',
+        aid:props.aid,
     }
     request(params)
         .then((res) => {
-            if (props.classradio == 'Fire') {
                 ftableData.value = res.rows;
-            } else {
-                tableData4.value = res.rows
-            }
+           
         })
         .catch((err) => {
+            ElMessage.error(err.returnMsg)
         })
 }
+ //火灾边界条件删除
+ const handleDelete=(val)=>{
+      console.log(val);
+      bid.value=val.bid;
+      zqname.value=val.nname;
+  
+  }
+  const fundeledata=()=>{
+    const params = {
+            transCode: 'D10009',
+            bid:bid.value,
+            }
+            console.log(params);
+            request(params)
+              .then((res) => { 
+                ElMessage({
+                message: '删除成功',
+                type: 'success',
+              })
+              addboundary();
+              })
+              .catch((err) => {
+                ElMessage.error(err.returnMsg)
+              
+              })
+  }
+// 表格变色
 const tableRowClassName = ({ row, rowIndex }) => {
     if (rowIndex % 2 != 0) {
         return 'evenRow';
@@ -324,20 +493,37 @@ const tableRowClassName = ({ row, rowIndex }) => {
     return 'oddRow';
 
 }
-const accident4 = (val) => {
-    if (props.classradio == "Fire") {
+// 弹出框
+const accident4 = (key) => {
+    if(key=='2'){
+        if (props.classradio == "Fire") {
         boun.value.collfire = true;
-        addboundary();
-
-    } else if (props.classradio == "Water") {
-        boun.value.collwater = true;
+        } else if (props.classradio == "Water") {
+            boun.value.collwater = true;
+        }else{
+        
+        }
+
+    }else{
+        boun.value.collfire = false;
+        boun.value.collwater = false;
     }
+   
 }
 onMounted(() => {
 });
-defineExpose({ boun, accident4 });
+defineExpose({ boun, accident4,addboundary });
 </script>
-<style lang="scss" scoped> .jc_padding .el-table tr {
+<style lang="scss" scoped> 
+.bounclass .flex_a{
+    display: flex;
+    justify-content: center;
+
+}
+.bmar .el-table__header{
+    margin: 0 !important;
+}
+.jc_padding .el-table tr {
      height: 30px !important;
      background: rgba(104, 173, 255, 0.3);
      box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
@@ -684,7 +870,11 @@ defineExpose({ boun, accident4 });
     background-size: cover;
     background-position-x: center !important;
 }
-
+.leftbgimg0 .el-collapse-item__header {
+    background-image: url(../../assets/img/b0.png) !important;
+    background-size: cover;
+    background-position-x: center !important;
+}
 .xian {
     border: 1px solid;
     -o-border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
@@ -707,7 +897,7 @@ defineExpose({ boun, accident4 });
 }
 
 .asideg .el-collapse-item__wrap {
-    height: calc(100vh - 120px);
+    /* height: calc(100vh - 120px); */
     background: rgba(13, 22, 57, 0.4);
     /* //border: 1px solid; */
     border-bottom: 1px solid;
@@ -730,7 +920,16 @@ defineExpose({ boun, accident4 });
 
 
 }
+.leftbgimg0 .el-table tr {
+    height: 30px !important;
+    background: rgba(104, 173, 255, 0.3);
+    box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
+    border-radius: 0px 0px 0px 0px;
+    border: 1px solid;
+    border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
+
 
+}
 .font12 .el-table .cell {
     font-size: 12px !important;
 }
@@ -774,4 +973,13 @@ defineExpose({ boun, accident4 });
 .addye .footer_div {
     height: auto;
     padding-bottom: 30px;
-}</style>
+}
+ .Frame3{
+        background-image: url(../../assets/img/Frame3.png);
+        background-repeat: no-repeat;
+        background-position: center;
+    }
+.guand_1   .asdis_btn{
+        margin-top: -9px !important;
+    }
+</style>

+ 13 - 58
src/view/components/Sourcedisaster.vue

@@ -3,7 +3,7 @@
     <div class="l_Dialog bbb" >
     <!--火灾左侧栏-->
     <div class="common-layout" style="margin: 0;"> 
-        <el-aside width="354px" class="L_aside asideg asidegbg leftbgimg1"  v-show="sour.collfire">
+        <el-aside width="354px" class="L_aside L_aside1 asideg asidegbg leftbgimg1"  v-show="sour.collfire">
           <div class="demo-collapse">
       <el-collapse v-model="coolactiveName1" accordion >
         <el-collapse-item  name="1">
@@ -87,7 +87,7 @@
       </el-collapse>
   </div>
   </el-aside>
-  <el-aside width="354px" class="L_aside asideg asidegbg leftbgimg1" v-show="sour.collwater">
+  <el-aside width="354px" class="L_aside L_aside1 asideg asidegbg leftbgimg1" v-show="sour.collwater">
           <div class="demo-collapse">
       <!-- 突水 sour.collwater-->
       <el-collapse v-model="coolactiveName1" accordion  >
@@ -429,58 +429,8 @@
       return 'oddRow';
     
   }
-  const tableData = [
-    {
-      id:1,
-      date: '01',
-      name: '首次火灾事故',
-      address: 'No. 189, Grove S',
-    },
-    {
-      id:2,
-      date: '02',
-      name: 'T首次火灾事故om',
-      address: 'No. 189, Grove St',
-    },
-    {
-      id:3,
-      date: '03',
-      name: '首次火灾事故',
-      address: 'No. 189, Grove St ',
-    },
-  
-  ]
-  const tableDatay = ref([
-    {
-     
-      date: '15.30',
-      name: '35',
-      address: '20%',
-      address2: '10%',
-    },
-    {
-     
-     date: '15.30',
-     name: '35',
-     address: '20%',
-     address2: '10%',
-   },
-   {
-     
-     date: '15.30',
-     name: '35',
-     address: '20%',
-     address2: '10%',
-   },
-     {
-     
-     date: '15.30',
-     name: '35',
-     address: '20%',
-     address2: '10%',
-   },
-  
-  ])
+  const tableData = ref([]);
+  const tableDatay = ref([]);
   const tableData4=ref([]);
   const  accident3=()=>{
       console.log(props.classradio);
@@ -529,6 +479,7 @@
             handledisaster(aid.value)
             })
             .catch((err) => {
+              ElMessage.error(err.returnMsg)
             })
   }
   //灾情源添加清空
@@ -588,6 +539,7 @@
               handledisaster(aid.value);
               })
               .catch((err) => {
+                ElMessage.error(err.returnMsg)
               })
   }
   // 管道搜索
@@ -719,6 +671,7 @@
             getinquire();
             })
             .catch((err) => {
+              ElMessage.error(err.returnMsg)
             })
   }
   // 灾源突水检测添加
@@ -750,6 +703,7 @@
             getinquire();
             })
             .catch((err) => {
+              ElMessage.error(err.returnMsg)
             })
   }
   
@@ -1088,7 +1042,7 @@ text-transform: none;
 
 }
 .asideg .el-collapse-item__wrap{
-    height: calc(100vh - 120px);
+    /* height: calc(100vh - 120px); */
     background: rgba(13, 22, 57, 0.4);
     /* //border: 1px solid; */
     border-bottom: 1px solid;
@@ -1137,9 +1091,7 @@ text-transform: none;
 .guand_1{
     display: flex;
 }
-.guand_1 .asdis_btn{
-    margin-top: -9px;
-}
+
 .el-table .cell{
     color: #fff;
     font-size: 12px;
@@ -1153,4 +1105,7 @@ text-transform: none;
 .bbb .el-collapse-item__content{
     background: rgba(13, 22, 57, 0);
 }
+.guand_1 .asdis_btn{
+    margin-top: -9px;
+}
 </style>