courtyardHome.vue 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574
  1. <template>
  2. <div class="home-page">
  3. <headerComponent></headerComponent>
  4. <div class="left" v-if="showType">
  5. <div class="left_t">
  6. <img class="left_t_l" src="@/assets/image/index_icon5.png"/>
  7. <div class="left_t_l1"></div>
  8. <div class="left_t_c">
  9. <li :class="{'checked_li':checkedNum==0}" @click="checkedNumButton(0)" v-if="deptId">校院通知</li>
  10. <li :class="{'checked_li':checkedNum==1}" @click="checkedNumButton(1)">预警事件</li>
  11. <li :class="{'checked_li':checkedNum==2}" @click="checkedNumButton(2)" v-if="deptId">工作计划</li>
  12. </div>
  13. <div class="left_t_n">
  14. <el-carousel ref="el-carousel" class="swiper-container" @change="checkedNumChange" :interval="6000"
  15. trigger="click" direction="vertical" indicator-position="none" height="410px">
  16. <el-carousel-item v-if="deptId" class="swiper-wrapper">
  17. <div class="swiper-slide">
  18. <!--院校通知-->
  19. <div class="left_t_r" v-if="infoList">
  20. <li v-for='(item,index) in infoList' :key="index" @click="openInfoUrl(item,1)">
  21. <div class="left_t_r_t">
  22. <i>{{item.title}}</i>
  23. <i>{{item.company}}</i>
  24. <i>{{parseTime(item.createTime,'{y}-{m}-{d}')}}</i>
  25. <img class="left_t_r_t_r" src="@/assets/image/index_icon8.png"/>
  26. </div>
  27. <div class="left_t_r_b over2">{{item.title}}</div>
  28. </li>
  29. <div v-if="infoList.length<=0"
  30. style="position:relative;left: 44%; top:8%;color:#fff;">暂无数据
  31. </div>
  32. </div>
  33. </div>
  34. </el-carousel-item>
  35. <el-carousel-item class="swiper-wrapper">
  36. <div class="swiper-slide">
  37. <!--预警事件通知-->
  38. <div class="left_t_r2" v-if="planList">
  39. <div class="left_t_r2_title">
  40. <p>预警事件通知</p>
  41. <img src="@/assets/image/index_icon8.png" @click="eventUrl()"/>
  42. </div>
  43. <div class="left_t_r2_m">
  44. <i>预警时间</i>
  45. <i>预警事件</i>
  46. <i>实验室</i>
  47. </div>
  48. <div class="left_t_r2_b" v-for='(item,index2) in planList' :key="index2">
  49. <li v-if="index2<7" @click="openInfoUrl(item,2)">
  50. <i class="over">{{parseTime(item.warnTime,'{y}-{m}-{d} {h}:{i}')}}</i>
  51. <i>{{item.warnContent}}</i>
  52. <i>{{item.subName}}</i>
  53. <img src="@/assets/image/index_icon8.png"/>
  54. </li>
  55. </div>
  56. <div v-if="planList.length<=0"
  57. style="position:relative;left: 44%; top:8%;color:#fff;">暂无数据
  58. </div>
  59. </div>
  60. </div>
  61. </el-carousel-item>
  62. <el-carousel-item v-if="deptId" class="swiper-wrapper">
  63. <div class="swiper-slide">
  64. <!--工作计划-->
  65. <div class="left_t_r3" v-if="workList">
  66. <div class="left_t_r2_m">
  67. <i>工作内容</i>
  68. <i>执行单位</i>
  69. <i>执行日期</i>
  70. </div>
  71. <div class="left_t_r2_b" v-for='(item,index2) in workList' :key="index2">
  72. <li v-if="index2<7" @click="openInfoUrl(item,3)">
  73. <i class="over">{{item.title}}</i>
  74. <i>{{item.company}}</i>
  75. <i>{{parseTime(item.createTime,'{y}-{m}-{d}')}}</i>
  76. <img src="@/assets/image/index_icon8.png"/>
  77. </li>
  78. </div>
  79. <div v-if="workList.length<=0" style="position:relative;left: 44%; top:8%;color:#fff;">暂无数据</div>
  80. </div>
  81. </div>
  82. </el-carousel-item>
  83. </el-carousel>
  84. </div>
  85. </div>
  86. <div class="left_b">
  87. <personnelAdmittanceECharts></personnelAdmittanceECharts>
  88. </div>
  89. </div>
  90. <div class="right" v-if="showType">
  91. <div class="right_t">
  92. <!--公共小标题-->
  93. <div class="small_title">
  94. <div class="small_title_l">风险预警统计</div>
  95. <div class="small_title_r" @click="right_t_btn">
  96. <i>风险预警总数:{{planResultCount}}</i>
  97. <img class="right_t_btn" src="@/assets/image/index_icon8.png"/>
  98. </div>
  99. </div>
  100. <div class="right_t_b" id="right_t_b"></div>
  101. <img class="left_b_t1" src="@/assets/image/index_icon12.png"/>
  102. </div>
  103. <div class="right_b">
  104. <p class="title-component-p">实验室安全监测</p>
  105. <newSubVideoComponent v-if="!warningList[0]"></newSubVideoComponent>
  106. <!--报警预案-->
  107. <div class="warning-max-big-box" v-if="warningList[0]">
  108. <div class="warning-for-box" v-for='(item,index8) in warningList' :key="index8">
  109. <img src="@/assets/image/index_icon14.png">
  110. <p class="warning-name">{{item.eventName}}</p>
  111. <div>
  112. <span v-for="(minItem,index9) in item.triggerUploadData" :key="index9">{{minItem.deviceName}}:{{minItem.deviceValue}}{{minItem.unit}}</span>
  113. </div>
  114. <p class="warning-button" @click="openRiskPlanUrl(item)">查看详情</p>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. <planAlarm ref="planAlarm"></planAlarm>
  120. </div>
  121. </template>
  122. <script>
  123. import {
  124. systemNotifyList,
  125. laboratoryBigViewSelectTriggerInfo,
  126. laboratoryBigViewCollegeEventStatistics,
  127. laboratoryBigViewListCollegeApplyColumn,
  128. examBigViewNewStatistics,
  129. systemWarningNoticeNoMenuList,
  130. laboratoryClassTypeGetList
  131. } from '@/api/index'
  132. import Swiper from 'swiper'
  133. import mqtt from 'mqtt/dist/mqtt'
  134. import { Encrypt, Decrypt } from '@/utils/secret'
  135. import headerComponent from '../headerComponent.vue'
  136. import planAlarm from '@/components/planAlarm/planAlarm.vue'
  137. import newSubVideoComponent from '@/components/newSubVideoComponent.vue'
  138. import personnelAdmittanceECharts from '@/components/personnelAdmittanceECharts/personnelAdmittanceECharts.vue'
  139. export default {
  140. components: {
  141. headerComponent,
  142. planAlarm,
  143. personnelAdmittanceECharts,
  144. newSubVideoComponent
  145. },
  146. data() {
  147. return {
  148. showType:true,
  149. circularLogo: localStorage.getItem('circularLogo'),
  150. deptId: null,
  151. mtopicTwo: 'manage/work' + localStorage.getItem('userId'),
  152. timer: null,//定时器
  153. chartReload3: null,//定时器
  154. chartReload4: null,//定时器
  155. chartReload5: null,//定时器
  156. chartReload6: null,//定时器
  157. dataList: [],
  158. labList: [],//实验室人员
  159. infoList: [],//院校通知
  160. planList: [],//预警事件
  161. planTitle: '',//预警事件
  162. workList: [],//工作计划
  163. workTitle: '',//工作计划
  164. inspecremark: '',//安全检查时间
  165. inspeccheckZs: '',//安全检查隐患排查数
  166. inspeccheckWzg: '',//安全检查历史遗留
  167. inspeccheckYzg: '',//安全检查已整改
  168. labInfoList: [],//实验室信息
  169. controlTitle: '',//分级管控标题
  170. inspectBatchList: [],//安全检查批次列表
  171. //风险预案
  172. warningList: [],
  173. groupName: '',
  174. roomName: '',
  175. buildName: '',
  176. floorName: '',
  177. riskPlanId: '',//风险预案id
  178. subjectId: '',//实验室id
  179. sensorStr: '',//实验室id
  180. planId: '',//安全检查id
  181. checkedNum: 0,
  182. //首页总数
  183. resultCount: '',
  184. listcount: '',
  185. planResultCount: '',
  186. mySwiper: null,
  187. labTypeList: [],
  188. //v3
  189. classifyList: [],
  190. //MQTT请求参数-预案
  191. planOpic: 'lab/risk/plan/change',
  192. planClient: {}
  193. }
  194. },
  195. created() {
  196. this.$set(this, 'deptId', localStorage.getItem('deptId'))
  197. },
  198. mounted() {
  199. let self = this
  200. self.infoFun()
  201. self.warningPlanFun()
  202. self.workPlanFun()
  203. self.laboratoryBigViewSelectTriggerInfo()
  204. self.laboratoryBigViewCollegeEventStatistics()
  205. this.offPlanMQTT('on')
  206. this.timerPlay()
  207. },
  208. methods: {
  209. checkDept(){
  210. let self = this;
  211. if(!this.warningList[0]){
  212. this.$set(this, 'deptId', localStorage.getItem('deptId'))
  213. this.$set(this,'showType',false);
  214. setTimeout(function(){
  215. self.$set(self,'showType',true);
  216. self.infoFun();
  217. self.warningPlanFun();
  218. self.workPlanFun();
  219. self.laboratoryBigViewSelectTriggerInfo();
  220. self.laboratoryBigViewCollegeEventStatistics();
  221. self.$set(self,'checkedNum',0);
  222. },500);
  223. }
  224. },
  225. // 定时器
  226. timerPlay() {
  227. let self = this
  228. clearInterval(this.timer)
  229. this.timer = setInterval(function() {
  230. self.infoFun()
  231. self.warningPlanFun()
  232. self.workPlanFun()
  233. self.laboratoryBigViewSelectTriggerInfo()
  234. self.laboratoryBigViewCollegeEventStatistics()
  235. }, 50000 * 6)
  236. },
  237. /**V3新--------------start----**/
  238. // 切换轮播
  239. checkedNumButton(type) {
  240. if (type != this.checkedNum) {
  241. this.$set(this, 'checkedNum', type)
  242. this.$set(this.$refs['el-carousel'], 'activeIndex', type)
  243. }
  244. },
  245. checkedNumChange() {
  246. this.$set(this, 'checkedNum', this.$refs['el-carousel'].activeIndex)
  247. },
  248. //跳转页面
  249. tableButton(type, row) {
  250. if (type == 'classifyGradeDetail') {//实验室分类分级
  251. this.$router.push('./classifyGradeDetail')
  252. } else if (type == 'riskDetail') {//危险源统计
  253. this.$router.push('./riskDetail')
  254. } else if (type == 'dangerDetail') {//安全隐患统计
  255. this.$router.push('./dangerDetail')
  256. }
  257. },
  258. /**V3新--------------end----**/
  259. initSwiper() {
  260. let self = this
  261. self.mySwiper = new Swiper('.swiper-container', {
  262. //loop: true, // 循环模式选项
  263. //autoplay:true,
  264. autoplay: {
  265. delay: 12000,
  266. stopOnLastSlide: false,
  267. disableOnInteraction: true
  268. },
  269. direction: 'vertical',
  270. //监听滚动到第几页
  271. on: {
  272. slideChangeTransitionEnd: function() {
  273. self.checkedNum = this.realIndex
  274. }
  275. }
  276. })
  277. },
  278. //通知详情
  279. openInfoUrl(item, type) {
  280. this.$router.push(
  281. {
  282. path: './workInfoDetail',
  283. query: {
  284. item: item,
  285. type: type
  286. }
  287. })
  288. },
  289. //安全检查
  290. openinspectUrl() {
  291. this.$router.push({ path: './inspectDetail' })
  292. },
  293. //预警通知
  294. eventUrl() {
  295. this.$router.push({ path: './eventList' })
  296. },
  297. //进入实验室人员
  298. right_b_btn() {
  299. this.$router.push('./labPersonDetail')
  300. },
  301. //预案执行统计
  302. right_t_btn() {
  303. this.$router.push('./planDetail')
  304. },
  305. //获取报警信息
  306. openRiskPlanUrl(item) {
  307. this.$refs['planAlarm'].initialize(item)
  308. },
  309. //预案执行统计
  310. laboratoryBigViewCollegeEventStatistics() {
  311. let self = this
  312. let obj = {};
  313. if(!localStorage.getItem('deptId')){
  314. obj.buildId = localStorage.getItem('buildId');
  315. }
  316. laboratoryBigViewCollegeEventStatistics(obj).then((res) => {
  317. if (res.code == 200) {
  318. let dataX = []
  319. let dataValue = []
  320. let data = res.data.list
  321. self.planResultCount = res.data.total
  322. for (var i = 0; i < data.length; i++) {
  323. dataX.push(data[i].yearMonth)
  324. dataValue.push(data[i].count)
  325. }
  326. this.planFun(dataX, dataValue)
  327. }
  328. })
  329. },
  330. //校院通知
  331. infoFun: function() {
  332. let self = this
  333. systemNotifyList({ pageNum: 1, pageSize: 4, notifyType: 2 }).then((res) => {
  334. if (res.code == 200) {
  335. res.data.forEach((item) => {
  336. item.contentText = item.content.replace(/<\/?.+?\/?>/g, '')
  337. })
  338. this.$set(self, 'infoList', res.data)
  339. }
  340. })
  341. },
  342. //预警事件
  343. warningPlanFun: function() {
  344. let self = this
  345. let obj = { page: 1, pageSize: 6 };
  346. if(!localStorage.getItem('deptId')){
  347. obj.buildId = localStorage.getItem('buildId');
  348. }
  349. systemWarningNoticeNoMenuList(obj).then((res) => {
  350. if (res.code == 200) {
  351. this.$set(self, 'planList', res.data.records)
  352. }
  353. })
  354. },
  355. //工作计划
  356. workPlanFun: function() {
  357. let self = this
  358. systemNotifyList({ pageNum: 1, pageSize: 4, notifyType: 3 }).then((res) => {
  359. if (res.code == 200) {
  360. res.data.forEach((item) => {
  361. item.contentText = item.content.replace(/<\/?.+?\/?>/g, '')
  362. })
  363. this.$set(self, 'workList', res.data)
  364. }
  365. })
  366. },
  367. /*预案执行统计*/
  368. planFun: function(dataX, dataValue) {
  369. var paperDataURI = 'data:image/png;base64,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'
  370. var planOption = {
  371. /*内边距*/
  372. grid: {
  373. top: '14%',
  374. left: '2%',
  375. right: '2%',
  376. bottom: '5%',
  377. containLabel: true
  378. },
  379. xAxis: {
  380. data: dataX,
  381. //坐标轴
  382. axisLine: {
  383. lineStyle: {
  384. 'color': '#486CC2',
  385. width: 2
  386. }
  387. },
  388. axisTick: {
  389. show: false
  390. },
  391. //坐标值标注
  392. axisLabel: {
  393. show: true,
  394. textStyle: {
  395. color: '#fff',
  396. fontSize: 14
  397. }
  398. }
  399. },
  400. yAxis: [
  401. {
  402. axisTick: {
  403. show: false
  404. },
  405. //坐标轴
  406. axisLine: {
  407. lineStyle: {
  408. 'color': '#486CC2',
  409. width: 2
  410. }
  411. },
  412. //坐标值标注
  413. axisLabel: {
  414. show: true,
  415. textStyle: {
  416. color: '#fff',
  417. fontSize: 16
  418. }
  419. },
  420. //分格线
  421. splitLine: {
  422. show: false,
  423. lineStyle: {
  424. color: '#4784e8'
  425. }
  426. }
  427. }
  428. ],
  429. series: [
  430. {
  431. label: {
  432. normal: {
  433. show: true,
  434. position: 'top',
  435. textStyle: {
  436. color: '#fff'
  437. }
  438. }
  439. },
  440. data: dataValue,
  441. type: 'pictorialBar',
  442. barMaxWidth: '20',
  443. symbolPosition: 'end',
  444. // symbol: "diamond",
  445. symbol: 'image://' + paperDataURI,
  446. // symbolOffset: [0, "-50%"],
  447. //symbolSize: [30, 22],
  448. zlevel: 2
  449. }
  450. ],
  451. tooltip: {
  452. trigger: 'axis',
  453. show: false
  454. }
  455. }
  456. var right_t_b = this.$echarts.init(document.getElementById('right_t_b'))
  457. right_t_b.setOption(planOption)
  458. //定时动画
  459. clearInterval(this.chartReload3)
  460. this.chartReload3 = setInterval(function() {
  461. right_t_b.clear()
  462. right_t_b.setOption(planOption)
  463. }, 1000 * 20)
  464. },
  465. //预案-MQTT连接
  466. offPlanMQTT(type) {
  467. let self = this
  468. if (self.planClient.unsubscribe) {
  469. self.planClient.unsubscribe(self.planOpic, error => {
  470. if (error) {
  471. // console.log('mqtt关闭连接错误:', error)
  472. }
  473. })
  474. self.planClient.end()
  475. this.$set(this, 'planClient', {})
  476. }
  477. //判断传入参数如果存在 发起一次新的连接
  478. if (type) {
  479. this.planMQTT()
  480. }
  481. },
  482. //预案-MQTT订阅
  483. planMQTT() {
  484. let self = this
  485. this.planClient = mqtt.connect(localStorage.getItem('mqttUrl'), {
  486. username: localStorage.getItem('mqttUser'),
  487. password: localStorage.getItem('mqttPassword')
  488. })
  489. this.planClient.on('connect', e => {
  490. this.planClient.subscribe(self.planOpic, (err) => {
  491. if (!err) {
  492. // console.log("预案-订阅成功:" + self.planOpic);
  493. } else {
  494. // console.log("预案-连接错误:" + err);
  495. }
  496. })
  497. })
  498. this.planClient.on('message', (topic, message) => {
  499. if (message) {
  500. console.log('预案-message', message)
  501. //获取预案数据
  502. this.laboratoryBigViewSelectTriggerInfo()
  503. }
  504. })
  505. },
  506. //获取报警信息
  507. laboratoryBigViewSelectTriggerInfo: function() {
  508. let self = this;
  509. laboratoryBigViewSelectTriggerInfo().then((res) => {
  510. if (res.code == 200) {
  511. for (let i = 0; i < res.data.length; i++) {
  512. res.data[i].triggerUploadData = JSON.parse(res.data[i].triggerUploadData)
  513. }
  514. this.$set(this, 'warningList', res.data)
  515. }
  516. })
  517. }
  518. },
  519. beforeDestroy() {
  520. let self = this
  521. clearInterval(this.timer)
  522. self.offPlanMQTT()
  523. }
  524. }
  525. </script>
  526. <style lang="scss" scoped>
  527. * {
  528. padding: 0;
  529. margin: 0;
  530. box-sizing: border-box;
  531. }
  532. .over2 {
  533. overflow: hidden;
  534. display: -webkit-box;
  535. text-overflow: ellipsis;
  536. -webkit-line-clamp: 2;
  537. -webkit-box-orient: vertical;
  538. }
  539. .home-page {
  540. width: 1920px;
  541. height: 1080px;
  542. background-image: url("../../assets/ZDimages/yjdpbg@1x.png");
  543. background-size: 1920px 1080px;
  544. position: relative;
  545. left: 0;
  546. top: 0;
  547. z-index: 50;
  548. .bg_img {
  549. width: 1920px;
  550. height: 1080px;
  551. position: absolute;
  552. left: 0;
  553. top: 0;
  554. z-index: 50;
  555. }
  556. /*公共小标题*/
  557. .small_title {
  558. width: 100%;
  559. display: flex;
  560. justify-content: space-between;
  561. .small_title_l {
  562. font-size: 18px;
  563. font-family: Source Han Sans CN;
  564. font-weight: bold;
  565. color: #1ED0F8;
  566. line-height: 18px;
  567. }
  568. .small_title_r {
  569. width: 280px;
  570. text-align: right;
  571. display: flex;
  572. justify-content: flex-end;
  573. align-items: center;
  574. > i {
  575. // width: 200px;
  576. display: inline-block;
  577. font-size: 14px;
  578. font-family: Source Han Sans CN;
  579. font-weight: 400;
  580. color: #FFFFFF;
  581. line-height: 14px;
  582. text-align: right;
  583. margin-right: 12px;
  584. }
  585. > img {
  586. width: 12px;
  587. height: 12px;
  588. cursor: pointer;
  589. position: relative;
  590. top: 0;
  591. }
  592. }
  593. .small_title_r2 {
  594. //width: 140px;
  595. text-align: right;
  596. display: flex;
  597. justify-content: flex-end;
  598. align-items: center;
  599. > i {
  600. width: 100px;
  601. display: inline-block;
  602. font-size: 14px;
  603. font-family: Source Han Sans CN;
  604. font-weight: 400;
  605. color: #FFFFFF;
  606. line-height: 14px;
  607. text-align: center;
  608. }
  609. > img {
  610. width: 12px;
  611. height: 12px;
  612. cursor: pointer;
  613. }
  614. }
  615. }
  616. .header {
  617. width: 100%;
  618. position: absolute;
  619. left: 0;
  620. top: 0;
  621. z-index: 50;
  622. display: flex;
  623. justify-content: flex-start;
  624. .position-img-button-left-box {
  625. cursor: pointer;
  626. position: absolute;
  627. top: 4px;
  628. left: 410px;
  629. display: flex;
  630. width: 190px;
  631. height: 24px;
  632. img {
  633. width: 24px;
  634. height: 18px;
  635. display: inline-block;
  636. margin: 4px 0;
  637. }
  638. p {
  639. color: #24D1F9;
  640. font-size: 16px;
  641. line-height: 24px;
  642. margin-left: 14px;
  643. font-family: Source Han Sans CN;
  644. font-weight: 400;
  645. }
  646. }
  647. .position-img-button-right-box {
  648. cursor: pointer;
  649. position: absolute;
  650. top: 4px;
  651. right: 385px;
  652. display: flex;
  653. width: 190px;
  654. height: 24px;
  655. img {
  656. width: 24px;
  657. height: 24px;
  658. display: inline-block;
  659. }
  660. p {
  661. color: #24D1F9;
  662. font-size: 16px;
  663. line-height: 24px;
  664. margin-left: 14px;
  665. font-family: Source Han Sans CN;
  666. font-weight: 400;
  667. }
  668. }
  669. .header_l {
  670. width: 250px;
  671. height: 55px;
  672. }
  673. .header_c {
  674. width: 1180px;
  675. height: 152px;
  676. margin-left: 136px;
  677. /*background: url("~@/assets/image/index_icon2.png") no-repeat;*/
  678. /*background-size: 100% 100%;*/
  679. padding-top: 26px;
  680. position: relative;
  681. .header_c-p{
  682. font-size: 30px;
  683. font-family: Microsoft YaHei;
  684. font-weight: bold;
  685. color: #FFFFFF;
  686. line-height: 30px;
  687. text-align: center;
  688. padding-left: 70px;
  689. }
  690. .header_l-position {
  691. z-index: 10;
  692. position: absolute;
  693. top: 17px;
  694. left: 330px;
  695. width: 50px;
  696. height: 50px;
  697. }
  698. }
  699. .header_r1 {
  700. margin-left: 116px;
  701. height: 64px;
  702. display: flex;
  703. justify-content: flex-start;
  704. cursor: pointer;
  705. align-items: center;
  706. .header_r1_l {
  707. width: 24px;
  708. height: 24px;
  709. }
  710. > i {
  711. font-size: 18px;
  712. font-family: Source Han Sans CN;
  713. font-weight: 400;
  714. color: #FFFFFF;
  715. line-height: 18px;
  716. margin-left: 14px;
  717. display: inline-block;
  718. width: 154px;
  719. }
  720. .header_r1_r {
  721. width: 24px;
  722. height: 24px;
  723. }
  724. }
  725. .position-button-right-bottom-1{
  726. position:absolute;
  727. bottom:20px;
  728. right:325px;
  729. color:#fff;
  730. background-color:#013147;
  731. border:2px solid #1d94b2;
  732. border-radius:10px;
  733. font-size:18px;
  734. height:50px;
  735. line-height:44px;
  736. width:120px;
  737. text-align: center;
  738. cursor: pointer;
  739. }
  740. .position-button-right-bottom-2{
  741. position:absolute;
  742. bottom:20px;
  743. right:170px;
  744. color:#fff;
  745. background-color:#013147;
  746. border:2px solid #1d94b2;
  747. border-radius:10px;
  748. font-size:18px;
  749. height:50px;
  750. line-height:44px;
  751. width:120px;
  752. text-align: center;
  753. cursor: pointer;
  754. }
  755. }
  756. .left {
  757. position: absolute;
  758. left: 52px;
  759. top: 66px;
  760. z-index: 50;
  761. .left_t {
  762. display: flex;
  763. justify-content: flex-start;
  764. .left_t_l {
  765. width: 18px;
  766. height: 166px;
  767. margin-top: 80px;
  768. }
  769. .left_t_l1 {
  770. width: 4px;
  771. height: 400px;
  772. background: #004C95;
  773. margin-left: 4px;
  774. margin-top:80px;
  775. }
  776. .left_t_c {
  777. margin-top: 82px;
  778. > li {
  779. width: 308px;
  780. height: 74px;
  781. background: url("~@/assets/image/index_icon6.png") no-repeat;
  782. background-size: 100% 100%;
  783. font-size: 34px;
  784. font-family: Source Han Sans CN;
  785. font-weight: 400;
  786. line-height: 80px;
  787. color: #FFFFFF;
  788. padding-left: 120px;
  789. margin-bottom: 40px;
  790. cursor: pointer;
  791. }
  792. > li:nth-of-type(4) {
  793. margin-bottom: 0;
  794. }
  795. .checked_li {
  796. background: url("~@/assets/image/index_icon7.png") no-repeat;
  797. background-size: 100% 100%;
  798. }
  799. .unchecked {
  800. background: url("~@/assets/image/index_icon6.png") no-repeat;
  801. background-size: 100% 100%;
  802. }
  803. }
  804. .left_t_n {
  805. overflow: hidden;
  806. width: 672px;
  807. height: 406px;
  808. margin-left: 36px;
  809. margin-top: 82px;
  810. /*校院通知*/
  811. .left_t_r {
  812. width: 672px;
  813. height: 406px;
  814. background: url("~@/assets/image/index_icon9.png") no-repeat;
  815. background-size: 100% 100%;
  816. padding: 12px 28px 0;
  817. box-sizing: border-box;
  818. > li {
  819. width: 100%;
  820. height: 90px;
  821. border-bottom: 1px solid #2098B7;
  822. padding-top: 18px;
  823. .left_t_r_t {
  824. height: 16px;
  825. display: flex;
  826. justify-content: flex-start;
  827. align-items: center;
  828. > i {
  829. display: inline-block;
  830. font-size: 16px;
  831. font-family: Source Han Sans CN;
  832. font-weight: 400;
  833. color: #FFFFFF;
  834. line-height: 16px;
  835. }
  836. > i:nth-of-type(1) {
  837. width: 242px;
  838. white-space: nowrap;
  839. overflow: hidden;
  840. text-overflow: ellipsis;
  841. margin-right: 20px;
  842. }
  843. > i:nth-of-type(2) {
  844. width: 208px;
  845. }
  846. > i:nth-of-type(3) {
  847. width: 128px;
  848. }
  849. > img {
  850. width: 12px;
  851. height: 12px;
  852. cursor: pointer;
  853. }
  854. }
  855. .left_t_r_b {
  856. margin-top: 12px;
  857. font-size: 14px;
  858. font-family: Source Han Sans CN;
  859. font-weight: 400;
  860. color: #FFFFFF;
  861. line-height: 18px;
  862. }
  863. }
  864. }
  865. /*预警通知*/
  866. .left_t_r2 {
  867. width: 672px;
  868. height: 406px;
  869. background: url("~@/assets/image/index_icon9.png") no-repeat;
  870. background-size: 100% 100%;
  871. padding: 10px 16px 0;
  872. box-sizing: border-box;
  873. .left_t_r2_t {
  874. width: 100%;
  875. height: 50px;
  876. display: flex;
  877. justify-content: flex-start;
  878. align-items: center;
  879. > i {
  880. width: 624px;
  881. display: inline-block;
  882. font-size: 18px;
  883. font-family: Source Han Sans CN;
  884. font-weight: 400;
  885. color: #FFFFFF;
  886. line-height: 50px;
  887. text-align: center;
  888. }
  889. > img {
  890. width: 12px;
  891. height: 12px;
  892. cursor: pointer;
  893. }
  894. }
  895. .left_t_r2_title {
  896. display: flex;
  897. p {
  898. flex: 1;
  899. text-align: center;
  900. font-size: 16px;
  901. line-height: 18px;
  902. color: #fff;
  903. margin: 26px 0;
  904. font-family: Source Han Sans CN;
  905. font-weight: 400;
  906. }
  907. img {
  908. width: 12px;
  909. height: 12px;
  910. cursor: pointer;
  911. margin: 28px 10px;
  912. }
  913. }
  914. .left_t_r2_m {
  915. background: rgba(15, 96, 124, 0.2);
  916. height: 50px;
  917. width: 100%;
  918. display: flex;
  919. justify-content: flex-start;
  920. > i {
  921. display: inline-block;
  922. font-size: 16px;
  923. font-family: Source Han Sans CN;
  924. font-weight: 400;
  925. color: #FFFFFF;
  926. line-height: 50px;
  927. white-space: nowrap;
  928. overflow: hidden;
  929. text-overflow: ellipsis;
  930. }
  931. > i:nth-of-type(1) {
  932. width: 146px;
  933. margin-left: 22px;
  934. margin-right: 20px;
  935. }
  936. > i:nth-of-type(2) {
  937. width: 234px;
  938. }
  939. > i:nth-of-type(3) {
  940. width: 179px;
  941. }
  942. }
  943. .left_t_r2_b {
  944. > li {
  945. cursor: pointer;
  946. height: 40px;
  947. width: 100%;
  948. display: flex;
  949. justify-content: flex-start;
  950. align-items: center;
  951. > i {
  952. display: inline-block;
  953. font-size: 16px;
  954. font-family: Source Han Sans CN;
  955. font-weight: 400;
  956. color: #FFFFFF;
  957. line-height: 40px;
  958. white-space: nowrap;
  959. overflow: hidden;
  960. text-overflow: ellipsis;
  961. }
  962. > i:nth-of-type(1) {
  963. width: 146px;
  964. margin-left: 22px;
  965. margin-right: 10px;
  966. }
  967. > i:nth-of-type(2) {
  968. width: 240px;
  969. margin-right: 10px;
  970. }
  971. > i:nth-of-type(3) {
  972. // width: 146px;
  973. width: 179px;
  974. }
  975. > img {
  976. width: 12px;
  977. height: 12px;
  978. margin-left: 10px;
  979. }
  980. }
  981. > li:nth-of-type(even) {
  982. background: rgba(41, 124, 158, 0.2);
  983. }
  984. }
  985. }
  986. /*安全检查*/
  987. .left_t_r3 {
  988. width: 672px;
  989. height: 406px;
  990. background: url("~@/assets/image/index_icon9.png") no-repeat;
  991. background-size: 100% 100%;
  992. padding: 10px 16px 0;
  993. box-sizing: border-box;
  994. .left_t_r2_t {
  995. width: 100%;
  996. display: flex;
  997. justify-content: flex-start;
  998. align-items: center;
  999. margin-top: 26px;
  1000. > i {
  1001. width: 624px;
  1002. display: inline-block;
  1003. font-size: 18px;
  1004. font-family: Source Han Sans CN;
  1005. font-weight: 400;
  1006. color: #FFFFFF;
  1007. line-height: 18px;
  1008. text-align: center;
  1009. }
  1010. > img {
  1011. width: 12px;
  1012. height: 12px;
  1013. cursor: pointer;
  1014. }
  1015. }
  1016. .left_t_r2_t2 {
  1017. width: 100%;
  1018. height: 56px;
  1019. display: flex;
  1020. justify-content: flex-start;
  1021. align-items: center;
  1022. > i {
  1023. width: 624px;
  1024. display: inline-block;
  1025. font-size: 16px;
  1026. font-family: Source Han Sans CN;
  1027. font-weight: 400;
  1028. color: #FFFFFF;
  1029. line-height: 56px;
  1030. text-align: center;
  1031. }
  1032. }
  1033. .left_t_r2_m {
  1034. background: rgba(15, 96, 124, 0.2);
  1035. height: 50px;
  1036. width: 100%;
  1037. display: flex;
  1038. justify-content: flex-start;
  1039. > i {
  1040. display: inline-block;
  1041. font-size: 16px;
  1042. font-family: Source Han Sans CN;
  1043. font-weight: 400;
  1044. color: #FFFFFF;
  1045. line-height: 50px;
  1046. white-space: nowrap;
  1047. overflow: hidden;
  1048. text-overflow: ellipsis;
  1049. }
  1050. > i:nth-of-type(1) {
  1051. width: 260px;
  1052. margin-left: 22px;
  1053. }
  1054. > i:nth-of-type(2) {
  1055. width: 140px;
  1056. }
  1057. > i:nth-of-type(3) {
  1058. width: 180px;
  1059. }
  1060. > i:nth-of-type(4) {
  1061. width: 182px;
  1062. }
  1063. > i:nth-of-type(5) {
  1064. width: 62px;
  1065. }
  1066. }
  1067. .left_t_r2_b {
  1068. > li {
  1069. height: 40px;
  1070. width: 100%;
  1071. display: flex;
  1072. justify-content: flex-start;
  1073. > i {
  1074. display: inline-block;
  1075. font-size: 14px;
  1076. font-family: Source Han Sans CN;
  1077. font-weight: 400;
  1078. color: #FFFFFF;
  1079. line-height: 40px;
  1080. white-space: nowrap;
  1081. overflow: hidden;
  1082. text-overflow: ellipsis;
  1083. }
  1084. > i:nth-of-type(1) {
  1085. width: 260px;
  1086. margin-left: 22px;
  1087. }
  1088. > i:nth-of-type(2) {
  1089. width: 140px;
  1090. }
  1091. > i:nth-of-type(3) {
  1092. width: 180px;
  1093. }
  1094. > i:nth-of-type(4) {
  1095. width: 182px;
  1096. }
  1097. > i:nth-of-type(5) {
  1098. width: 62px;
  1099. }
  1100. > img {
  1101. width: 12px;
  1102. height: 12px;
  1103. margin-top:13px;
  1104. cursor: pointer;
  1105. }
  1106. }
  1107. > li:nth-of-type(even) {
  1108. background: rgba(41, 124, 158, 0.2);
  1109. }
  1110. }
  1111. }
  1112. /*分级管控*/
  1113. .left_t_r4 {
  1114. width: 672px;
  1115. height: 406px;
  1116. background: url("~@/assets/image/index_icon9.png") no-repeat;
  1117. background-size: 100% 100%;
  1118. padding: 10px 16px 0;
  1119. box-sizing: border-box;
  1120. .left_t_r2_t {
  1121. width: 100%;
  1122. height: 50px;
  1123. display: flex;
  1124. justify-content: flex-start;
  1125. align-items: center;
  1126. > i {
  1127. width: 624px;
  1128. display: inline-block;
  1129. font-size: 18px;
  1130. font-family: Source Han Sans CN;
  1131. font-weight: 400;
  1132. color: #FFFFFF;
  1133. line-height: 50px;
  1134. text-align: center;
  1135. }
  1136. > img {
  1137. width: 12px;
  1138. height: 12px;
  1139. cursor: pointer;
  1140. }
  1141. }
  1142. .left_t_r2_m {
  1143. background: rgba(15, 96, 124, 0.2);
  1144. height: 50px;
  1145. width: 100%;
  1146. display: flex;
  1147. justify-content: flex-start;
  1148. > i {
  1149. display: inline-block;
  1150. font-size: 16px;
  1151. font-family: Source Han Sans CN;
  1152. font-weight: 400;
  1153. color: #FFFFFF;
  1154. line-height: 50px;
  1155. white-space: nowrap;
  1156. overflow: hidden;
  1157. text-overflow: ellipsis;
  1158. }
  1159. > i:nth-child(1) {
  1160. width: 130px;
  1161. margin-left: 22px;
  1162. }
  1163. > i:nth-child(2) {
  1164. width: 120px;
  1165. }
  1166. > i:nth-child(3) {
  1167. width: 140px;
  1168. }
  1169. > i:nth-child(4) {
  1170. width: 140px;
  1171. }
  1172. > i:nth-child(5) {
  1173. width: 80px;
  1174. }
  1175. }
  1176. .left_t_r2_b {
  1177. > li {
  1178. height: 40px;
  1179. width: 100%;
  1180. display: flex;
  1181. justify-content: flex-start;
  1182. > i {
  1183. display: inline-block;
  1184. font-size: 16px;
  1185. font-family: Source Han Sans CN;
  1186. font-weight: 400;
  1187. color: #FFFFFF;
  1188. line-height: 40px;
  1189. white-space: nowrap;
  1190. overflow: hidden;
  1191. text-overflow: ellipsis;
  1192. }
  1193. > i:nth-child(1) {
  1194. width: 130px;
  1195. margin-left: 22px;
  1196. }
  1197. > i:nth-child(2) {
  1198. width: 120px;
  1199. }
  1200. > i:nth-child(3) {
  1201. width: 140px;
  1202. }
  1203. > i:nth-child(4) {
  1204. width: 140px;
  1205. }
  1206. > i:nth-child(5) {
  1207. width: 80px;
  1208. }
  1209. }
  1210. .controlColorOne {
  1211. color: #FF4448;
  1212. }
  1213. .controlColorTow {
  1214. color: #F98556;
  1215. }
  1216. .controlColorThree {
  1217. color: #46AF2D;
  1218. }
  1219. .controlColorFour {
  1220. color: #5688F9;
  1221. }
  1222. > li:nth-of-type(even) {
  1223. background: rgba(41, 124, 158, 0.2);
  1224. }
  1225. }
  1226. }
  1227. }
  1228. }
  1229. .left_b {
  1230. width: 1027px;
  1231. height: 452px;
  1232. background: url("~@/assets/image/index_icon10.png") no-repeat;
  1233. background-size: 100% 100%;
  1234. margin-top: 20px;
  1235. margin-left: 16px;
  1236. overflow: hidden;
  1237. .left_b_t {
  1238. display: flex;
  1239. justify-content: flex-start;
  1240. .left_b_t_l {
  1241. width: 482px;
  1242. padding-top: 28px;
  1243. margin-left: 14px;
  1244. .left_b_t_l_b {
  1245. width: 482px;
  1246. height: 268px;
  1247. }
  1248. }
  1249. .left_b_t_r {
  1250. width: 468px;
  1251. padding-top: 28px;
  1252. margin-left: 34px;
  1253. .left_b_t_r_b {
  1254. width: 468px;
  1255. height: 268px;
  1256. }
  1257. }
  1258. }
  1259. .left_b_t1 {
  1260. width: 952px;
  1261. height: 2px;
  1262. margin-left: 48px;
  1263. }
  1264. .left_b_b {
  1265. width: 100%;
  1266. height: 112px;
  1267. overflow: hidden;
  1268. background: 0;
  1269. > ul {
  1270. /*height: 2000px;*/
  1271. animation-name: move;
  1272. //animation-duration: 6s;
  1273. /* 设置无限循环 */
  1274. animation-timing-function: linear; // 动画速度曲线,匀速
  1275. animation-iteration-count: infinite; // 动画循环无限次播放
  1276. > li {
  1277. width: 966px;
  1278. height: auto;
  1279. margin: 0 30px;
  1280. background: rgba(30, 118, 142, 0.2);
  1281. margin-bottom: 12px;
  1282. padding: 12px 0;
  1283. box-sizing: border-box;
  1284. .left_b_b_t {
  1285. display: flex;
  1286. justify-content: flex-start;
  1287. > i {
  1288. display: inline-block;
  1289. font-size: 16px;
  1290. font-family: Source Han Sans CN;
  1291. font-weight: bold;
  1292. color: #00FAFF;
  1293. line-height: 16px;
  1294. }
  1295. > i:nth-of-type(1) {
  1296. margin-right: 42px;
  1297. margin-left: 12px;
  1298. }
  1299. > i:nth-of-type(2) {
  1300. font-weight: bold;
  1301. margin-right: 8px;
  1302. }
  1303. > i:nth-of-type(3) {
  1304. color: #00AA3C;
  1305. }
  1306. }
  1307. .left_b_b_b {
  1308. width: 100%;
  1309. display: flex;
  1310. justify-content: flex-start;
  1311. overflow: hidden;
  1312. margin-top: 16px;
  1313. margin-left: 12px;
  1314. flex-wrap: wrap;
  1315. > i {
  1316. display: inline-block;
  1317. font-size: 14px;
  1318. font-family: Source Han Sans CN;
  1319. font-weight: 400;
  1320. color: #FFFFFF;
  1321. line-height: 18px;
  1322. margin-right: 30px;
  1323. }
  1324. }
  1325. }
  1326. }
  1327. }
  1328. .left_b_b:hover > ul {
  1329. cursor: pointer;
  1330. animation-play-state: paused;
  1331. }
  1332. .showClass {
  1333. display: block;
  1334. }
  1335. /*风险预案*/
  1336. .risk {
  1337. width: 1028px;
  1338. height: 458px;
  1339. position: absolute;
  1340. left: 0px;
  1341. top: 512px;
  1342. z-index: 200;
  1343. display: flex;
  1344. justify-content: flex-start;
  1345. flex-wrap: wrap;
  1346. align-items: center;
  1347. padding-left: 34px;
  1348. padding-top: 50px;
  1349. overflow-y: auto;
  1350. display: none;
  1351. > li {
  1352. -webkit-animation: ani 2s linear infinite;
  1353. background: url("~@/assets/image/index_icon13.png") no-repeat;
  1354. background-size: 100% 100%;
  1355. width: 100%;
  1356. height: 100px;
  1357. display: flex;
  1358. justify-content: flex-start;
  1359. align-items: center;
  1360. margin-bottom: 40px;
  1361. > img {
  1362. width: 40px;
  1363. height: 40px;
  1364. margin-left: 28px;
  1365. margin-right: 12px;
  1366. }
  1367. > i {
  1368. display: inline-block;
  1369. font-size: 18px;
  1370. font-family: Source Han Sans CN;
  1371. font-weight: bold;
  1372. color: #FFFFFF;
  1373. line-height: 22px;
  1374. }
  1375. > i:nth-of-type(1) {
  1376. font-size: 22px;
  1377. width: 144px;
  1378. }
  1379. > i:nth-of-type(2) {
  1380. width: 76px;
  1381. }
  1382. > i:nth-of-type(3) {
  1383. width: 288px;
  1384. }
  1385. > i:nth-of-type(4) {
  1386. width: 248px;
  1387. }
  1388. > i:nth-of-type(5) {
  1389. width: 120px;
  1390. }
  1391. }
  1392. .one_top {
  1393. margin-top: 276px;
  1394. }
  1395. }
  1396. }
  1397. }
  1398. .right {
  1399. width: 748px;
  1400. height: 880px;
  1401. position: absolute;
  1402. right: 62px;
  1403. top: 148px;
  1404. z-index: 50;
  1405. background: url("~@/assets/image/index_icon11.png") no-repeat;
  1406. background-size: 100% 100%;
  1407. padding: 34px 30px 0 34px;
  1408. box-sizing: border-box;
  1409. .right_t {
  1410. width: 684px;
  1411. .right_t_b {
  1412. width: 684px;
  1413. height: 226px;
  1414. }
  1415. }
  1416. .right_b {
  1417. margin-top: 18px;
  1418. display: flex;
  1419. flex-direction: column;
  1420. overflow: hidden;
  1421. .title-component-p{
  1422. font-size: 18px;
  1423. font-family: Source Han Sans CN;
  1424. font-weight: bold;
  1425. color: #1ED0F8;
  1426. line-height: 18px;
  1427. height:18px;
  1428. margin-bottom:20px;
  1429. }
  1430. //滚动条
  1431. .warning-max-big-box::-webkit-scrollbar{
  1432. width: 0; /*高宽分别对应横竖滚动条的尺寸*/
  1433. height: 0;
  1434. }
  1435. .warning-max-big-box::-webkit-scrollbar-thumb{
  1436. border-radius: 5px;
  1437. -webkit-box-shadow: inset 0 0 5px rgba(255,255,255,0);
  1438. background: rgba(255,255,255,0);
  1439. }
  1440. .warning-max-big-box::-webkit-scrollbar-track{
  1441. -webkit-box-shadow: inset 0 0 5px rgba(255,255,255,0);
  1442. border-radius: 0;
  1443. background: rgba(255,255,255,0);
  1444. }
  1445. .warning-max-big-box {
  1446. width:680px;
  1447. padding: 5px 0 0;
  1448. height: 500px;
  1449. z-index: 200;
  1450. justify-content: flex-start;
  1451. flex-wrap: wrap;
  1452. align-items: center;
  1453. overflow-y: scroll;
  1454. .warning-for-box {
  1455. -webkit-animation: ani 2s linear infinite;
  1456. background: url("~@/assets/image/index_icon13.png") no-repeat;
  1457. background-size: 100% 100%;
  1458. width: 100%;
  1459. height: 100px;
  1460. display: flex;
  1461. justify-content: flex-start;
  1462. align-items: center;
  1463. padding-right:10px;
  1464. margin-bottom: 10px;
  1465. img {
  1466. width: 40px;
  1467. height: 40px;
  1468. margin-left: 28px;
  1469. margin-right: 12px;
  1470. }
  1471. .warning-name {
  1472. display: inline-block;
  1473. font-family: Source Han Sans CN;
  1474. font-weight: bold;
  1475. color: #FFFFFF;
  1476. line-height: 22px;
  1477. font-size: 22px;
  1478. width: 200px;
  1479. }
  1480. div {
  1481. flex: 1;
  1482. span {
  1483. display: inline-block;
  1484. font-size: 18px;
  1485. font-family: Source Han Sans CN;
  1486. font-weight: bold;
  1487. color: #FFFFFF;
  1488. line-height: 22px;
  1489. margin-right: 20px;
  1490. }
  1491. }
  1492. .warning-button {
  1493. display: inline-block;
  1494. font-size: 18px;
  1495. font-family: Source Han Sans CN;
  1496. font-weight: bold;
  1497. color: #FFFFFF;
  1498. line-height: 22px;
  1499. margin-right: 20px;
  1500. cursor: pointer;
  1501. }
  1502. }
  1503. }
  1504. }
  1505. }
  1506. }
  1507. /*滚动动画*/
  1508. @keyframes move {
  1509. 0% {
  1510. transform: translateY(0)
  1511. }
  1512. 100% {
  1513. transform: translateY(-70)
  1514. }
  1515. }
  1516. </style>
  1517. <style lang="scss">
  1518. li {
  1519. list-style: none
  1520. }
  1521. i, em, b {
  1522. font-style: normal;
  1523. font-weight: 100;
  1524. }
  1525. body {
  1526. margin: 0
  1527. }
  1528. </style>