InfoDialoges.vue 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794
  1. <template>
  2. <!-- 所有弹出框 -->
  3. <div class="l_Dialog tuiy">
  4. <!-- 灾害类型 -->
  5. <el-dialog v-model="dialogVisible" width="482" align-center :modal="false" :close-on-click-modal="false"
  6. draggable class="dialog_class bgcolor">
  7. <template #header="{ titleId, titleClass }">
  8. <div class="my-header">
  9. <el-image :src="icon" fit="contain"></el-image>
  10. <h4 :id="titleId" :class="titleClass">灾害类型</h4>
  11. </div>
  12. </template>
  13. <div class="my_content">
  14. <el-radio-group v-model="classradio1" class="radio-group">
  15. <el-radio label="Fire">火灾</el-radio>
  16. <el-radio label="Water">突水</el-radio>
  17. <!-- <el-radio label="9">瓦斯爆炸</el-radio> -->
  18. </el-radio-group>
  19. </div>
  20. <template #footer>
  21. <div class="dialog-footer class_footer l_btn ">
  22. <div class="footerbtn">
  23. <div class="borderimg"><el-button @click="dialogVisible = false">取消</el-button></div>
  24. </div>
  25. <div class="footerbtn">
  26. <div class="borderimg"><el-button @click="classclick(); dialogVisible= false;">
  27. 确定
  28. </el-button></div>
  29. </div>
  30. </div>
  31. </template>
  32. </el-dialog>
  33. <!--火灾 事故列表 -->
  34. <el-dialog v-model="dialog.dialogVisible_fire" width="600" :modal="false" :close-on-click-modal="false"
  35. draggable class="dialog_class bgcolor tablefocus">
  36. <template #header="{ titleId, titleClass }">
  37. <div class="my-header">
  38. <el-image :src="icon" fit="contain"></el-image>
  39. <h4 :id="titleId" :class="titleClass"> 事故列表</h4>
  40. </div>
  41. </template>
  42. <div class="my_content1 bgcolor tablefocus scoperadio ">
  43. <el-table :data="tableData" style="width: 100%" v-loading="loading" element-loading-text="Loading..."
  44. :highlight-current-row="currentrow"
  45. element-loading-background="rgba(0, 10, 0, 0.1)" :row-class-name="tableRowClassName"
  46. :header-cell-style="{ 'background': ' #375A88' }" @select="projectsSelectionSelect">
  47. <el-table-column width="50">
  48. <template #default="scope">
  49. <el-radio v-model="scoperadio" :label="scope.row.aid"
  50. @change="getRadioRow(scope.row)"></el-radio>
  51. </template>
  52. </el-table-column>
  53. <el-table-column type="index" label="序号" width="50" />
  54. <el-table-column prop="name" label="名称" />
  55. <el-table-column prop="name" label="来源" width="120" />
  56. <el-table-column prop="time" label="时间" width="180" />
  57. </el-table>
  58. <div class="demo-pagination-block pagination">
  59. <el-pagination v-model:current-page="currentPage4" v-model:page-size="pageSize4" small background
  60. layout="prev, total,pager, next, jumpe," :total="parseInt(total)" class="mt-4"
  61. @current-change="handleCurrentChange2" />
  62. </div>
  63. <div class="dialog-footer footer_div l_btn">
  64. <div class="footerbtn flex1">
  65. <div class="borderimg"><el-button @click="addsg('1');">添加</el-button></div>
  66. </div>
  67. <div class="footerbtn flex1">
  68. <div class="borderimg"><el-button @click="addsg('2')">
  69. 修改
  70. </el-button></div>
  71. </div>
  72. <div class="footerbtn flex1">
  73. <div class="borderimg"><el-button @click="dialog.dialogsgdelect = true; dialog.dialogForm = false;">
  74. 删除
  75. </el-button></div>
  76. </div>
  77. <div class="footerbtn flex1">
  78. <div class="borderimg"><el-button @click="accident()">
  79. 确定
  80. </el-button></div>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="ddd" v-show="dialog.dialogForm">
  85. <div class="header_l">
  86. <el-image :src="icon" fit="contain"></el-image>
  87. <h4 class="tianjia"> {{ shigtext }}</h4>
  88. <div class="closeimg" @click="dialog.dialogForm = false"><el-image :src="closeimg" fit="contain"
  89. style="margin-top: -10px;"></el-image></div>
  90. <div class="ddd_div" style="display: flex;">
  91. <div class="demo-input-suffix firsttitle magintop">
  92. <el-form-item label="事故名称">
  93. <el-input v-model="formull.name" class="w-50 m-2" :placeholder="placeholder" />
  94. </el-form-item>
  95. <div class="l_btn class_btn" style="width: auto;">
  96. <div class="footerbtn">
  97. <div class="borderimg"><el-button @click="sgadd()">
  98. 确定
  99. </el-button></div>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <el-dialog v-model="dialog.dialogsgdelect" width="400" class="dialog_class bgcolor tianjia">
  107. <template #header="{ titleId, titleClass }">
  108. <div class="my-header ">
  109. <el-image :src="icon" fit="contain"></el-image>
  110. <h4 :id="titleId" :class="titleClass">删除</h4>
  111. </div>
  112. </template>
  113. <h4 class="delecttitle"> 是否确认删除<span class="spanclad">{{ idobj.name }}</span></h4>
  114. <div class="dialog-footer footer_div l_btn">
  115. <div class="footerbtn flex1">
  116. <div class="borderimg"><el-button @click="dialog.dialogsgdelect = false">取消</el-button></div>
  117. </div>
  118. <div class="footerbtn flex1">
  119. <div class="borderimg"><el-button @click="sgdelect(); dialog.dialogsgdelect = false">
  120. 确定
  121. </el-button></div>
  122. </div>
  123. </div>
  124. </el-dialog>
  125. </el-dialog>
  126. <!--火灾左侧栏-->
  127. <div class="common-layout" style="margin: 0;" v-show="leftcoll.collfire">
  128. <el-aside width="278px" class="L_aside L_aside1 asideg asidegbg leftbgimg">
  129. <div class="demo-collapse">
  130. <el-collapse v-model="coolactiveName" accordion>
  131. <el-collapse-item name="1">
  132. <template #title>
  133. <el-icon class="iconimg Frame2" fit="contain"></el-icon>
  134. 火灾<el-icon class="header-icon">
  135. </el-icon>
  136. </template>
  137. <div class="asides_content">
  138. <el-form :inline="true" :model="tuiyanobj" class="demo-form-inline">
  139. <div class="l_padding " style="padding:20px 20px 20px 24px; ">
  140. <div class="line selecwidth">
  141. <el-form-item label="污染物选择:">
  142. <!-- <el-select v-model="options.coid" multiple filterable allow-create
  143. default-first-option :reserve-keyword="false" value-key="code"
  144. @change="selectchange($event)" placeholder="请选择">
  145. <el-option v-for="item in options" :key="item.coid"
  146. :label="item.code" :value="item" />
  147. </el-select> -->
  148. <el-select v-model="value" multiple filterable allow-create
  149. default-first-option :reserve-keyword="false" value-key="code"
  150. @change="selectchange($event)" placeholder="请选择">
  151. <el-option v-for="item in options" :key="item.coid"
  152. :label="item.code" :value="item" />
  153. </el-select>
  154. </el-form-item>
  155. </div>
  156. <ul>
  157. <li>
  158. <div class="demo-datetime-picker">
  159. <span class="inputtext_1">选择时间</span>
  160. <div class="block">
  161. <el-date-picker v-model="tuiyanobj.pickertime" type="datetime"
  162. placeholder="Pick a Date" format="YYYY-MM-DD HH:mm:ss"
  163. @change="timeclick()" />
  164. </div>
  165. </div>
  166. </li>
  167. <li><span class="inputtext_1">时间步长</span>
  168. <div class="inputkuang"> <el-input v-model="tuiyanobj.dt" />
  169. <span class="righttext">s</span>
  170. </div>
  171. </li>
  172. <li><span class="inputtext_1">空间步长</span>
  173. <div class="inputkuang"> <el-input v-model="tuiyanobj.dx" />
  174. <span class="righttext">m</span>
  175. </div>
  176. </li>
  177. <li><span class="inputtext_1">模拟时长</span>
  178. <div class="inputkuang"> <el-input v-model="tuiyanobj.totaltime" />
  179. <span class="righttext">s</span>
  180. </div>
  181. </li>
  182. <li><span class="inputtext_1">输出步长</span>
  183. <div class="inputkuang"> <el-input v-model="tuiyanobj.reportstep" />
  184. <span class="righttext">s</span>
  185. </div>
  186. </li>
  187. <li><span class="inputtext_1">交互步长</span>
  188. <div class="inputkuang"> <el-input
  189. v-model="tuiyanobj.interactionstep" />
  190. <span class="righttext">s</span>
  191. </div>
  192. </li>
  193. </ul>
  194. </div>
  195. <div class="asdis_btn">
  196. <div class="btn"><span class="spantext" @click="initial();">初始数据</span></div>
  197. <div class="btn"><span class="spantext" @click="calculate();">开始计算</span></div>
  198. </div>
  199. <div class=" logs">
  200. <div class="logs_pading">
  201. <h4>模拟日志</h4>
  202. <div class="footerTextBox">
  203. <el-input class="footerText" type="textarea" id="textarea_id"
  204. v-model="rizhi.logs"></el-input>
  205. </div>
  206. </div>
  207. </div>
  208. </el-form>
  209. </div>
  210. </el-collapse-item>
  211. </el-collapse>
  212. </div>
  213. </el-aside>
  214. </div>
  215. <!-- 突水 -->
  216. <div class="common-layout" style="margin: 0;" v-show="leftcoll.collwater">
  217. <el-aside width="278px" class="L_aside L_aside1 asideg asidegbg leftbgimg">
  218. <div class="demo-collapse">
  219. <el-collapse v-model="coolactiveName" accordion>
  220. <el-collapse-item name="1">
  221. <template #title>
  222. <el-icon class="iconimg Frame3" fit="contain"></el-icon>
  223. 突水<el-icon class="header-icon">
  224. </el-icon>
  225. </template>
  226. <div class="asides_content">
  227. <el-form :inline="true" :model="tuiyanobj" class="demo-form-inline">
  228. <div class="l_padding " style="padding:20px 20px 20px 24px; ">
  229. <ul>
  230. <li>
  231. <div class="demo-datetime-picker">
  232. <span class="inputtext_1">选择时间</span>
  233. <div class="block">
  234. <el-date-picker v-model="tuiyanobj.pickertime" type="datetime"
  235. placeholder="Pick a Date" format="YYYY-MM-DD HH:mm:ss"
  236. value-format="YYYY-MM-DD HH:mm:ss" @change="timeclick()" />
  237. </div>
  238. </div>
  239. </li>
  240. <li><span class="inputtext_1">时间步长</span>
  241. <div class="inputkuang"> <el-input v-model="tuiyanobj.dt" />
  242. <span class="righttext">s</span>
  243. </div>
  244. </li>
  245. <li><span class="inputtext_1">空间步长</span>
  246. <div class="inputkuang"> <el-input v-model="tuiyanobj.dx" />
  247. <span class="righttext">m</span>
  248. </div>
  249. </li>
  250. <li><span class="inputtext_1">模拟时长</span>
  251. <div class="inputkuang"> <el-input v-model="tuiyanobj.totaltime" />
  252. <span class="righttext">s</span>
  253. </div>
  254. </li>
  255. <li><span class="inputtext_1">输出步长</span>
  256. <div class="inputkuang"> <el-input v-model="tuiyanobj.reportstep" />
  257. <span class="righttext">s</span>
  258. </div>
  259. </li>
  260. <li><span class="inputtext_1">交互步长</span>
  261. <div class="inputkuang"> <el-input
  262. v-model="tuiyanobj.interactionstep" />
  263. <span class="righttext">s</span>
  264. </div>
  265. </li>
  266. </ul>
  267. </div>
  268. <div class="asdis_btn">
  269. <div class="btn"><span class="spantext" @click="initial();">初始数据</span></div>
  270. <div class="btn"><span class="spantext" @click="calculate();">开始计算</span></div>
  271. </div>
  272. <div class=" logs">
  273. <div class="logs_pading">
  274. <h4>模拟日志</h4>
  275. <div class="footerTextBox">
  276. <el-input class="footerText" type="textarea" id="textarea_id"
  277. v-model="rizhi.logs"></el-input>
  278. </div>
  279. </div>
  280. </div>
  281. </el-form>
  282. </div>
  283. </el-collapse-item>
  284. </el-collapse>
  285. </div>
  286. </el-aside>
  287. </div>
  288. </div>
  289. </template>
  290. <!-- timestampToTime -->
  291. <script setup>
  292. import { computed, ref, onMounted, reactive, toRef } from "vue";
  293. import { request, uploadFile } from "@/utils/request";
  294. import { ElMessage, ElButton, ElDialog, ElSelect, formEmits } from 'element-plus'
  295. import icon from "@/assets/img/icon.png";
  296. import Frame2 from "@/assets/img/Frame2.png";
  297. import t1 from "@/assets/img/t1.png";
  298. import t2 from "@/assets/img/t2.png";
  299. import t3 from "@/assets/img/t3.png";
  300. import t4 from "@/assets/img/t4.png";
  301. import mitts from "@/utils/Bus"
  302. import closeimg from "@/assets/img/colse.png";
  303. import { timestampToTime } from '@/js/lindex.js'
  304. import { vtkmodel } from "@/control/vtkModel.js";
  305. const changeModel= ()=> {
  306. vtkmodel.clearJgAddMode();
  307. vtkmodel.renderWindow.render();
  308. }
  309. let currentrow=ref(false);
  310. let placeholder=ref('某次某事件火灾事故');
  311. let emit = defineEmits(['headerclick', 'childfun', 'moxingclick','handleSelect','leftsimulation'])
  312. const props = defineProps({
  313. addselect: {
  314. type: Function,
  315. required: true,
  316. },
  317. headerobj: {
  318. type: Object,
  319. },
  320. valzaiqing:{
  321. type:String
  322. }
  323. });
  324. let startlog=ref('0');
  325. let shigtext = ref('');
  326. let websock = ref(null);
  327. let times = ref({
  328. lockReconnect: false, //是否真正建立连接
  329. timeout: 28 * 1000, //30秒一次心跳
  330. timeoutObj: null, //心跳倒计时
  331. serverTimeout0bj: null, //
  332. timeoutnum: null, //断开重连倒计时
  333. })
  334. let zqname = ref({});
  335. let shiguobj = ref({
  336. source: '自荐',
  337. type: '预演',
  338. sid: '-1'
  339. })
  340. let sgdata = ref({});
  341. let formull = ref({
  342. source: '',
  343. name: ''
  344. })
  345. let idobj = ref({
  346. sgaid: "",
  347. name: "",
  348. time: ""
  349. })
  350. const value1 = ref('')
  351. let loading = ref(true)
  352. let aid = ref();
  353. let firepid = ref("");
  354. let firesid = ref("");
  355. const currentPage4 = ref(1);
  356. const pageSize4 = ref(3)
  357. let total = ref(1);
  358. const dialogVisible = ref(true);
  359. const classradio = ref();
  360. let classradio1 = ref('Fire');
  361. const leftcoll = ref({
  362. collfire: false,
  363. collwater: false,
  364. });
  365. const monitor = ref(false);
  366. const dialog = ref({
  367. dialogVisible_fire: false,
  368. jianced: true,
  369. monitor: false,
  370. dialogForm: false,
  371. dialogsgdelect: false,
  372. })
  373. let tuiyanobj = ref({
  374. value: [''],
  375. pickertime: '24-03-06 00:00:00',
  376. acctime: '2024-03-06 00:00:00',
  377. dt: '',
  378. dx: '',
  379. reportstep: '',
  380. interactionstep: '',
  381. totaltime: '',
  382. coids: '',
  383. cocodes: ''
  384. })
  385. let tuiyanobj2 = ref({
  386. value: ['SO2'],
  387. pickertime: '',
  388. acctime: '2024-03-06 00:00:00',
  389. dt: '0.1',
  390. dx: '10',
  391. reportstep: '60',
  392. interactionstep: '3600',
  393. totaltime: '3600',
  394. coids: '1',
  395. cocodes: 'CO2'
  396. })
  397. let tuiyanobj3 = ref({
  398. value: ['SO2'],
  399. pickertime: '',
  400. acctime: '2024-03-06 00:00:00',
  401. dt: '5',
  402. dx: '5',
  403. reportstep: '60',
  404. interactionstep: '3600',
  405. totaltime: '3600',
  406. coids: '1',
  407. cocodes: 'CO2'
  408. })
  409. let tableobj = ref({});
  410. let coolactiveName = ref(["1", "2"]);
  411. let newlog = ref("");
  412. let rizhi = ref({
  413. top: "50px",
  414. logs: '',
  415. left: "90px"
  416. });
  417. let formLabelWidth5 = ref('130px');
  418. const formInline = ref({
  419. user: '11',
  420. region: 'shanghai',
  421. date: '',
  422. })
  423. const value = ref([])
  424. const options = ref([])
  425. let arrvalue=ref([]);
  426. let scoperadio = ref(1);
  427. // 推演结果
  428. const customColor = ref('#409eff')
  429. const tableRowClassName = ({ row, rowIndex }) => {
  430. if (rowIndex % 2 != 0) {
  431. return 'evenRow';
  432. }
  433. return 'oddRow';
  434. }
  435. const tableData = ref([]);
  436. const tableData2 = [
  437. {
  438. date: '站点1',
  439. name: '2',
  440. address: '10',
  441. },
  442. {
  443. date: '站点1',
  444. name: '2',
  445. address: '10',
  446. },
  447. {
  448. date: '站点1',
  449. name: '2',
  450. address: '10',
  451. },
  452. {
  453. date: '站点1',
  454. name: '2',
  455. address: '10',
  456. },
  457. ]
  458. const handleCurrentChange = ({ row, rowIndex }) => {
  459. // console.log(row);
  460. }
  461. // aid获取
  462. // 类型选择
  463. const classclick = () => {
  464. scoperadio.value="";
  465. dialog.value.dialogVisible_fire = true;
  466. classradio.value = classradio1.value;
  467. props.addselect();
  468. getdata();
  469. }
  470. // 事故确定列表
  471. const accident = () => {
  472. if (idobj.value.name == '') {
  473. ElMessage.error('请选择项目')
  474. } else {
  475. if(props.valzaiqing=='模拟数据'){
  476. const params = {
  477. transCode: 'D10017',
  478. aid:aid.value,
  479. }
  480. request(params)
  481. .then((res) => {
  482. emit("leftsimulation",res);
  483. })
  484. .catch((err) => {
  485. ElMessage.error(err.returnMsg)
  486. })
  487. }else{
  488.    initWebSocket();
  489.   rizhi.value.logs='';
  490.     newlog.value ='';
  491. emit('headerclick', sgdata.value);
  492. emit('childfun');
  493. emit('moxingclick', true);
  494. pollute();
  495. emit('handleSelect', '1');
  496. fetchFileContent();
  497. }
  498. dialog.value.dialogVisible_fire = false;
  499. }
  500. }
  501. const accident2 = (key) => {
  502. if (key == '3') {
  503. if (classradio.value== "Fire") {
  504. leftcoll.value.collfire = true;
  505. } else if (classradio.value== "Water") {
  506. leftcoll.value.collwater = true;
  507. } else {
  508. }
  509. rewu();
  510. } else {
  511. leftcoll.value.collfire = false;
  512. leftcoll.value.collwater = false;
  513. }
  514. }
  515. //事故添加列表
  516. const sgadd = () => {
  517. const params = {
  518. transCode: 'D00002',
  519. source: shiguobj.value.source,
  520. type: shiguobj.value.type,
  521. name: formull.value.name,
  522. stype: classradio.value,
  523. sid: shiguobj.value.sid,
  524. aid: aid.value
  525. }
  526. request(params)
  527. .then((res) => {
  528. dialog.value.dialogForm = false;
  529. getdata();
  530. scoperadio.value = null;
  531. })
  532. .catch((err) => {
  533. ElMessage.error(err.returnMsg)
  534. })
  535. }
  536. // 事故列表的选择
  537. const getRadioRow = (val) => {
  538. currentrow.value=true;
  539. sgdata.value = (val);
  540. console.log(tableobj.value)
  541. formull.value.name = val.name;
  542. aid.value = val.aid;
  543. idobj.value.name = val.name;
  544. idobj.value.time = val.time;
  545. }
  546. function handleCurrentChange2(val) {
  547. currentPage4.value = val;
  548. getdata();
  549. }
  550. // 事故添加按钮
  551. const addsg = (val) => {
  552. if (val == '1') {
  553. currentrow.value=false;
  554. shigtext.value = '事故添加';
  555. aid.value = 0;
  556. formull.value.name = '';
  557. } else if (val == '2') {
  558. shigtext.value = '事故修改';
  559. formull.value.name = idobj.value.name
  560. }
  561. dialog.value.dialogForm = true;
  562. }
  563. // 事故删除
  564. const sgdelect = () => {
  565. const params = {
  566. transCode: 'D000016',
  567. aid: aid.value,
  568. }
  569. request(params)
  570. .then((res) => {
  571. getdata();
  572. ElMessage({
  573. message: '删除成功',
  574. type: 'success',
  575. })
  576. })
  577. .catch((err) => {
  578. loading.value = false;
  579. ElMessage.error(err.returnMsg)
  580. })
  581. }
  582. //事故获取列表
  583. const getdata = () => {
  584. if(classradio.value== "Fire"){
  585. placeholder.value='某次某事件火灾事故'
  586. } else if (classradio.value== "Water") {
  587. placeholder.value='某次某事件突水事故'
  588. }else{
  589. }
  590. const params = {
  591. transCode: 'D00003',
  592. count: pageSize4.value,
  593. page: currentPage4.value,
  594. aid: aid.value,
  595. stype: classradio.value,
  596. }
  597. request(params)
  598. .then((res) => {
  599. loading.value = false;
  600. tableData.value = res.rows;
  601. total.value = res.total;
  602. })
  603. .catch((err) => {
  604. loading.value = false;
  605. ElMessage.error(err.returnMsg)
  606. })
  607. }
  608. // 污染物的查询
  609. const pollute = () => {
  610. value.value=[];
  611. const params = {
  612. transCode: 'D10013',
  613. }
  614. request(params)
  615. .then((res) => {
  616. options.value = res.rows;
  617. value.value.push(res.rows[0]);
  618. })
  619. .catch((err) => {
  620. ElMessage.error(err.returnMsg)
  621. })
  622. }
  623. //任务求解任务信息
  624. const rewu=()=>{
  625. arrvalue.value=[];
  626. const params = {
  627. transCode: 'D10017',
  628. aid:aid.value,
  629. }
  630. request(params)
  631. .then((res) => {
  632. arrvalue.value=res.cocodes.split(',');
  633. tuiyanobj.value=res;
  634. tuiyanobj.value.pickertime=res.acctime;
  635. console.log(tuiyanobj.value.acctime)
  636. console.log(options.value.length);
  637. value.value=arrvalue.value;
  638. value.value=[];
  639. for (let i = 0; i <options.value.length; i++){
  640. console.log(options.value[i])
  641. for (let j = 0; j < arrvalue.value.length; j++){
  642. if(options.value[i].code==arrvalue.value[j]){
  643. value.value.push(options.value[i]);
  644. }
  645. }
  646. }
  647. })
  648. .catch((err) => {
  649. // ElMessage.error(err.returnMsg)
  650. addinitial();
  651. })
  652. }
  653. //默认时间
  654. const inititimeDefaultal = () => {
  655. var date = new Date();
  656. var timeStamp = Date.parse(date)
  657. var s1 = timestampToTime(timeStamp);
  658. return s1;
  659. }
  660. // 初始数据
  661. const initial = () => {
  662. addinitial();
  663. }
  664. const addinitial=()=>{
  665. if (classradio.value == "Fire") {
  666. tuiyanobj2.value.pickertime = inititimeDefaultal();
  667. tuiyanobj2.value.acctime = inititimeDefaultal();
  668. tuiyanobj2.value.cocodes = options.value[0].code;
  669. tuiyanobj2.value.coids=options.value[0].coid;
  670. tuiyanobj.value = tuiyanobj2.value;
  671. } else {
  672. tuiyanobj3.value.pickertime = inititimeDefaultal();
  673. tuiyanobj3.value.acctime = inititimeDefaultal();
  674. tuiyanobj.value = tuiyanobj3.value;
  675. }
  676. }
  677. function zdtimechange() {
  678. }
  679. const timeclick = () => {
  680. var timeStamp = Date.parse(tuiyanobj.value.pickertime)
  681. tuiyanobj.value.acctime = timestampToTime(timeStamp);
  682. }
  683. // 下拉多选
  684. const selectchange = (val) => {
  685. console.log(val);
  686. let arr1 = [];
  687. let arr2 = [];
  688. for (let i = 0; i <= val.length - 1; i++) {
  689. console.log(val[i])
  690. arr1.push(val[i].coid);
  691. arr2.push(val[i].code);
  692. }
  693. tuiyanobj.value.coids = arr1.join(',');
  694. tuiyanobj.value.cocodes = arr2.join(',');
  695. }
  696. //推演的开始计算
  697. const calculate = () => {
  698. rizhi.value.logs='';
  699. newlog.value ='';
  700. const params = {
  701. transCode: 'D00008',
  702. aid: aid.value,
  703. acctime: tuiyanobj.value.acctime,
  704. dt: tuiyanobj.value.dt,
  705. dx: tuiyanobj.value.dx,
  706. reportstep: tuiyanobj.value.reportstep,
  707. interactionstep: tuiyanobj.value.interactionstep,
  708. totaltime: tuiyanobj.value.totaltime,
  709. coids: tuiyanobj.value.coids,
  710. cocodes: tuiyanobj.value.cocodes,
  711. }
  712. request(params)
  713. .then((res) => {
  714. // initWebSocket();
  715. })
  716. .catch((err) => {
  717. ElMessage.error(err.returnMsg)
  718. })
  719. }
  720. const projectsSelectionSelect = () => {
  721. }
  722. // 日志获取
  723. function getthislog(val) {
  724. if (val.includes("msg=heartCheck")) {
  725. } else {
  726. newlog.value = newlog.value + "\n" + val;
  727. rizhi.value.logs = newlog.value;
  728. }
  729. let textarea = document.getElementById("textarea_id");
  730. textarea.scrollTop = textarea.scrollHeight;
  731. }
  732. // 历史日志
  733. async function fetchFileContent() {
  734. const params = {
  735. transCode: "D000015",
  736. aid: aid.value
  737. };
  738. await request(params)
  739. .then((res) => {
  740. if (res.returnCode == "000000000") {
  741. getthislog(res.logs);
  742. } else {
  743. ElMessage({
  744. message: res.returnMsg,
  745. type: "error",
  746. });
  747. }
  748. })
  749. .catch((err) => { });
  750. }
  751. // 日志
  752. function initWebSocket() {
  753. //初始化weosocket
  754. // const wsuri = "ws://192.168.0.43:8087//websocket?projectId="+this.pid; ws://192.168.0.131/diswebsocket?projectId=5
  755. const wsurl = import.meta.env.VITE_WEBSOCKET_URL + aid.value
  756. console.log(wsurl);
  757. websock = new WebSocket(wsurl);
  758. websock.onopen = websocketonopen;
  759. websock.onmessage = websocketonmessage;
  760. websock.onerror = websocketonerror;
  761. websock.onclose = websocketclose;
  762. }
  763. // Websoket连接成功事件
  764. const websocketonopen = (res) => {
  765. console.log("WebSocket连接成功", res);
  766. start();
  767. };
  768. // Websoket接收消息事件
  769. const websocketonmessage = (res) => {
  770. // console.log("数据", res);
  771. // console.log(res.data);
  772. getthislog(res.data);
  773. reset();
  774. };
  775. // Websoket连接错误事件
  776. const websocketonerror = (res) => {
  777. console.log("连接错误", res);
  778. websock.value.close();
  779. reconnect();
  780. };
  781. // Websoket断开事件
  782. const websocketclose = (res) => {
  783. console.log("断开连接", res);
  784. };
  785. // 创建 websocket 的实例
  786. // 心跳包
  787. const reconnect = () => {
  788. if (times.value.lockReconnect) return;
  789. times.value.lockReconnect = true;
  790. //没连接上会一直重连,设置延迟避免请求过多
  791. times.value.timeoutnum && clearTimeout(times.value.timeoutnum);
  792. times.value.timeoutnum = setTimeout(function () {
  793. //新连接
  794. initWebSocket();
  795. times.value.lockReconnect = false;
  796. }, 10000);
  797. }
  798. const reset = () => {
  799. //重置心跳
  800. clearTimeout(times.value.timeoutObj);
  801. clearTimeout(times.value.serverTimeoutObj);
  802. start();
  803. }
  804. const start = () => {
  805. //开启心跳
  806. times.value.timeoutObj && clearTimeout(times.value.timeoutObj);
  807. times.value.serverTimeoutObj && clearTimeout(times.value.serverTimeoutObj);
  808. times.value.timeoutObj = setTimeout(function () {
  809. //这里发送一个心跳,后端收到后,返回一个心跳消息
  810. if (websock.readyState == 1) {
  811. //如果连接正常
  812. websock.send("heartCheck");
  813. } else {
  814. //否则重连
  815. console.log(111111)
  816. reconnect();
  817. }
  818. times.value.serverTimeoutObj = setTimeout(function () {
  819. // 超时关闭
  820. websock.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
  821. }, times.value.timeout);
  822. }, times.value.timeout);
  823. }
  824. // 组件被销毁之前,清空 sock 对象
  825. onBeforeUnmount(() => {
  826. // 关闭连接
  827. websocketclose;
  828. // 销毁 websocket 实例对象
  829. websock.value = null;
  830. rizhi.logs='';
  831. });
  832. onMounted(() => {
  833. // dialogVisible.value=true;
  834. });
  835. defineExpose({ monitor, accident2, leftcoll, classradio, aid, dialogVisible ,changeModel});
  836. </script>
  837. <style lang="scss" scoped>
  838. .jc_padding {
  839. padding: 18px 10px;
  840. }
  841. .line {
  842. border-bottom: 1px solid rgba(255, 255, 255, 0.20);
  843. box-sizing: border-box;
  844. }
  845. .L_aside {
  846. .iconimg {
  847. width: 37px;
  848. height: 36px;
  849. margin: 0 7px 0 24px;
  850. }
  851. .Frame2 {
  852. background-image: url(../assets/img/Frame2.png);
  853. background-size: 100%;
  854. background-position: center;
  855. }
  856. .Frame3 {
  857. background-image: url(../assets/img/Frame3.png);
  858. background-repeat: no-repeat;
  859. background-position: center;
  860. }
  861. .el-collapse,
  862. .el-collapse-item__header {
  863. border: none;
  864. ul li {
  865. text-align: left;
  866. }
  867. .inputkuang {
  868. height: 30px;
  869. width: 100%;
  870. background: rgba(13, 22, 57, 0.4);
  871. position: relative;
  872. .righttext {
  873. display: inline-block;
  874. position: absolute;
  875. right: 10px;
  876. top: 3px;
  877. color: rgba($color: #FFFFFF, $alpha: 0.8);
  878. }
  879. }
  880. .inputtext_1 {
  881. font-weight: 400;
  882. font-size: 13px;
  883. color: #FFFFFF;
  884. line-height: 14px;
  885. text-align: left;
  886. font-style: normal;
  887. text-transform: none;
  888. padding: 13px 0 7px 0;
  889. display: inline-block;
  890. }
  891. }
  892. }
  893. .ddd {
  894. margin-top: 20px;
  895. .ddd_div {
  896. padding: 20px 0;
  897. position: relative;
  898. }
  899. .class_btn {
  900. position: absolute;
  901. right: 0;
  902. top: 21px;
  903. }
  904. }
  905. .header_l {
  906. line-height: 10px;
  907. // height: 40px;
  908. text-align: left;
  909. padding: 0 20px;
  910. // border-bottom: 1px solid;
  911. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  912. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  913. border-radius: 0px 0px 0px 0px;
  914. .el-image {
  915. padding: 10px 10px 0 0;
  916. }
  917. h4 {
  918. font-weight: bold;
  919. font-size: 12px;
  920. color: #68ADFF;
  921. line-height: 14px;
  922. text-align: left;
  923. font-style: normal;
  924. text-transform: none;
  925. }
  926. }
  927. .tianjia {
  928. display: inline-block;
  929. }
  930. .el-dialog__title {
  931. display: inline-block;
  932. }
  933. .bgcolor {
  934. // width: 482px;
  935. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  936. border-radius: 0px 0px 0px 0px;
  937. border: 1px solid;
  938. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  939. }
  940. .dialog_class {
  941. .my-header {
  942. line-height: 10px;
  943. height: 40px;
  944. text-align: left;
  945. padding: 0 20px;
  946. border-bottom: 1px solid;
  947. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  948. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  949. border-radius: 0px 0px 0px 0px;
  950. .el-image {
  951. padding: 10px 10px 0 0;
  952. }
  953. h4 {
  954. font-weight: bold;
  955. font-size: 12px;
  956. color: #68ADFF;
  957. line-height: 14px;
  958. text-align: left;
  959. font-style: normal;
  960. text-transform: none;
  961. }
  962. }
  963. .my_content {
  964. width: 100%;
  965. height: 90px;
  966. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  967. border-radius: 0px 0px 0px 0px;
  968. position: relative;
  969. .radio-group {
  970. display: flex;
  971. justify-content: center;
  972. .el-radio {
  973. flex: 1;
  974. justify-content: center;
  975. font-weight: bold;
  976. font-size: 12px;
  977. color: #FFFFFF;
  978. line-height: 14px;
  979. }
  980. }
  981. }
  982. .el-dialog__footer {
  983. position: absolute;
  984. bottom: 17px;
  985. display: flex;
  986. .footerbtn {
  987. flex: 1;
  988. text-align: center;
  989. }
  990. }
  991. }
  992. .my_content1 {
  993. .el-table .cell {
  994. font-weight: 400;
  995. font-size: 12px;
  996. color: #FFFFFF !important;
  997. line-height: 14px;
  998. text-align: left;
  999. font-style: normal;
  1000. text-transform: none;
  1001. }
  1002. }
  1003. .l_btn .borderimg {
  1004. width: 109px;
  1005. height: 30px;
  1006. background: rgba(104, 173, 255, 0.3);
  1007. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1008. /* border: 1px solid rgba(31, 107, 255, 1); */
  1009. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1010. border-radius: 4px;
  1011. display: flex;
  1012. display: inline-block;
  1013. box-sizing: border-box;
  1014. }
  1015. .borderimg {
  1016. width: 109px;
  1017. height: 30px;
  1018. background: rgba(104, 173, 255, 0.3);
  1019. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1020. /* border: 1px solid rgba(31, 107, 255, 1); */
  1021. -o-border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1022. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1023. border-radius: 4px;
  1024. display: flex;
  1025. display: inline-block;
  1026. box-sizing: border-box
  1027. }
  1028. .el-table,
  1029. .el-table thead th {
  1030. background-color: rgba(13, 22, 57, 0.96) !important;
  1031. }
  1032. .L_aside {
  1033. height: calc(100vh - 70px);
  1034. position: absolute;
  1035. top: 70px;
  1036. overflow: hidden;
  1037. }
  1038. .asides_content {
  1039. // background: rgba(13,22,57,0.4);
  1040. // box-shadow: inset 0px 0px 17px 5px rgba(12,97,197,0.2);
  1041. // border-radius: 0px 0px 0px 0px;
  1042. // border: 1px solid;
  1043. // border-image: linear-gradient(359deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0)) 1 1;
  1044. .el-form-item__label {
  1045. color: #FFFFFF !important;
  1046. }
  1047. }
  1048. .asdis_btn {
  1049. display: flex;
  1050. margin-top: 9px;
  1051. .btn {
  1052. flex: 1;
  1053. width: 145px;
  1054. height: 54px;
  1055. background-image: url(../assets/img/Rectangle5.png);
  1056. background-repeat: no-repeat;
  1057. line-height: 54px;
  1058. .spantext {
  1059. font-weight: bold;
  1060. font-size: 12px;
  1061. color: #FFFFFF;
  1062. text-align: center;
  1063. font-style: normal;
  1064. text-transform: none;
  1065. }
  1066. }
  1067. }
  1068. .logs {
  1069. margin-top: 25px;
  1070. border-radius: 0px 0px 0px 0px;
  1071. border-top: 1px solid;
  1072. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1073. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1074. h4 {
  1075. padding: 10px 0;
  1076. font-weight: 400;
  1077. font-size: 13px;
  1078. color: #FFFFFF;
  1079. line-height: 14px;
  1080. text-align: left;
  1081. font-style: normal;
  1082. text-transform: none;
  1083. }
  1084. }
  1085. .logs_pading {
  1086. padding: 13px 20px 23px 24px;
  1087. }
  1088. .newtime {
  1089. height: 112px;
  1090. padding: 38px;
  1091. font-weight: bold;
  1092. font-size: 20px;
  1093. color: #FF0F0F;
  1094. line-height: 23px;
  1095. text-align: center;
  1096. font-style: normal;
  1097. text-transform: none;
  1098. }
  1099. .animation_s {
  1100. padding: 25px;
  1101. }
  1102. .tanniu ul {
  1103. margin-top: 40px;
  1104. display: flex;
  1105. li {
  1106. flex: 1;
  1107. text-align: center;
  1108. p {
  1109. text-align: center;
  1110. font-weight: 400;
  1111. font-size: 12px;
  1112. color: #FFFFFF;
  1113. line-height: 14px;
  1114. font-style: normal;
  1115. text-transform: none;
  1116. }
  1117. }
  1118. }
  1119. .jiancedian {
  1120. width: 371px;
  1121. position: absolute;
  1122. right: 0;
  1123. top: 70px;
  1124. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1125. border-radius: 4px 4px 4px 4px;
  1126. border: 1px solid;
  1127. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1128. }
  1129. </style>
  1130. <style>
  1131. /* //.bgcolor */
  1132. .bgcolor {
  1133. border-radius: 0px 0px 0px 0px;
  1134. border: 1px solid;
  1135. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1136. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1137. }
  1138. .dialog_class {
  1139. background-color: rgba(13, 22, 57, 0.96) !important;
  1140. width: 482px;
  1141. }
  1142. .el-dialog__header,
  1143. .el-dialog__body,
  1144. .el-dialog__footer {
  1145. padding: 0 !important;
  1146. margin: 0 !important;
  1147. }
  1148. .el-dialog {
  1149. --el-dialog-padding-primary: 0px !important;
  1150. }
  1151. .el-dialog__headerbtn {
  1152. position: absolute;
  1153. top: 2px !important;
  1154. right: 0;
  1155. padding: 0;
  1156. width: 40px !important;
  1157. height: 40px !important;
  1158. background: 0 0;
  1159. border: none;
  1160. outline: 0;
  1161. cursor: pointer;
  1162. font-size: var(--el-message-close-size, 16px);
  1163. }
  1164. .el-icon {
  1165. color: #68ADFF !important;
  1166. }
  1167. .l_btn .borderimg {
  1168. width: 109px;
  1169. height: 30px;
  1170. background: rgba(104, 173, 255, 0.3);
  1171. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1172. /* border: 1px solid rgba(31, 107, 255, 1); */
  1173. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1174. border-radius: 4px;
  1175. display: flex;
  1176. display: inline-block;
  1177. box-sizing: border-box;
  1178. }
  1179. .l_btn .el-button {
  1180. width: 100%;
  1181. height: 100%;
  1182. border-radius: 4px;
  1183. color: #fff;
  1184. background: rgba(104, 173, 255, 0.3);
  1185. border: 1px solid rgba(31, 107, 255, 1);
  1186. }
  1187. .class_footer {
  1188. position: absolute;
  1189. bottom: 17px;
  1190. }
  1191. .footer_div {
  1192. height: 90px;
  1193. padding: 30px 0;
  1194. }
  1195. .l_btn {
  1196. width: 100%;
  1197. bottom: 17px;
  1198. display: flex;
  1199. border-radius: 4px;
  1200. }
  1201. .el-table .el-table__cell {
  1202. padding: 0 !important;
  1203. height: 30px;
  1204. line-height: 30px;
  1205. }
  1206. /* .el-table tr,.el-table th.el-table__cell{
  1207. background-color: rgba(13, 22, 57, 0.96) !important;
  1208. } */
  1209. .el-table__row {
  1210. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1211. border-radius: 0px 0px 0px 0px;
  1212. border: 1px solid;
  1213. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1214. }
  1215. .el-table td.el-table__cell,
  1216. .el-table th.el-table__cell.is-leaf {
  1217. /* box-shadow: inset 0px 0px 17px 5px rgba(12,97,197,0.2); */
  1218. border-radius: 0px 0px 0px 0px;
  1219. border-bottom: 1px solid;
  1220. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1221. }
  1222. .oddRow {
  1223. background-color: rgba(104, 173, 255, 0.20) !important;
  1224. }
  1225. .evenRow {
  1226. background-color: rgba(13, 22, 57, 0.96) !important;
  1227. }
  1228. .my_content1 .el-table .cell {
  1229. font-weight: 400;
  1230. font-size: 12px;
  1231. color: #FFFFFF !important;
  1232. line-height: 14px;
  1233. text-align: left;
  1234. font-style: normal;
  1235. text-transform: none;
  1236. }
  1237. .el-table--border .el-table__inner-wrapper::after,
  1238. .el-table--border::after,
  1239. .el-table--border::before,
  1240. .el-table__inner-wrapper::before {
  1241. height: 0 !important;
  1242. background-color: rgba(red, green, blue, 0) !important;
  1243. }
  1244. .el-button:focus,
  1245. .el-button:hover {
  1246. background: rgba(104, 173, 255, 1) !important;
  1247. font-weight: bold;
  1248. color: #000 !important;
  1249. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1250. border-radius: 4px 4px 4px 4px;
  1251. border: 1px solid;
  1252. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1253. }
  1254. .el-input__wrapper {
  1255. height: 30px;
  1256. background: rgba(104, 173, 255, 0.3) !important;
  1257. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2) !important;
  1258. border-radius: 0px 0px 0px 0px;
  1259. border: 1px solid;
  1260. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1261. }
  1262. .selecwidth .el-input__wrapper {
  1263. height: auto !important;
  1264. }
  1265. .selecwidth .el-select__tags {
  1266. max-width: 200px !important;
  1267. }
  1268. .ddd_div .el-input__inner {
  1269. border: none;
  1270. /* background: rgba(104,173,255,0.3); */
  1271. }
  1272. .ddd_div .el-form-item__label {
  1273. color: #fff !important;
  1274. }
  1275. .ddd_div .demo-input-suffix {
  1276. width: 100%;
  1277. }
  1278. .ddd .el-form-item {
  1279. width: 72% ;
  1280. }
  1281. /* .el-input__inner::placeholder {
  1282. color: #fff !important;
  1283. } */
  1284. .flex1 {
  1285. flex: 1;
  1286. }
  1287. .el-radio__input.is-checked .el-radio__inner {
  1288. border-color: #fff !important;
  1289. background: #fff !important;
  1290. }
  1291. .el-radio__inner {
  1292. border: 2px solid #fff !important;
  1293. background-color: rgba(104, 173, 255, 0) !important;
  1294. border: 1px solid #68ADFF;
  1295. }
  1296. .asideg .el-collapse-item__header {
  1297. height: 50px !important;
  1298. width: 100%;
  1299. background-position: left;
  1300. border: none !important;
  1301. font-weight: bold;
  1302. font-size: 15px;
  1303. color: #FFFFFF;
  1304. line-height: 18px;
  1305. text-align: left;
  1306. font-style: normal;
  1307. text-transform: none;
  1308. }
  1309. .leftbgimg .el-collapse-item__header {
  1310. background-image: url(../assets/img/Group10.png) !important;
  1311. }
  1312. .asideg1 .jc_header {
  1313. width: 100%;
  1314. height: 52px;
  1315. line-height: 69px;
  1316. background-image: url(../assets/img/Group24.png) !important;
  1317. background-repeat: no-repeat;
  1318. background-position: center;
  1319. }
  1320. .jc_tile {
  1321. padding-left: 20px;
  1322. }
  1323. .he_pading {
  1324. padding: 19px 14px 0 31px;
  1325. }
  1326. .asideg1 .el-form-item__label {
  1327. font-weight: 400;
  1328. font-size: 13px;
  1329. color: #FFFFFF;
  1330. text-align: left;
  1331. font-style: normal;
  1332. text-transform: none;
  1333. }
  1334. .asideg .el-collapse {
  1335. --el-collapse-header-bg-color: none !important;
  1336. }
  1337. .asideg .el-collapse-item__arrow {
  1338. margin: 0 8px 0 auto;
  1339. font-weight: 800;
  1340. color: #fff !important;
  1341. font-weight: bold !important;
  1342. font-size: 20px !important;
  1343. }
  1344. .el-collapse-item__content {
  1345. background: rgba(13, 22, 57, 0.2);
  1346. }
  1347. .asideg .el-input__wrapper {
  1348. background: rgba(104, 173, 255, 0) !important;
  1349. border: 1px solid rgba(31, 107, 255, 1);
  1350. border-radius: 4px;
  1351. box-shadow: none !important;
  1352. }
  1353. .asideg .el-input__inner {
  1354. color: rgba(255, 15, 15, 1);
  1355. font-weight: 400;
  1356. font-size: 16px;
  1357. }
  1358. .el-collapse {
  1359. --el-collapse-header-bg-color: rgba(104, 173, 255, 0) !important;
  1360. --el-collapse-header-text-color: var(--el-text-color-primary);
  1361. --el-collapse-header-font-size: 13px;
  1362. --el-collapse-content-text-color: rgba(104, 173, 255, 0) !important;
  1363. --el-collapse-content-bg-color: rgba(104, 173, 255, 0) !important;
  1364. }
  1365. .asideg .el-collapse-item__content {
  1366. height: calc(100vh - 100px);
  1367. overflow-y: auto;
  1368. padding: 0 !important;
  1369. }
  1370. .asideg .el-collapse-item__wrap {
  1371. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1372. border-radius: 4px 4px 4px 4px;
  1373. border-bottom: 1px solid;
  1374. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1375. }
  1376. #textarea_id {
  1377. color: #fff;
  1378. font-size: 12px;
  1379. height: 226px;
  1380. background: rgba(104, 173, 255, 0) !important;
  1381. border: 1px solid rgba(31, 107, 255, 1);
  1382. border-radius: 4px;
  1383. box-shadow: none !important;
  1384. }
  1385. .asides_content .el-form-item__label {
  1386. color: #FFFFFF !important;
  1387. font-weight: 400;
  1388. font-size: 13px;
  1389. line-height: 33px;
  1390. text-align: left;
  1391. font-style: normal;
  1392. text-transform: none;
  1393. }
  1394. .el-form-item {
  1395. width: 100%;
  1396. }
  1397. .el-select__wrapper {
  1398. background-color: rgba(104, 173, 255, 0) !important;
  1399. }
  1400. .el-select__wrapper.is-hovering:not(.is-focused),
  1401. .el-select__wrapper {
  1402. box-shadow: none !important;
  1403. border: 1px solid rgba(31, 107, 255, 1);
  1404. border-radius: 4px;
  1405. box-shadow: none !important;
  1406. }
  1407. /* Webkit内核浏览器(Chrome、Safari等)*/
  1408. ::-webkit-scrollbar {
  1409. width: 4px;
  1410. /* 设置滚动条宽度 */
  1411. background-color: #161A2A;
  1412. /* 设置滚动条背景颜色 */
  1413. }
  1414. /* 滑块样式 */
  1415. ::-webkit-scrollbar-thumb {
  1416. border-radius: 2px;
  1417. /* 设置滑块边角半径 */
  1418. background-color: rgba(31, 107, 255, 1);
  1419. /* 设置滑块背景颜色 */
  1420. }
  1421. /* 滑块在hover状态时的样式 */
  1422. ::-webkit-scrollbar-thumb:hover {
  1423. background-color: #555;
  1424. /* 设置滑块在hover状态下的背景颜色 */
  1425. }
  1426. /* 滚动条轨道样式 */
  1427. ::-webkit-scrollbar-track {
  1428. background-color: rgba(104, 173, 255, 0.4)
  1429. /* 设置滚动条轨道背景颜色 */
  1430. }
  1431. .result .el-tabs__item {
  1432. padding: 17px !important;
  1433. font-weight: bold;
  1434. font-size: 14px;
  1435. color: #FFFFFF;
  1436. line-height: 16px;
  1437. text-align: center;
  1438. font-style: normal;
  1439. text-transform: none;
  1440. }
  1441. .el-tabs--card>.el-tabs__header,
  1442. .el-tabs--card>.el-tabs__header,
  1443. .el-tabs--card>.el-tabs__header .el-tabs__nav {
  1444. border: none !important;
  1445. }
  1446. .el-tabs {
  1447. --el-tabs-header-height: 70px !important;
  1448. }
  1449. .result .el-tabs__item {
  1450. border-left: 1px solid;
  1451. border-right: 1px solid;
  1452. border-bottom: 1px solid;
  1453. border-image: linear-gradient(180deg, rgb(31, 107, 255), rgba(31, 107, 255, 0.48)) 1 1;
  1454. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1455. border-radius: 0px 0px 0px 0px;
  1456. font-weight: bold;
  1457. font-size: 14px;
  1458. color: #fff;
  1459. line-height: 23px;
  1460. text-align: center;
  1461. font-style: normal;
  1462. text-transform: none;
  1463. }
  1464. .result .is-active {
  1465. height: 70px;
  1466. background: radial-gradient(ellipse at 54px 0px, #3AA0FF -37%, #123066 53%);
  1467. border-radius: 0px 0px 0px 0px;
  1468. border: 2px solid;
  1469. color: rgba(255, 15, 15, 1) !important;
  1470. border-left: 1px solid rgba(16, 92, 240, 1);
  1471. border-right: 1px solid rgba(18, 48, 102, 1);
  1472. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1 1;
  1473. }
  1474. .result .el-tabs__item:hover {
  1475. color: rgba(255, 15, 15, 1);
  1476. cursor: pointer;
  1477. }
  1478. .result .el-tabs__header {
  1479. padding: 0 !important;
  1480. margin: 0 !important;
  1481. }
  1482. .result .el-tabs__content {
  1483. border: 1px solid;
  1484. color: rgba(255, 15, 15, 1) !important;
  1485. border-image: linear-gradient(347deg, rgba(16, 92, 240, 1), rgba(18, 48, 102, 1)) 1 1;
  1486. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2);
  1487. border-radius: 0px 0px 0px 0px;
  1488. position: relative;
  1489. }
  1490. .result .el-tabs__content {
  1491. width: 275px;
  1492. }
  1493. .el-slider__button {
  1494. height: 10px;
  1495. width: 10px;
  1496. }
  1497. .color1 {
  1498. font-weight: 400;
  1499. font-size: 13px;
  1500. color: #FFFFFF;
  1501. line-height: 14px;
  1502. text-align: left;
  1503. font-style: normal;
  1504. text-transform: none;
  1505. }
  1506. .jc_padding .el-table tr {
  1507. height: 40px;
  1508. background-color: none;
  1509. }
  1510. .jc_padding .el-table .cell {
  1511. font-weight: 400;
  1512. font-size: 13px;
  1513. color: #FFFFFF;
  1514. line-height: 14px;
  1515. text-align: left;
  1516. font-style: normal;
  1517. text-transform: none;
  1518. }
  1519. .tianjia .el-dialog__body {
  1520. padding: 20px !important;
  1521. }
  1522. .tianjia .el-form-item__label {
  1523. color: #fff;
  1524. }
  1525. .tianjia .el-input__inner {
  1526. color: #fff;
  1527. font-size: 14px;
  1528. font-weight: 400;
  1529. text-align: left;
  1530. padding: 20px 0;
  1531. height: 30px;
  1532. line-height: 47px;
  1533. }
  1534. .ddd_div .el-input__inner {
  1535. color: #fff;
  1536. }
  1537. .pagination {
  1538. margin-top: 30px;
  1539. display: flex;
  1540. justify-content: center;
  1541. }
  1542. .pagination .el-pagination__total {
  1543. color: #fff;
  1544. }
  1545. .el-pagination.is-background .btn-next.is-disabled,
  1546. .el-pagination.is-background .btn-next:disabled,
  1547. .el-pagination.is-background .btn-prev.is-disabled,
  1548. .el-pagination.is-background .btn-prev:disabled,
  1549. .el-pagination.is-background .el-pager li.is-disabled,
  1550. .el-pagination.is-background .el-pager li:disabled {
  1551. background: rgba(104, 173, 255, 0.3) !important;
  1552. box-shadow: inset 0px 0px 17px 5px rgba(12, 97, 197, 0.2) !important;
  1553. border-radius: 0px 0px 0px 0px;
  1554. border: 1px solid;
  1555. border-image: linear-gradient(180deg, rgba(31, 107, 255, 1), rgba(31, 107, 255, 0.48)) 1 1;
  1556. }
  1557. .delecttitle {
  1558. font-size: 18px;
  1559. font-weight: bold;
  1560. color: #fff;
  1561. }
  1562. .scoperadio .el-radio__label {
  1563. display: none;
  1564. }
  1565. .el-select__input {
  1566. font-size: 12px;
  1567. }
  1568. ul,
  1569. ol {
  1570. list-style: none;
  1571. padding: 0;
  1572. margin: 0;
  1573. }
  1574. .tuiy .asideg .el-input__inner {
  1575. font-size: 14px !important;
  1576. }
  1577. .spantext{
  1578. cursor: pointer;
  1579. }
  1580. .tablebk .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  1581. background-color: rgba(255, 255, 25, 0.5) !important;
  1582. }
  1583. </style>