|
@@ -0,0 +1,270 @@
|
|
|
+<template>
|
|
|
+ <!-- 一维瓦斯爆炸弹出列表-->
|
|
|
+ <div>
|
|
|
+ <el-dialog v-model="expdialog"
|
|
|
+ width="1100"
|
|
|
+ align-center
|
|
|
+ draggable
|
|
|
+ :modal="false"
|
|
|
+ :append-to-body="true"
|
|
|
+ :close-on-click-modal="true"
|
|
|
+ :fullscreen="false"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ modal-class="summary-dlg"
|
|
|
+
|
|
|
+ class="dialog_class4 bgcolor tianjia foter_l 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>
|
|
|
+ <div class="exp">
|
|
|
+ <div class="expleft"></div>
|
|
|
+ <div class="expright">
|
|
|
+ <!-- 物理量 -->
|
|
|
+ <div class="heigjie imgneon">
|
|
|
+ <div class="he_pading1 color1">
|
|
|
+ <el-form-item label="物理量:" >
|
|
|
+ <el-config-provider :locale="zhCn">
|
|
|
+ <el-select v-model="formInline.region" @change="regionchange($event)" placeholder="请选择">
|
|
|
+ <el-option v-for="item in strResultFormatlist" :key="item.id" :label="item.name"
|
|
|
+ :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-config-provider>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 动画 -->
|
|
|
+ <el-aside class="L_aside L_aside1 asideg asidegbg leftbgimg1" >
|
|
|
+ <div class="demo-collapse jiance asideg1 jc_header collapseeion jianstyle">
|
|
|
+ <el-collapse accordion v-model="activeNames1" class="bganimation">
|
|
|
+ <el-collapse-item name="2" class="imgneon">
|
|
|
+ <template #title>
|
|
|
+ <el-icon class="iconimg Frame3" fit="contain"></el-icon>
|
|
|
+ 动画展示
|
|
|
+ </template>
|
|
|
+ <div class="rg_content">
|
|
|
+ <div class="rg-padding">
|
|
|
+ <div class="animation_s">
|
|
|
+ <el-slider
|
|
|
+ :max="endtime"
|
|
|
+ :min="1"
|
|
|
+ v-model="count"
|
|
|
+ @change="sliderchange"
|
|
|
+ >
|
|
|
+ </el-slider>
|
|
|
+ <div class="tanniu">
|
|
|
+ <div><el-image :src="t1" fit="contain" @click="Prev" ></el-image></div>
|
|
|
+ <div v-show="suspendshow"><el-image :src="t2" fit="contain" @click="play(500)" ></el-image></div>
|
|
|
+ <div v-show="playshow"><el-image :src="t3" fit="contain" @click="play(500)" ></el-image></div>
|
|
|
+ <div><el-image :src="t4" fit="contain" @click="increment"></el-image></div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- <div class="mgsnoe" style="height: 200px"></div> -->
|
|
|
+ </el-collapse-item>
|
|
|
+ </el-collapse>
|
|
|
+ </div>
|
|
|
+ </el-aside>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="dialog-footer footer_div l_btn">
|
|
|
+ <div class="footerbtn flex1">
|
|
|
+ <div class="borderimg"><el-button @click="expdialog = false">取消</el-button></div>
|
|
|
+ </div>
|
|
|
+ <div class="footerbtn flex1">
|
|
|
+ <div class="borderimg"><el-button >
|
|
|
+ 确定
|
|
|
+ </el-button></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <script setup>
|
|
|
+ import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
|
|
+import { ref, onMounted, reactive, } from "vue";
|
|
|
+import {RouterView,RouterLink } from "vue-router"
|
|
|
+import { request, uploadFile } from "@/utils/request";
|
|
|
+import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
|
|
|
+import { createGassControl } from "@/control/gassControl.js";
|
|
|
+import t1 from "@/assets/img/t1.png";
|
|
|
+import t2 from "@/assets/img/t2.png";
|
|
|
+import t3 from "@/assets/img/t3.png";
|
|
|
+import t4 from "@/assets/img/t4.png";
|
|
|
+const props = defineProps({
|
|
|
+ aid: Number,
|
|
|
+});
|
|
|
+let expdialog=ref(false);
|
|
|
+const strResultFormatlist = ref([]);
|
|
|
+const formInline = ref({
|
|
|
+ user: '11',
|
|
|
+ region: '',
|
|
|
+ date: '',
|
|
|
+
|
|
|
+})
|
|
|
+let currentrow1 = ref(false);
|
|
|
+let activeNames1=ref(["2"])
|
|
|
+let starttime = ref(1);
|
|
|
+let endtime = ref(60);
|
|
|
+let count=ref(1);
|
|
|
+let newcount = ref(0);
|
|
|
+let timenum = ref(2);
|
|
|
+let playshow=ref(true);
|
|
|
+const isstop = ref(false);
|
|
|
+let suspendshow=ref(false);
|
|
|
+let showfalse=ref(false);
|
|
|
+let aid=ref();
|
|
|
+const fcon = createGassControl();
|
|
|
+onMounted(() => {
|
|
|
+fcon.step=count.value;
|
|
|
+});
|
|
|
+// 播放暂停
|
|
|
+const play =(time)=>{
|
|
|
+ showfalse.value=!showfalse.value;
|
|
|
+ currentrow1.value=false;
|
|
|
+ if(showfalse.value){
|
|
|
+ suspendshow.value=true;
|
|
|
+ playshow.value=false;
|
|
|
+ isstop.value = true;//播放
|
|
|
+ const sleep = (timeout = time) =>
|
|
|
+ new Promise((resolve, reject) => {
|
|
|
+ setTimeout(resolve, timeout);
|
|
|
+ });
|
|
|
+ let timer = async (timeout) => {
|
|
|
+ while (count.value < endtime.value && isstop.value) {
|
|
|
+ if (isstop.value == true) {
|
|
|
+ await sleep(time);
|
|
|
+ count.value++;
|
|
|
+ fcon.step = count.value;
|
|
|
+ newcount.value = count.value;
|
|
|
+ // newtime();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ timer(time);
|
|
|
+ }else{
|
|
|
+ isstop.value = false;//暂停
|
|
|
+ playshow.value=true;
|
|
|
+ suspendshow.value=false;
|
|
|
+}
|
|
|
+}
|
|
|
+// 下一页
|
|
|
+function increment() {
|
|
|
+ currentrow1.value=false;
|
|
|
+ isstop.value = false;
|
|
|
+ if (count.value == endtime.value) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ count.value++;
|
|
|
+ newcount.value = count.value;
|
|
|
+ fcon.step = count.value;
|
|
|
+ //newtime();
|
|
|
+}
|
|
|
+//回到上一页
|
|
|
+function Prev() {
|
|
|
+ currentrow1.value=false;
|
|
|
+ isstop.value = false;
|
|
|
+ count.value--;
|
|
|
+ fcon.step = count.value;
|
|
|
+ newcount.value = count.value;
|
|
|
+ //newtime();
|
|
|
+}
|
|
|
+// 时间计算
|
|
|
+const newtime = () => {
|
|
|
+ timeshow.value=true;
|
|
|
+ time.value = null;
|
|
|
+ oldtime.value= sessionStorage.getItem('acctime');
|
|
|
+ console.log(oldtime.value);
|
|
|
+ time.value = (new Date(oldtime.value).getTime()) / 1000;
|
|
|
+ if ( count.value == 2) {
|
|
|
+ let time2 = (count.value - 1) * 60 + time.value;
|
|
|
+ timeline.value = timescount(time2);
|
|
|
+ } else {
|
|
|
+ let time2 = (count.value) * 60 + time.value;
|
|
|
+ timeline.value = timescount(time2);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+};
|
|
|
+function sliderchange(val) {
|
|
|
+ suspendshow.value=false;
|
|
|
+ playshow.value=true;
|
|
|
+ isstop.value = false;
|
|
|
+ newcount.value = count.value;
|
|
|
+ fcon.step = count.value;
|
|
|
+
|
|
|
+}
|
|
|
+function vtkGridRead() {
|
|
|
+ aid.value=props.aid
|
|
|
+ fcon.aid = aid.value;
|
|
|
+ console.log(fcon.aid)
|
|
|
+ fcon
|
|
|
+ .initGemetry(aid.value)
|
|
|
+ .then((result) => {
|
|
|
+ console.log(result);
|
|
|
+ fcon
|
|
|
+ .getScalrsByStep(fcon.step)
|
|
|
+ vtkmodel.renderWindowWith.resize();
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+}
|
|
|
+
|
|
|
+// watch(
|
|
|
+// newcount,
|
|
|
+// (newVal, oldVal) => {
|
|
|
+// fcon.step = newVal;
|
|
|
+// getMonitor();
|
|
|
+// vtkScalarRead();
|
|
|
+
|
|
|
+// // vtkScalarRead();
|
|
|
+// if( newVal>=endtime.value){
|
|
|
+// playshow.value=true;
|
|
|
+// suspendshow.value=false;
|
|
|
+// isstop.value = false;
|
|
|
+// }
|
|
|
+// },
|
|
|
+
|
|
|
+// { deep: true }
|
|
|
+// ); //深度监视
|
|
|
+
|
|
|
+
|
|
|
+ defineExpose({expdialog,vtkGridRead});
|
|
|
+ </script>
|
|
|
+ <style lang="scss" scoped>
|
|
|
+.exp{
|
|
|
+
|
|
|
+ display: flex;
|
|
|
+ .expleft{
|
|
|
+ width: 68%;
|
|
|
+ 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;
|
|
|
+ box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
|
|
|
+ margin-right: 2%;
|
|
|
+ }
|
|
|
+ .expright{
|
|
|
+ padding: 10px;
|
|
|
+ width: 30%;
|
|
|
+ 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;
|
|
|
+ box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+.tanniu{
|
|
|
+display: flex;
|
|
|
+justify-content:space-between;
|
|
|
+align-items: center;
|
|
|
+
|
|
|
+}
|
|
|
+ </style>
|