InfoAnimation.vue 38 KB

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