InfoAnimation.vue 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642
  1. <template>
  2. <!-- 所有弹出框 -->
  3. <!-- 推演结果 -->
  4. <div class="l_Dialog">
  5. <el-aside width="278px" class="L_aside1 asideg asidegbg leftbgimg" v-show="monitor">
  6. <div class="result result1">
  7. <el-tabs
  8. v-model="resultactiveName"
  9. type="card"
  10. class="demo-tabs"
  11. @tab-click="handleClick"
  12. >
  13. <el-tab-pane label="当前时间" name="first">
  14. <div class="newtime">{{ newtime }}</div>
  15. </el-tab-pane>
  16. <el-tab-pane label="指定时间" name="second">
  17. <div class="newtime">
  18. <el-date-picker
  19. v-model="zdtime"
  20. type="datetime"
  21. placeholder="Select date and time"
  22. @change="zdtimechange"
  23. />
  24. </div>
  25. </el-tab-pane>
  26. <el-tab-pane label="动画演示" name="third">
  27. <div class="animation_s">
  28. <el-slider
  29. :max="endtime"
  30. :min="starttime"
  31. v-model="count"
  32. @change="sliderchange"
  33. >
  34. </el-slider>
  35. <!-- <el-progress type="line" :percentage="percentage" :color="customColor" :stroke-width="4"/> -->
  36. <div class="tanniu">
  37. <ul>
  38. <li>
  39. <el-image :src="t1" fit="contain" @click="Prev"></el-image>
  40. <p>后退</p>
  41. </li>
  42. <li>
  43. <el-image :src="t2" fit="contain" @click="play(500)"></el-image>
  44. <p>播放</p>
  45. </li>
  46. <li>
  47. <el-image :src="t3" fit="contain" @click="suspend"></el-image>
  48. <p>暂停</p>
  49. </li>
  50. <li>
  51. <el-image :src="t4" fit="contain" @click="increment"></el-image>
  52. <p>快进</p>
  53. </li>
  54. </ul>
  55. </div>
  56. </div>
  57. </el-tab-pane>
  58. </el-tabs>
  59. </div>
  60. </el-aside>
  61. <!-- 监测点 -->
  62. <!-- 监测点 -->
  63. <div
  64. class="demo-collapse jiancedian asideg1 jc_header collapseeion jianstyle"
  65. v-show="monitor"
  66. >
  67. <el-collapse accordion v-model="activeNames">
  68. <el-collapse-item name="1">
  69. <template #title>
  70. <div class="he_pading color1">
  71. <el-form-item label="物理量:" v-if="props.classradio == 'Fire'">
  72. <el-select
  73. v-model="formInline.region"
  74. @change="regionchange($event)"
  75. placeholder="请选择"
  76. >
  77. <el-option
  78. v-for="item in strResultFormatlist"
  79. :key="item.id"
  80. :label="item.name"
  81. :value="item.value"
  82. ></el-option>
  83. </el-select>
  84. </el-form-item>
  85. <div class="woter" v-else>
  86. <span>物理量:</span>
  87. <span>水位</span>
  88. </div>
  89. </div>
  90. </template>
  91. <div class="jc_content tablecolor">
  92. <div class="jc_padding">
  93. <div class="xian" v-if="props.classradio == 'Fire'">
  94. <el-table
  95. :data="tableData2"
  96. style="width: 100%"
  97. @current-change="handleCurrentChange"
  98. :row-class-name="tableRowClassName"
  99. :header-cell-style="{ background: 'rgba(13, 22, 57, 0.96) ' }"
  100. >
  101. <el-table-column prop="name" label="监测点名称" />
  102. <el-table-column prop="value" :label="danwei" />
  103. </el-table>
  104. </div>
  105. <div class="xian" v-else>
  106. <el-table
  107. :data="tableData2"
  108. style="width: 100%"
  109. @current-change="handleCurrentChange"
  110. :row-class-name="tableRowClassName"
  111. :max-height="tableHeight"
  112. :header-cell-style="{ background: 'rgba(13, 22, 57, 0.96) ' }"
  113. >
  114. <el-table-column prop="name" label="监测点名称" />
  115. <el-table-column prop="value" label="水位(m)" />
  116. <el-table-column prop="value2" label="流量" />
  117. </el-table>
  118. </div>
  119. </div>
  120. <div class="jc_header color1">
  121. <span class="jc_tile">信息展示</span>
  122. </div>
  123. <div class="msgval" style="height: 200px">
  124. <ul>
  125. <li v-for="(item, i) in msgval" :key="i">
  126. <span class="namemgd">{{ item.name }}</span>
  127. <span class="namemgd2">{{ item.value }}</span>
  128. </li>
  129. </ul>
  130. </div>
  131. </div>
  132. <!-- <div class="mgsnoe" style="height: 200px"></div> -->
  133. </el-collapse-item>
  134. </el-collapse>
  135. </div>
  136. </div>
  137. </template>
  138. <script setup>
  139. import { computed, ref, onMounted, onBeforeUnmount, reactive, toRef } from "vue";
  140. import { request, uploadFile } from "@/utils/request";
  141. import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus";
  142. import icon from "@/assets/img/icon.png";
  143. import mitts from "@/utils/Bus";
  144. import closeimg from "@/assets/img/colse.png";
  145. import { timestampToTime } from "@/js/lindex.js";
  146. import t1 from "@/assets/img/t1.png";
  147. import t2 from "@/assets/img/t2.png";
  148. import t3 from "@/assets/img/t3.png";
  149. import t4 from "@/assets/img/t4.png";
  150. import { vtkmodel } from "@/control/vtkModel.js";
  151. import { createFireControl } from "@/control/fireControl.js";
  152. import vtkDataArray from "@kitware/vtk.js/Common/Core/DataArray.js";
  153. let labelval = ref("SOS");
  154. const activeNames = ref(["1"]);
  155. let emit = defineEmits([]);
  156. const props = defineProps({
  157. classradio: {
  158. type: String,
  159. // default: '',
  160. },
  161. });
  162. let tableHeight = ref(400);
  163. let danwei = ref("");
  164. let newcount = ref(0);
  165. const count = ref(0);
  166. const isstop = ref(false);
  167. const monitor = ref(false);
  168. const strResultFormatlist = ref([]);
  169. let url = ref("http://localhost:8080/?aid=0");
  170. // 推演结果
  171. const resultactiveName = ref("first");
  172. let newtime = ref("");
  173. let starttime = ref(1);
  174. let endtime = ref(60);
  175. let timenum = ref(2);
  176. let aid = ref();
  177. let timing = ref(null);
  178. let timing3 = ref(null);
  179. let timing2 = ref(null);
  180. let arrowtime = ref(null);
  181. let arrowTmp=1;
  182. let jgSelectPointId = ref(0);
  183. const percentage = ref(20);
  184. const customColor = ref("#409eff");
  185. const tableRowClassName = ({ row, rowIndex }) => {
  186. if (rowIndex % 2 != 0) {
  187. return "evenRow";
  188. }
  189. return "oddRow";
  190. };
  191. const formInline = ref({
  192. region: "Height",
  193. });
  194. const tableData = ref([]);
  195. const tableData2 = ref([
  196. {
  197. name: "",
  198. value: "",
  199. },
  200. ]);
  201. const handleCurrentChange = ({ row, rowIndex }) => {
  202. console.log(row);
  203. };
  204. const min = ref(0);
  205. const max = ref(1);
  206. const job = ref({
  207. jid: 0, // 任务ID
  208. aid: 0, // 事故ID
  209. starttime: "", // 结束时间
  210. endtime: "", // 开始时间
  211. state: "", // 状态
  212. faildes: "", // 失败原因
  213. dt: "", // 时间步长
  214. dx: "", // 空间步长
  215. reportstep: "", // 输出步长
  216. interactionstep: "", // 交互步长
  217. acctime: "", // 事故开始时间
  218. totaltime: "", // 模拟时长
  219. coids: "", // 物理属性ID逗号分隔
  220. cocodes: "", //物理属性code逗号分隔
  221. });
  222. let msgval = ref([]);
  223. //选择结果存储
  224. const selobj = ref([]);
  225. const zdtime = ref("");
  226. const chvals = ref([]);
  227. const cocodes = ref([]);
  228. const cocodeIndex = ref(0);
  229. //监测点Code是否初始化
  230. const cocodeIsInit = ref("false");
  231. //滑块
  232. function sliderchange(val) {
  233. newcount.value = count.value;
  234. fcon.step = count.value;
  235. console.log(count.value);
  236. // console.log(count.value);
  237. // vtkScalarRead();
  238. // getMonitor();
  239. }
  240. //播放
  241. function play(time) {
  242. isstop.value = true;
  243. const sleep = (timeout = time) =>
  244. new Promise((resolve, reject) => {
  245. setTimeout(resolve, timeout);
  246. });
  247. let timer = async (timeout) => {
  248. while (count.value < endtime.value && isstop.value) {
  249. if (isstop.value == true) {
  250. await sleep(time);
  251. count.value++;
  252. fcon.step = count.value;
  253. newcount.value = count.value;
  254. // vtkScalarRead();
  255. // getMonitor();
  256. }
  257. }
  258. };
  259. timer(time);
  260. }
  261. function increment() {
  262. isstop.value = false;
  263. if (count.value == endtime.value) {
  264. return;
  265. }
  266. count.value++;
  267. newcount.value = count.value;
  268. fcon.step = count.value;
  269. // vtkScalarRead();
  270. // getMonitor();
  271. }
  272. //暂停
  273. function suspend() {
  274. isstop.value = false;
  275. }
  276. //回到上一页
  277. function Prev() {
  278. isstop.value = false;
  279. count.value--;
  280. fcon.step = count.value;
  281. newcount.value = count.value;
  282. // vtkScalarRead();
  283. // getMonitor();
  284. }
  285. function zdtimechange() {
  286. const zdtimestamp = Date.parse(zdtime.value);
  287. const zdtimeDate = new Date(zdtimestamp);
  288. reddate(zdtimeDate);
  289. // vtkScalarRead();
  290. // getMonitor();
  291. }
  292. function chengeMonitor() {
  293. for (let index = 0; index < cocodes.value.length; index++) {
  294. if (formInline.value.region == cocodes.value[index].cocode) {
  295. cocodeIndex.value = index + 1;
  296. break;
  297. }
  298. }
  299. tableData2.value = [];
  300. if (props.classradio == "Fire") {
  301. //火
  302. for (let i = 0; i < chvals.value.length; i++) {
  303. let chval = chvals.value[i];
  304. if (cocodeIndex.value == 1) {
  305. tableData2.value.push({
  306. name: chval.chcode,
  307. value: chval.v1,
  308. });
  309. }
  310. if (cocodeIndex.value == 2) {
  311. tableData2.value.push({
  312. name: chval.chcode,
  313. value: chval.v2,
  314. });
  315. }
  316. if (cocodeIndex.value == 3) {
  317. tableData2.value.push({
  318. name: chval.chcode,
  319. value: chval.v3,
  320. });
  321. }
  322. if (cocodeIndex.value == 4) {
  323. tableData2.value.push({
  324. name: chval.chcode,
  325. value: chval.v4,
  326. });
  327. }
  328. if (cocodeIndex.value == 5) {
  329. tableData2.value.push({
  330. name: chval.chcode,
  331. value: chval.v5,
  332. });
  333. }
  334. if (cocodeIndex.value == 6) {
  335. tableData2.value.push({
  336. name: chval.chcode,
  337. value: chval.v6,
  338. });
  339. }
  340. }
  341. } else {
  342. //水
  343. for (let i = 0; i < chvals.value.length; i++) {
  344. let chval = chvals.value[i];
  345. tableData2.value.push({
  346. name: chval.chcode,
  347. value: chval.v1,
  348. value2: chval.v2,
  349. });
  350. }
  351. }
  352. }
  353. function regionchange(val) {
  354. // console.log(val)
  355. let newMap = new Map([
  356. ["Temperature", "(℃)"],
  357. ["Pressure", "(kg/s)"],
  358. ["Pressure", "(kg/s)"],
  359. ["CO2", "(%)"],
  360. ["CO2", "(%)"],
  361. ["H2S", "(%)"],
  362. ["Flow", "(Pa)"],
  363. ["Height", "m"],
  364. ]);
  365. newMap.forEach((value, key) => {
  366. // console.log(key, value);
  367. if (key == val) {
  368. danwei.value = key + value;
  369. }
  370. });
  371. chengeMonitor();
  372. vtkShow();
  373. }
  374. // aid获取
  375. const accident5 = (val, key) => {
  376. aid.value = val;
  377. resultactiveName.value = "first";
  378. if (key == "4") {
  379. cocodeIsInit.value = false;
  380. //获取任务信息
  381. readJob();
  382. } else {
  383. clearInterval(timing.value);
  384. }
  385. // // fireRead()
  386. };
  387. const fcon = createFireControl();
  388. //监测点数据获取
  389. async function getMonitor() {
  390. const params = {
  391. transCode: "D10016",
  392. aid: aid.value,
  393. step: fcon.step,
  394. };
  395. await request(params)
  396. .then((res) => {
  397. if (res.returnCode == "000000000") {
  398. chvals.value = res.chvals;
  399. tableData2.value = [];
  400. for (let i = 0; i < chvals.value.length; i++) {
  401. let chval = chvals.value[i];
  402. tableData2.value.push({
  403. name: chval.chcode,
  404. value: chval.v1,
  405. });
  406. }
  407. //监测点类型初始化
  408. if (!cocodeIsInit.value) {
  409. // console.log(2222);
  410. cocodeIsInit.value = true;
  411. cocodes.value = res.cocodes;
  412. formInline.value.region = cocodes.value[0].cocode;
  413. let newMap = new Map([
  414. ["Temperature", "(℃)"],
  415. ["Pressure", "(kg/s)"],
  416. ["Pressure", "(kg/s)"],
  417. ["CO2", "(%)"],
  418. ["CO2", "(%)"],
  419. ["H2S", "(%)"],
  420. ["Flow", "(Pa)"],
  421. ["Height", "m"],
  422. ]);
  423. newMap.forEach((value, key) => {
  424. if (key == formInline.value.region) {
  425. danwei.value = key + value;
  426. }
  427. });
  428. // danwei.value=cocodes.value[0].cocode;
  429. cocodeIndex.value = 1;
  430. strResultFormatlist.value = [];
  431. for (let index = 0; index < cocodes.value.length; index++) {
  432. const cocode = cocodes.value[index];
  433. strResultFormatlist.value.push({
  434. id: index,
  435. name: cocode.cocode,
  436. value: cocode.cocode,
  437. });
  438. }
  439. } else {
  440. chengeMonitor();
  441. }
  442. } else {
  443. ElMessage({
  444. message: res.returnMsg,
  445. type: "error",
  446. });
  447. }
  448. })
  449. .catch((err) => {});
  450. }
  451. //选择结果定时器
  452. function jgSelect() {
  453. timing2.value = setInterval(() => {
  454. //定时器
  455. if (jgSelectPointId.value != vtkmodel.selectJgPointId) {
  456. // console.log("pointid",vtkmodel.selectJgPointId);//选择的点数据
  457. //获取点对应的Scalar
  458. jgSelectPointId.value = vtkmodel.selectJgPointId;
  459. selobj.value = [];
  460. for (const key of fcon.scalar.keys()) {
  461. selobj.value.push({
  462. name: key,
  463. value: fcon.scalar.get(key)[vtkmodel.selectJgPointId],
  464. });
  465. }
  466. // console.log(vtkmodel.selectJgPointId,selobj.value)
  467. msgval.value = selobj.value;
  468. console.log(msgval.value);
  469. }
  470. }, 1000);
  471. }
  472. function arrowtimeStart(){
  473. arrowtime.value=setInterval(() => {
  474. if(!vtkmodel||!vtkmodel.isJg){
  475. return;
  476. }
  477. console.log("arrowtimeStart");
  478. vtkmodel.clearArrow();
  479. if(arrowTmp==1){
  480. for (let index = 0; index < vtkmodel.arrowActors.length; index=index+10) {
  481. let actor =vtkmodel.arrowActors[index];
  482. vtkmodel.renderer.addActor(actor);
  483. };
  484. vtkmodel.renderWindow.render();
  485. arrowTmp=2;
  486. }else{
  487. for (let index = 3; index < vtkmodel.arrowActors.length; index=index+10) {
  488. let actor =vtkmodel.arrowActors[index];
  489. vtkmodel.renderer.addActor(actor);
  490. };
  491. vtkmodel.renderWindow.render();
  492. arrowTmp=1
  493. }
  494. },1000);
  495. }
  496. //获取任务信息
  497. async function readJob() {
  498. const params = {
  499. transCode: "D10017",
  500. aid: aid.value,
  501. };
  502. await request(params)
  503. .then((res) => {
  504. if (res.returnCode == "000000000") {
  505. //成功
  506. if(res.state=='1'){
  507. vtkmodel.clearModeAddJg(); //隐藏模版显示结果
  508. monitor.value = true;
  509. job.value = res;
  510. reddate(new Date());
  511. getMonitor();
  512. vtkGridRead();
  513. jgSelect();
  514.   timehandclick();
  515. endtime.value= Number(res.totaltime)/Number(res.reportstep);
  516. console.log( endtime.value);
  517. }else if(res.state=='-1'){
  518. ElMessage({
  519. message: " 求解失败",
  520. type: 'error',
  521. });
  522. }else if(res.state=='0'){
  523. ElMessage({ message: "求解未完成", type: 'error',
  524. });
  525. }
  526. } else {
  527. ElMessage({
  528. message: res.returnMsg,
  529. type: "error",
  530. });
  531. }
  532. })
  533. .catch((err) => {
  534. if(err.returnMsg=="任务不存在!"){
  535. monitor.value=false;
  536. console.log(1111)
  537. ElMessage({
  538. message: "未求解",
  539. type: 'error',
  540. });
  541. }
  542. });
  543. }
  544. //获取当前时间最近的步数 读取文件
  545. //当前时间=开始时间+输出步长*输出次数
  546. function reddate(date) {
  547. //当前时间
  548. const timestamp = date.getTime();
  549. // newtime.value = timestampToTime(timestamp);
  550. const accstamp = Date.parse(job.value.acctime);
  551. var timeDifference = parseInt((timestamp - accstamp) / 1000);
  552. fcon.stepsum = parseInt(job.value.totaltime) / parseInt(job.value.reportstep);
  553. max.value = fcon.stepsum;
  554. if (timeDifference < parseInt(job.value.totaltime)) {
  555. //最长时间范围
  556. fcon.step = parseInt(timeDifference / parseInt(job.value.reportstep));
  557. } else {
  558. fcon.step = fcon.stepsum;
  559. }
  560. count.value = fcon.step;
  561. newcount.value = count.value;
  562. // console.log(newcount.value);
  563. }
  564. function vtkGridRead() {
  565. fcon.aid = aid.value;
  566. fcon
  567. .initGemetry()
  568. .then((result) => {
  569. // console.log(fcon.polydata);
  570. vtkScalarRead();
  571. })
  572. .catch((err) => {});
  573. }
  574. //灾情流速文件获取
  575. function velocityRead() {
  576. return;
  577. // clearInterval(arrowtime.value);
  578. fcon
  579. .getVelocityByStep(fcon.step)
  580. .then((result) => {
  581. vtkmodel.addArrow(fcon.velocitys);
  582. // arrowtimeStart();
  583. })
  584. .catch((err) => {
  585. console.log(err);
  586. });
  587. }
  588. function vtkScalarRead() {
  589. fcon
  590. .getScalrsByStep(fcon.step)
  591. .then((result) => {
  592. // console.log(fcon.scalar);
  593. velocityRead() ;
  594. // vtkShow();
  595. gjVtkShow();
  596. })
  597. .catch((err) => {
  598. console.log(err);
  599. });
  600. }
  601. function vtkShow() {
  602. console.log("执行了");
  603. const scalarBarActor = vtkmodel.scalarBarActor;
  604. const mapper = vtkmodel.jgMapper;
  605. const actor = vtkmodel.jgActor;
  606. // console.log(formInline.value.region);
  607. if (!fcon.scalar) {
  608. return;
  609. }
  610. const scalarArray = fcon.scalar.get(formInline.value.region);
  611. if (!scalarArray || !fcon.polydata) {
  612. return;
  613. }
  614. // console.log("scalarArray:", scalarArray);
  615. const dataArray = vtkDataArray.newInstance({
  616. name: formInline.value.region,
  617. size: fcon.polydata.getNumberOfPoints(),
  618. });
  619. // console.log(dataArray);
  620. dataArray.setData(scalarArray);
  621. fcon.polydata.getPointData().setScalars(dataArray);
  622. // fcon.polydata.getPointData().setOpacity(dataArray);
  623. mapper.setInputData(fcon.polydata);
  624. getMinMax(scalarArray);
  625. mapper.setScalarRange(
  626. parseFloat(min.value.toFixed(3)),
  627. parseFloat(max.value.toFixed(3))
  628. ); //设置范围
  629. // actor.setMapper(mapper);
  630. scalarBarActor.setAxisLabel(formInline.value.region);
  631. mapper.clearColorArrays(); //强制重建颜色
  632. actor.getProperty().setOpacity(count.value); //设置错误的透明度使得页面重新加载 不设置不刷新页面
  633. actor.getProperty().setOpacity(0.5);
  634. // vtkmodel.renderer.resetCamera();
  635. vtkmodel.clearModeAddJg();
  636. vtkmodel.renderWindow.render();
  637. }
  638. //告警数据渲染
  639. function gjVtkShow() {
  640. fcon.intgjScalar(props.classradio);
  641. console.log("执行了");
  642. const scalarBarActor = vtkmodel.gjscalarBarActor;
  643. const mapper = vtkmodel.gjMapper;
  644. const actor = vtkmodel.gjActor;
  645. if (!fcon.scalar) {
  646. return;
  647. }
  648. const scalarArray = fcon.gjScalar;
  649. if (!scalarArray || !fcon.polydata) {
  650. return;
  651. }
  652. console.log("告警"+fcon.gjScalar);
  653. const dataArray = vtkDataArray.newInstance({
  654. name: "告警",
  655. size: fcon.polydata.getNumberOfPoints(),
  656. });
  657. dataArray.setData(scalarArray);
  658. fcon.polydata.getPointData().setScalars(dataArray);
  659. mapper.setInputData(fcon.polydata);
  660. getMinMax(scalarArray);
  661. mapper.setScalarRange(
  662. parseFloat(min.value.toFixed(3)),
  663. parseFloat(max.value.toFixed(3))
  664. ); //设置范围
  665. scalarBarActor.setAxisLabel(formInline.value.region);
  666. mapper.clearColorArrays(); //强制重建颜色
  667. actor.getProperty().setOpacity(count.value); //设置错误的透明度使得页面重新加载 不设置不刷新页面
  668. actor.getProperty().setOpacity(0.5);
  669. vtkmodel.clearAllShowGj();
  670. vtkmodel.renderWindow.render();
  671. }
  672. function getMinMax(scalars) {
  673. // console.log("getMinMax:",scalars);
  674. min.value = scalars[0];
  675. max.value = scalars[0];
  676. for (let index = 0; index <= scalars.length; index++) {
  677. let scalar = scalars[index];
  678. if (min.value > scalar) {
  679. min.value = scalar;
  680. }
  681. if (max.value < scalar) {
  682. max.value = scalar;
  683. }
  684. }
  685. // console.log("max,min:", max.value, min.value);
  686. }
  687. const handleClick = (Tab, val) => {
  688. resultactiveName.value = Tab.props.name;
  689. timehandclick();
  690. };
  691. const inittime = () => {
  692. clearInterval(timing.value);
  693. };
  694. const timehandclick = () => {
  695. if (resultactiveName.value == "first") {
  696. timing.value = setInterval(() => {
  697. const timestamp = new Date().getTime();
  698. newtime.value = timestampToTime(timestamp);
  699. // console.log( newtime.value );
  700. reddate(new Date());
  701. }, 1000);
  702. } else if (resultactiveName.value == "second") {
  703. clearInterval(timing.value);
  704. } else if (resultactiveName.value == "third") {
  705. clearInterval(timing.value);
  706. }
  707. };
  708. onBeforeUnmount(() => {
  709. clearInterval(timing.value);
  710. clearInterval(arrowtime.value);
  711. });
  712. onMounted(() => {
  713. // arrowtimeStart();
  714. });
  715. watch(
  716. newcount,
  717. (newVal, oldVal) => {
  718. // console.log("值改变了", newVal, oldVal);
  719. fcon.step = newVal;
  720. vtkScalarRead();
  721. getMonitor();
  722. },
  723. { deep: true }
  724. ); //深度监视
  725. defineExpose({ monitor, accident5 });
  726. </script>
  727. <style lang="scss" scoped>
  728. .jc_padding {
  729. padding: 18px 10px;
  730. }
  731. .line {
  732. border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  733. box-sizing: border-box;
  734. }
  735. .L_aside1 {
  736. .iconimg {
  737. width: 37px;
  738. height: 36px;
  739. margin: 0 7px 0 24px;
  740. }
  741. .Frame2 {
  742. background-image: url(../assets/img/Frame2.png);
  743. background-size: 100%;
  744. background-position: center;
  745. }
  746. .Frame3 {
  747. background-image: url(../assets/img/Frame3.png);
  748. background-repeat: no-repeat;
  749. background-position: center;
  750. }
  751. .el-collapse,
  752. .el-collapse-item__header {
  753. border: none;
  754. ul li {
  755. text-align: left;
  756. }
  757. .inputkuang {
  758. height: 30px;
  759. width: 100%;
  760. background: rgba(13, 22, 57, 0.4);
  761. position: relative;
  762. flex: 1;
  763. .righttext {
  764. display: inline-block;
  765. position: absolute;
  766. right: 10px;
  767. top: 3px;
  768. color: rgba($color: #ffffff, $alpha: 0.8);
  769. }
  770. }
  771. .inputtext_1 {
  772. font-weight: 400;
  773. font-size: 13px;
  774. color: #ffffff;
  775. line-height: 14px;
  776. text-align: left;
  777. font-style: normal;
  778. text-transform: none;
  779. padding: 13px 0 7px 0;
  780. display: inline-block;
  781. }
  782. }
  783. }
  784. .ddd {
  785. margin-top: 20px;
  786. .ddd_div {
  787. padding: 20px 0;
  788. position: relative;
  789. }
  790. .class_btn {
  791. position: absolute;
  792. right: 0;
  793. top: 21px;
  794. }
  795. }
  796. .header_l {
  797. line-height: 10px;
  798. // height: 40px;
  799. text-align: left;
  800. padding: 0 20px;
  801. // border-bottom: 1px solid;
  802. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  803. 1;
  804. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  805. border-radius: 0px 0px 0px 0px;
  806. .el-image {
  807. padding: 10px 10px 0 0;
  808. }
  809. h4 {
  810. font-weight: bold;
  811. font-size: 12px;
  812. color: #68adff;
  813. line-height: 14px;
  814. text-align: left;
  815. font-style: normal;
  816. text-transform: none;
  817. }
  818. }
  819. .tianjia {
  820. display: inline-block;
  821. }
  822. .el-dialog__title {
  823. display: inline-block;
  824. }
  825. .bgcolor {
  826. // width: 482px;
  827. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  828. border-radius: 0px 0px 0px 0px;
  829. border: 1px solid;
  830. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  831. 1;
  832. }
  833. .dialog_class {
  834. .my-header {
  835. line-height: 10px;
  836. height: 40px;
  837. text-align: left;
  838. padding: 0 20px;
  839. border-bottom: 1px solid;
  840. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48))
  841. 1 1;
  842. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  843. border-radius: 0px 0px 0px 0px;
  844. .el-image {
  845. padding: 10px 10px 0 0;
  846. }
  847. h4 {
  848. font-weight: bold;
  849. font-size: 12px;
  850. color: #68adff;
  851. line-height: 14px;
  852. text-align: left;
  853. font-style: normal;
  854. text-transform: none;
  855. }
  856. }
  857. .my_content {
  858. width: 100%;
  859. height: 90px;
  860. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  861. border-radius: 0px 0px 0px 0px;
  862. position: relative;
  863. .radio-group {
  864. display: flex;
  865. justify-content: center;
  866. .el-radio {
  867. flex: 1;
  868. justify-content: center;
  869. font-weight: bold;
  870. font-size: 12px;
  871. color: #ffffff;
  872. line-height: 14px;
  873. }
  874. }
  875. }
  876. .el-dialog__footer {
  877. position: absolute;
  878. bottom: 17px;
  879. display: flex;
  880. .footerbtn {
  881. flex: 1;
  882. text-align: center;
  883. }
  884. }
  885. }
  886. .my_content1 {
  887. .el-table .cell {
  888. font-weight: 400;
  889. font-size: 12px;
  890. color: #ffffff !important;
  891. line-height: 14px;
  892. text-align: left;
  893. font-style: normal;
  894. text-transform: none;
  895. }
  896. }
  897. .l_btn .borderimg {
  898. width: 109px;
  899. height: 30px;
  900. background: rgba(104, 173, 255, 0.3);
  901. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  902. /* border: 1px solid rgba(31, 107, 255, 1); */
  903. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  904. 1;
  905. border-radius: 4px;
  906. display: flex;
  907. display: inline-block;
  908. box-sizing: border-box;
  909. }
  910. .borderimg {
  911. width: 109px;
  912. height: 30px;
  913. background: rgba(104, 173, 255, 0.3);
  914. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  915. /* border: 1px solid rgba(31, 107, 255, 1); */
  916. -o-border-image: linear-gradient(
  917. 180deg,
  918. rgba(31, 107, 255, 1),
  919. rgba(31, 107, 255, 0.48)
  920. )
  921. 1 1;
  922. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  923. 1;
  924. border-radius: 4px;
  925. display: flex;
  926. display: inline-block;
  927. box-sizing: border-box;
  928. }
  929. .el-table,
  930. .el-table thead th {
  931. background-color: rgba(13, 22, 57, 0.96) !important;
  932. }
  933. .L_aside1 {
  934. // height: calc(100vh - 70px);
  935. position: absolute;
  936. top: 70px;
  937. }
  938. .asides_content {
  939. // background: rgba(13,22,57,0.4);
  940. // box-shadow: inset 0px 0px 17px 5px rgba(12,97,197,0.2);
  941. // border-radius: 0px 0px 0px 0px;
  942. // border: 1px solid;
  943. // border-image: linear-gradient(359deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0)) 1 1;
  944. .el-form-item__label {
  945. color: #ffffff !important;
  946. }
  947. }
  948. .asdis_btn {
  949. display: flex;
  950. margin-top: 9px;
  951. .btn {
  952. flex: 1;
  953. width: 145px;
  954. height: 54px;
  955. background-image: url(../assets/img/Rectangle5.png);
  956. background-repeat: no-repeat;
  957. line-height: 54px;
  958. .spantext {
  959. font-weight: bold;
  960. font-size: 12px;
  961. color: #ffffff;
  962. text-align: center;
  963. font-style: normal;
  964. text-transform: none;
  965. }
  966. }
  967. }
  968. .logs {
  969. margin-top: 25px;
  970. border-radius: 0px 0px 0px 0px;
  971. border-top: 1px solid;
  972. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  973. 1;
  974. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  975. h4 {
  976. padding: 10px 0;
  977. font-weight: 400;
  978. font-size: 13px;
  979. color: #ffffff;
  980. line-height: 14px;
  981. text-align: left;
  982. font-style: normal;
  983. text-transform: none;
  984. }
  985. }
  986. .logs_pading {
  987. padding: 13px 20px 23px 24px;
  988. }
  989. .newtime {
  990. height: 112px;
  991. padding: 38px;
  992. font-weight: bold;
  993. font-size: 20px;
  994. color: #ff0f0f;
  995. line-height: 23px;
  996. text-align: center;
  997. font-style: normal;
  998. text-transform: none;
  999. }
  1000. .animation_s {
  1001. padding: 25px;
  1002. }
  1003. .tanniu ul {
  1004. margin-top: 40px;
  1005. display: flex;
  1006. li {
  1007. flex: 1;
  1008. text-align: center;
  1009. p {
  1010. text-align: center;
  1011. font-weight: 400;
  1012. font-size: 12px;
  1013. color: #ffffff;
  1014. line-height: 14px;
  1015. font-style: normal;
  1016. text-transform: none;
  1017. }
  1018. }
  1019. }
  1020. .jiancedian {
  1021. width: 1.7031rem;
  1022. position: fixed;
  1023. right: 0;
  1024. top: 70px;
  1025. background-color: rgb(26,38,69,0.4);
  1026. }
  1027. </style>
  1028. <style>
  1029. /* //.bgcolor */
  1030. .bgcolor {
  1031. border-radius: 0px 0px 0px 0px;
  1032. border: 1px solid;
  1033. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1034. 1;
  1035. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1036. }
  1037. .dialog_class {
  1038. background-color: rgba(13, 22, 57, 0.96) !important;
  1039. width: 482px;
  1040. }
  1041. .el-dialog__header,
  1042. .el-dialog__body,
  1043. .el-dialog__footer {
  1044. padding: 0 !important;
  1045. margin: 0 !important;
  1046. }
  1047. .el-dialog {
  1048. --el-dialog-padding-primary: 0px !important;
  1049. }
  1050. .el-dialog__headerbtn {
  1051. position: absolute;
  1052. top: 2px !important;
  1053. right: 0;
  1054. padding: 0;
  1055. width: 40px !important;
  1056. height: 40px !important;
  1057. background: 0 0;
  1058. border: none;
  1059. outline: 0;
  1060. cursor: pointer;
  1061. font-size: var(--el-message-close-size, 16px);
  1062. }
  1063. .el-icon {
  1064. color: #68adff !important;
  1065. }
  1066. .l_btn .borderimg {
  1067. width: 109px;
  1068. height: 30px;
  1069. background: rgba(104, 173, 255, 0.3);
  1070. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1071. /* border: 1px solid rgba(31, 107, 255, 1); */
  1072. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1073. 1;
  1074. border-radius: 4px;
  1075. display: flex;
  1076. display: inline-block;
  1077. box-sizing: border-box;
  1078. }
  1079. .l_btn .el-button {
  1080. width: 100%;
  1081. height: 100%;
  1082. border-radius: 4px;
  1083. color: #fff;
  1084. background: rgba(104, 173, 255, 0.3);
  1085. border: 1px solid rgba(31, 107, 255, 1);
  1086. }
  1087. .class_footer {
  1088. position: absolute;
  1089. bottom: 17px;
  1090. }
  1091. .footer_div {
  1092. height: 90px;
  1093. padding: 30px 0;
  1094. }
  1095. .l_btn {
  1096. width: 100%;
  1097. bottom: 17px;
  1098. display: flex;
  1099. border-radius: 4px;
  1100. }
  1101. .el-table .el-table__cell {
  1102. padding: 0 !important;
  1103. height: 30px;
  1104. line-height: 30px;
  1105. }
  1106. /* .el-table tr,.el-table th.el-table__cell{
  1107. background-color: rgba(13, 22, 57, 0.96) !important;
  1108. } */
  1109. .el-table td.el-table__cell,
  1110. .el-table th.el-table__cell.is-leaf {
  1111. /* box-shadow: inset 0px 0px 17px 5px rgba(12,97,197,0.2); */
  1112. /* border-radius: 0px 0px 0px 0px;
  1113. border-bottom: 1px solid;
  1114. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1115. 1; */
  1116. }
  1117. .oddRow {
  1118. background-color: rgba(104, 173, 255, 0.2) !important;
  1119. }
  1120. .evenRow {
  1121. background-color: rgba(13, 22, 57, 0.96) !important;
  1122. }
  1123. .my_content1 .el-table .cell {
  1124. font-weight: 400;
  1125. font-size: var(--el-form-label-font-size);
  1126. color: #ffffff !important;
  1127. line-height: 14px;
  1128. text-align: left;
  1129. font-style: normal;
  1130. text-transform: none;
  1131. }
  1132. .el-table--border .el-table__inner-wrapper::after,
  1133. .el-table--border::after,
  1134. .el-table--border::before,
  1135. .el-table__inner-wrapper::before {
  1136. height: 0 !important;
  1137. background-color: rgba(red, green, blue, 0) !important;
  1138. }
  1139. .el-button:focus,
  1140. .el-button:hover {
  1141. background: rgba(104, 173, 255, 1) !important;
  1142. font-weight: bold;
  1143. color: #000 !important;
  1144. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1145. border-radius: 4px 4px 4px 4px;
  1146. border: 1px solid;
  1147. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1148. 1;
  1149. }
  1150. .el-input__wrapper {
  1151. height: 30px;
  1152. background: rgba(104, 173, 255, 0.3) !important;
  1153. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2) !important;
  1154. border-radius: 0px 0px 0px 0px;
  1155. border: 1px solid;
  1156. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1157. 1;
  1158. }
  1159. .ddd_div .el-input__inner {
  1160. border: none;
  1161. /* background: rgba(104,173,255,0.3); */
  1162. }
  1163. .ddd_div .el-form-item__label {
  1164. color: #fff !important;
  1165. }
  1166. .ddd_div .demo-input-suffix {
  1167. width: 100%;
  1168. }
  1169. /* .el-input__inner::placeholder {
  1170. color: #fff !important;
  1171. } */
  1172. .flex1 {
  1173. flex: 1;
  1174. }
  1175. .el-radio__input.is-checked .el-radio__inner {
  1176. border-color: #fff !important;
  1177. background: #fff !important;
  1178. }
  1179. .el-radio__inner {
  1180. border: 2px solid #fff !important;
  1181. background-color: rgba(104, 173, 255, 0) !important;
  1182. border: 1px solid #68adff;
  1183. }
  1184. .asideg .el-collapse-item__header {
  1185. height: 50px !important;
  1186. width: 100%;
  1187. color: #fff;
  1188. background-position: left;
  1189. border: none !important;
  1190. font-weight: bold;
  1191. font-size: 15px;
  1192. color: #ffffff;
  1193. line-height: 18px;
  1194. text-align: left;
  1195. font-style: normal;
  1196. text-transform: none;
  1197. }
  1198. .leftbgimg .el-collapse-item__header {
  1199. background-image: url(../../assets/img/Group10.png) !important;
  1200. }
  1201. .jc_tile {
  1202. padding-left: 20px;
  1203. display: inherit;
  1204. line-height: 58px !important;
  1205. }
  1206. .he_pading {
  1207. padding: 0px 14px 0 13px;
  1208. }
  1209. .asideg1 .el-form-item__label {
  1210. font-weight: 400;
  1211. font-size: 13px;
  1212. color: #ffffff;
  1213. text-align: left;
  1214. font-style: normal;
  1215. text-transform: none;
  1216. }
  1217. .asideg .el-collapse {
  1218. --el-collapse-header-bg-color: none !important;
  1219. }
  1220. .asideg .el-collapse-item__arrow {
  1221. margin: 0 8px 0 auto;
  1222. font-weight: 800;
  1223. color: #fff !important;
  1224. font-weight: bold !important;
  1225. font-size: 20px !important;
  1226. }
  1227. .el-collapse-item__content {
  1228. /* background: rgba(13, 22, 57, 0.2); */
  1229. }
  1230. .asideg .el-input__wrapper {
  1231. background: rgba(104, 173, 255, 0) !important;
  1232. border: 1px solid rgba(31, 107, 255, 1);
  1233. border-radius: 4px;
  1234. box-shadow: none !important;
  1235. }
  1236. .asideg .el-input__inner {
  1237. color: rgba(255, 15, 15, 1);
  1238. font-weight: 400;
  1239. font-size: 16px;
  1240. }
  1241. .el-collapse {
  1242. --el-collapse-header-bg-color: rgba(104, 173, 255, 0) !important;
  1243. --el-collapse-header-text-color: var(--el-text-color-primary);
  1244. --el-collapse-header-font-size: 13px;
  1245. --el-collapse-content-text-color: rgba(104, 173, 255, 0) !important;
  1246. --el-collapse-content-bg-color: rgba(104, 173, 255, 0) !important;
  1247. }
  1248. .asideg .el-collapse-item__content {
  1249. padding: 0 !important;
  1250. }
  1251. .asideg .el-collapse-item__wrap {
  1252. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1253. border-radius: 4px 4px 4px 4px;
  1254. border-bottom: 1px solid;
  1255. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1256. 1;
  1257. }
  1258. #textarea_id {
  1259. height: 226px;
  1260. background: rgba(104, 173, 255, 0) !important;
  1261. border: 1px solid rgba(31, 107, 255, 1);
  1262. border-radius: 4px;
  1263. box-shadow: none !important;
  1264. }
  1265. .asides_content .el-form-item__label {
  1266. color: #ffffff !important;
  1267. font-weight: 400;
  1268. font-size: 13px;
  1269. line-height: 33px;
  1270. text-align: left;
  1271. font-style: normal;
  1272. text-transform: none;
  1273. }
  1274. .el-form-item {
  1275. width: 100%;
  1276. }
  1277. .el-select__wrapper {
  1278. background-color: rgba(104, 173, 255, 0) !important;
  1279. }
  1280. .el-select__wrapper.is-hovering:not(.is-focused),
  1281. .el-select__wrapper {
  1282. box-shadow: none !important;
  1283. border: 1px solid rgba(31, 107, 255, 1);
  1284. border-radius: 4px;
  1285. box-shadow: none !important;
  1286. }
  1287. /* Webkit内核浏览器(Chrome、Safari等)*/
  1288. ::-webkit-scrollbar {
  1289. width: 4px;
  1290. /* 设置滚动条宽度 */
  1291. background-color: #161a2a;
  1292. /* 设置滚动条背景颜色 */
  1293. }
  1294. /* 滑块样式 */
  1295. ::-webkit-scrollbar-thumb {
  1296. border-radius: 2px;
  1297. /* 设置滑块边角半径 */
  1298. background-color: rgba(31, 107, 255, 1);
  1299. /* 设置滑块背景颜色 */
  1300. }
  1301. /* 滑块在hover状态时的样式 */
  1302. ::-webkit-scrollbar-thumb:hover {
  1303. background-color: #555;
  1304. /* 设置滑块在hover状态下的背景颜色 */
  1305. }
  1306. /* 滚动条轨道样式 */
  1307. ::-webkit-scrollbar-track {
  1308. background-color: rgba(104, 173, 255, 0.4);
  1309. /* 设置滚动条轨道背景颜色 */
  1310. }
  1311. .result {
  1312. background-color: rgba(13, 22, 57, 0.6);
  1313. }
  1314. .result .el-tabs__item {
  1315. padding: 17.5px !important;
  1316. font-weight: bold;
  1317. font-size: 14px;
  1318. color: #ffffff;
  1319. line-height: 16px;
  1320. text-align: center;
  1321. font-style: normal;
  1322. text-transform: none;
  1323. }
  1324. .el-tabs--card > .el-tabs__header,
  1325. .el-tabs--card > .el-tabs__header,
  1326. .el-tabs--card > .el-tabs__header .el-tabs__nav {
  1327. border: none !important;
  1328. }
  1329. .el-tabs {
  1330. --el-tabs-header-height: 70px !important;
  1331. }
  1332. .result .el-tabs__item {
  1333. border-left: 1px solid;
  1334. border-right: 1px solid;
  1335. border-bottom: 1px solid;
  1336. border-image: linear-gradient(180deg, rgb(31, 107, 255), rgba(31, 107, 255, 0.48)) 1 1;
  1337. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1338. border-radius: 0px 0px 0px 0px;
  1339. font-weight: bold;
  1340. font-size: 14px;
  1341. color: #fff;
  1342. line-height: 23px;
  1343. text-align: center;
  1344. font-style: normal;
  1345. text-transform: none;
  1346. }
  1347. .result .is-active {
  1348. height: 70px;
  1349. background: radial-gradient(ellipse at 54px 0px, #3aa0ff -37%, #123066 53%);
  1350. border-radius: 0px 0px 0px 0px;
  1351. border: 2px solid;
  1352. color: rgba(255, 15, 15, 1) !important;
  1353. border-left: 1px solid rgba(16, 92, 240, 1);
  1354. border-right: 1px solid rgba(18, 48, 102, 1);
  1355. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1 1;
  1356. }
  1357. .result .el-tabs__item:hover {
  1358. color: rgba(255, 15, 15, 1);
  1359. cursor: pointer;
  1360. }
  1361. .result .el-tabs__header {
  1362. padding: 0 !important;
  1363. margin: 0 !important;
  1364. }
  1365. .result .el-tabs__content {
  1366. border: 1px solid;
  1367. color: rgba(255, 15, 15, 1) !important;
  1368. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1 1;
  1369. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1370. border-radius: 0px 0px 0px 0px;
  1371. position: relative;
  1372. }
  1373. .result .el-tabs__content {
  1374. width: 278px;
  1375. }
  1376. .el-slider__button {
  1377. height: 10px;
  1378. width: 10px;
  1379. }
  1380. .color1 {
  1381. font-weight: 400;
  1382. font-size: 13px;
  1383. color: #ffffff;
  1384. line-height: 14px;
  1385. text-align: left;
  1386. font-style: normal;
  1387. text-transform: none;
  1388. }
  1389. .jc_padding .el-table .cell {
  1390. font-weight: 400;
  1391. font-size: .0677rem;
  1392. color: #ffffff;
  1393. line-height: 14px;
  1394. text-align: left;
  1395. font-style: normal;
  1396. text-transform: none;
  1397. }
  1398. .tianjia .el-dialog__body {
  1399. padding: 20px !important;
  1400. }
  1401. .tianjia .el-form-item__label {
  1402. color: #fff;
  1403. }
  1404. .tianjia .el-input__inner {
  1405. color: #fff;
  1406. font-size: 14px;
  1407. font-weight: 400;
  1408. text-align: left;
  1409. padding: 20px 0;
  1410. height: 30px;
  1411. line-height: 47px;
  1412. }
  1413. .ddd_div .el-input__inner {
  1414. color: #fff;
  1415. }
  1416. .pagination {
  1417. margin-top: 30px;
  1418. display: flex;
  1419. justify-content: center;
  1420. }
  1421. .pagination .el-pagination__total {
  1422. color: #fff;
  1423. }
  1424. .el-pagination.is-background .btn-next.is-disabled,
  1425. .el-pagination.is-background .btn-next:disabled,
  1426. .el-pagination.is-background .btn-prev.is-disabled,
  1427. .el-pagination.is-background .btn-prev:disabled,
  1428. .el-pagination.is-background .el-pager li.is-disabled,
  1429. .el-pagination.is-background .el-pager li:disabled {
  1430. background: rgba(104, 173, 255, 0.3) !important;
  1431. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2) !important;
  1432. border-radius: 0px 0px 0px 0px;
  1433. border: 1px solid;
  1434. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1435. 1;
  1436. }
  1437. .delecttitle {
  1438. font-size: 14px;
  1439. font-weight: bold;
  1440. color: #fff;
  1441. }
  1442. .collapseeion .el-select .el-input__inner {
  1443. color: #fff;
  1444. }
  1445. .el-collapse-item__wrap {
  1446. border-bottom: 1px solid;
  1447. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1
  1448. 1;
  1449. }
  1450. .el-collapse {
  1451. --el-collapse-border-color: rgba(31, 107, 255, 0.48);
  1452. }
  1453. .jc_header .el-collapse-item__header {
  1454. width: 100%;
  1455. height: 52px;
  1456. line-height: 52px;
  1457. background-image: url(../../assets/img/Group24.png) !important;
  1458. background-repeat: no-repeat;
  1459. background-position: center;
  1460. }
  1461. .jianstyle .el-collapse-item__arrow {
  1462. margin: 0 8px 0 auto;
  1463. font-weight: 800;
  1464. color: #fff !important;
  1465. font-weight: bold !important;
  1466. font-size: 20px !important;
  1467. }
  1468. .result1 .el-collapse-item__content {
  1469. padding: 0 !important;
  1470. }
  1471. .msgval {
  1472. padding: 18px 10px;
  1473. }
  1474. .msgval ul li {
  1475. display: flex;
  1476. }
  1477. .msgval ul li span {
  1478. display: inline-block;
  1479. flex: 1;
  1480. color: #fff;
  1481. }
  1482. .namemgd {
  1483. text-align: left;
  1484. padding-left: 50px;
  1485. }
  1486. .namemgd2 {
  1487. text-align: left;
  1488. }
  1489. </style>