InfoAnimation.vue 33 KB

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