血透系统pad前端

WaitingArea.vue 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734
  1. <template>
  2. <div>
  3. <div v-loading="loading">
  4. <div class="screening">
  5. <!--<div @click="reloads()">刷新</div>-->
  6. <ul>
  7. <li
  8. v-for="(item, i) in menuList"
  9. :class="select_index == i ? 'active' : ''"
  10. @click="menuTabClick(i)"
  11. :key="i"
  12. >
  13. {{ item.label + (item.count > 0 ? "(" + item.count + ")" : "") }}
  14. </li>
  15. <el-popover
  16. v-model="zone_options_visible"
  17. placement="bottom"
  18. trigger="click"
  19. >
  20. <li slot="reference">
  21. {{ zone_options[zone_selected].text }}
  22. <span class="iconfont">&#xe74a;</span>
  23. </li>
  24. <div class="popover-demo-content">
  25. <ul>
  26. <li
  27. v-for="(option, index) in zone_options"
  28. :key="index"
  29. @click="handleZoneChange(index, option)"
  30. :class="zone_selected == index ? 'tick' : ''"
  31. >
  32. {{ option.text }}
  33. </li>
  34. </ul>
  35. </div>
  36. </el-popover>
  37. <el-popover
  38. v-model="time_options_visible"
  39. placement="bottom"
  40. trigger="click"
  41. >
  42. <li slot="reference">
  43. {{ time_options[time_selected].text }}
  44. <span class="iconfont">&#xe74a;</span>
  45. </li>
  46. <div class="popover-demo-content">
  47. <ul>
  48. <li
  49. v-for="(option, index) in time_options"
  50. :key="index"
  51. @click="handleTimeChange(index)"
  52. :class="time_selected == index ? 'tick' : ''"
  53. >
  54. {{ option.text }}
  55. </li>
  56. </ul>
  57. </div>
  58. </el-popover>
  59. </ul>
  60. </div>
  61. <div class="stateBox">
  62. <!-- <patient-box class="clearfix" :patients="filtedScheduals "></patient-box> -->
  63. <div v-for="(item, index) in filtedScheduals" :key="index">
  64. <h2 class="title">{{ item.zone_name }}</h2>
  65. <patient-box
  66. class="clearfix"
  67. :patients="item.scheduals"
  68. ></patient-box>
  69. </div>
  70. <div class="NoData" v-if="filtedScheduals.length == 0 && networkStates">
  71. <img
  72. style="margin-top: 50px; margin-bottom: 50px"
  73. src="@/assets/login/data.jpg"
  74. alt
  75. />
  76. </div>
  77. <div
  78. class="NoData"
  79. v-if="!networkStates"
  80. style="display: block;text-align: center;"
  81. >
  82. <!--<img style="margin-top: 50px; margin-bottom: 50px" src="@/assets/login/no_network.jpg" alt="">-->
  83. <p style="margin-top: 100px;font-size: 18px">
  84. 网络异常,请点击重新加载
  85. </p>
  86. <van-button
  87. slot="button"
  88. size="normal"
  89. type="info"
  90. style="display:block;margin:0 auto"
  91. @click="reloads()"
  92. >重新加载</van-button
  93. >
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. </template>
  99. <script>
  100. import PatientBox from './PatientBox'
  101. import { getWaitingScheduals } from '@/api/dialysis'
  102. import { parseTime } from '@/utils'
  103. import { Popover } from 'vux'
  104. import { Toast } from 'vant'
  105. import {
  106. getSelectedAreaDataConfigList,
  107. getSelectedTimesDataConfigList,
  108. setSelectedAreaDataConfigList,
  109. setSelectedTimesDataConfigList,
  110. setWaitTypeSelectedConfig,
  111. getWaitTypeSelectedConfig
  112. } from '@/utils/data_config'
  113. export default {
  114. name: 'WaitingArea',
  115. components: {
  116. PatientBox,
  117. Popover
  118. },
  119. inject: ['reload'],
  120. data () {
  121. return {
  122. loading: false,
  123. menuList: [
  124. { value: '1', label: '全部', count: 0 },
  125. { value: '3', label: '待开处方', count: 0 },
  126. { value: '2', label: '待称重', count: 0 }
  127. ],
  128. select_index: 0,
  129. zone_selected: 0,
  130. time_selected: 0,
  131. cur_zone_selected: 0,
  132. networkStates: true,
  133. scheduals: [],
  134. zone_options: [{ value: 0, text: '全部分区' }],
  135. zone_scheduals: [],
  136. time_options: [
  137. { value: 0, text: '全部班' },
  138. { value: 1, text: '上午' },
  139. { value: 2, text: '下午' },
  140. { value: 3, text: '晚上' }
  141. ],
  142. zone_options_visible: false,
  143. time_options_visible: false
  144. }
  145. },
  146. props: {
  147. search_keyword: {
  148. type: String
  149. }
  150. },
  151. computed: {
  152. filtedScheduals: function () {
  153. var search_keyword = this.search_keyword
  154. if (this.search_keyword.length > 0) {
  155. var scheduals = []
  156. for (let index = 0; index < this.scheduals.length; index++) {
  157. const schedual = this.scheduals[index]
  158. if (
  159. schedual.patient.name.indexOf(search_keyword) != -1 ||
  160. schedual.patient.dialysis_no.indexOf(search_keyword) != -1
  161. ) {
  162. scheduals.push(schedual)
  163. }
  164. }
  165. return this.processScheduals(scheduals)
  166. }
  167. //
  168. if (this.zone_selected != 0) {
  169. // var zone_name = this.zone_options[this.zone_selected].text
  170. // for (let index = 0; index < this.zone_scheduals.length; index++) {
  171. // const zone_scheduals = this.zone_scheduals[index]
  172. // if (zone_scheduals.zone_name == zone_name) {
  173. // return [zone_scheduals]
  174. // }
  175. // }
  176. var zone_name = this.zone_options[this.zone_selected].text
  177. var schedules = []
  178. var filtedSchedules = []
  179. for (let o_i = 0; o_i < this.zone_scheduals.length; o_i++) {
  180. const scheduleInfo = this.zone_scheduals[o_i]
  181. var originSchedules = scheduleInfo.scheduals
  182. for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  183. const schedule = originSchedules[s_i]
  184. if (this.zone_selected == 0) {
  185. if (
  186. this.time_selected == 0 ||
  187. schedule.schedule_type == this.time_selected
  188. ) {
  189. filtedSchedules.push(schedule)
  190. }
  191. } else {
  192. if (
  193. zone_name.length > 0 &&
  194. zone_name == schedule.device_number.zone.name
  195. ) {
  196. if (
  197. this.time_selected == 0 ||
  198. schedule.schedule_type == this.time_selected
  199. ) {
  200. filtedSchedules.push(schedule)
  201. }
  202. }
  203. }
  204. }
  205. // if (filtedSchedules.length > 0) {
  206. // schedules.push({
  207. // zone_name: scheduleInfo.zone_name,
  208. // scheduals: filtedSchedules
  209. // });
  210. // }
  211. }
  212. console.log(filtedSchedules)
  213. return this.processScheduals(filtedSchedules)
  214. }
  215. if (this.time_selected != 0) {
  216. var zone_name = this.zone_options[this.zone_selected].text
  217. var schedules = []
  218. var filtedSchedules = []
  219. for (let o_i = 0; o_i < this.zone_scheduals.length; o_i++) {
  220. const scheduleInfo = this.zone_scheduals[o_i]
  221. var originSchedules = scheduleInfo.scheduals
  222. for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  223. const schedule = originSchedules[s_i]
  224. if (this.zone_selected == 0) {
  225. if (
  226. this.time_selected == 0 ||
  227. schedule.schedule_type == this.time_selected
  228. ) {
  229. filtedSchedules.push(schedule)
  230. }
  231. } else {
  232. if (
  233. zone_name.length > 0 &&
  234. zone_name == schedule.device_number.zone.name
  235. ) {
  236. if (
  237. this.time_selected == 0 ||
  238. schedule.schedule_type == this.time_selected
  239. ) {
  240. filtedSchedules.push(schedule)
  241. }
  242. }
  243. }
  244. }
  245. // if (filtedSchedules.length > 0) {
  246. // schedules.push({
  247. // zone_name: scheduleInfo.zone_name,
  248. // scheduals: filtedSchedules
  249. // });
  250. // }
  251. }
  252. console.log(filtedSchedules)
  253. return this.processScheduals(filtedSchedules)
  254. }
  255. var zone_selected = this.zone_selected
  256. var timetype_selected = this.time_selected
  257. var assessment_before_dislysis_count = 0
  258. var prescription_count = 0
  259. if (zone_selected != 0 || timetype_selected != 0) {
  260. var zone_name =
  261. zone_selected == 0 ? '' : this.zone_options[zone_selected].text
  262. var schedules = []
  263. var filtedSchedules = []
  264. for (let o_i = 0; o_i < this.zone_scheduals.length; o_i++) {
  265. const scheduleInfo = this.zone_scheduals[o_i]
  266. var originSchedules = scheduleInfo.scheduals
  267. for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  268. const schedule = originSchedules[s_i]
  269. if (
  270. zone_name.length == 0 ||
  271. (zone_name.length > 0 &&
  272. zone_name == schedule.device_number.zone.name)
  273. ) {
  274. if (
  275. timetype_selected == 0 ||
  276. schedule.schedule_type == timetype_selected
  277. ) {
  278. filtedSchedules.push(schedule)
  279. }
  280. }
  281. }
  282. // if (filtedSchedules.length > 0) {
  283. // schedules.push({
  284. // zone_name: scheduleInfo.zone_name,
  285. // scheduals: filtedSchedules
  286. // });
  287. // }
  288. }
  289. console.log(filtedSchedules)
  290. return this.processScheduals(filtedSchedules)
  291. // eslint-disable-next-line no-unreachable
  292. if (this.select_index == 2) {
  293. var scheduals = []
  294. for (let index = 0; index < this.scheduals.length; index++) {
  295. const schedual = this.scheduals[index]
  296. if (
  297. schedual.assessment_before_dislysis == null ||
  298. schedual.assessment_before_dislysis.weight_before == 0
  299. ) {
  300. if (
  301. this.cur_zone_selected > 0 &&
  302. schedual.device_number.zone.id != this.cur_zone_selected
  303. ) {
  304. continue
  305. }
  306. if (
  307. timetype_selected > 0 &&
  308. schedual.schedule_type != timetype_selected
  309. ) {
  310. continue
  311. }
  312. scheduals.push(schedual)
  313. }
  314. }
  315. return this.processScheduals(scheduals)
  316. // return scheduals;
  317. } else if (this.select_index == 1) {
  318. var scheduals = []
  319. for (let index = 0; index < this.scheduals.length; index++) {
  320. const schedual = this.scheduals[index]
  321. if (
  322. schedual.prescription == null ||
  323. schedual.prescription.creater == 0
  324. ) {
  325. if (
  326. this.cur_zone_selected > 0 &&
  327. schedual.device_number.zone.id != this.cur_zone_selected
  328. ) {
  329. continue
  330. }
  331. if (
  332. timetype_selected > 0 &&
  333. schedual.schedule_type != timetype_selected
  334. ) {
  335. continue
  336. }
  337. scheduals.push(schedual)
  338. }
  339. }
  340. // return scheduals;
  341. return this.processScheduals(scheduals)
  342. } else {
  343. // return this.zone_scheduals;
  344. var scheduals = []
  345. for (let index = 0; index < this.scheduals.length; index++) {
  346. const schedual = this.scheduals[index]
  347. if (schedual.dialysis_order == null) {
  348. if (
  349. this.cur_zone_selected > 0 &&
  350. schedual.device_number.zone.id != this.cur_zone_selected
  351. ) {
  352. continue
  353. }
  354. if (
  355. timetype_selected > 0 &&
  356. schedual.schedule_type != timetype_selected
  357. ) {
  358. continue
  359. }
  360. scheduals.push(schedual)
  361. }
  362. }
  363. // return scheduals;
  364. return this.processScheduals(scheduals)
  365. }
  366. }
  367. if (this.select_index == 2) {
  368. var scheduals = []
  369. for (let index = 0; index < this.scheduals.length; index++) {
  370. const schedual = this.scheduals[index]
  371. if (
  372. schedual.assessment_before_dislysis == null ||
  373. schedual.assessment_before_dislysis.weight_before == 0
  374. ) {
  375. scheduals.push(schedual)
  376. }
  377. }
  378. return this.processScheduals(scheduals)
  379. // return scheduals;
  380. } else if (this.select_index == 1) {
  381. var scheduals = []
  382. for (let index = 0; index < this.scheduals.length; index++) {
  383. const schedual = this.scheduals[index]
  384. if (
  385. schedual.prescription == null ||
  386. schedual.prescription.creater == 0
  387. ) {
  388. scheduals.push(schedual)
  389. }
  390. }
  391. // return scheduals;
  392. return this.processScheduals(scheduals)
  393. } else {
  394. // return this.zone_scheduals;
  395. var scheduals = []
  396. for (let index = 0; index < this.scheduals.length; index++) {
  397. const schedual = this.scheduals[index]
  398. if (schedual.dialysis_order == null) {
  399. scheduals.push(schedual)
  400. }
  401. }
  402. // return scheduals;
  403. return this.processScheduals(scheduals)
  404. }
  405. }
  406. },
  407. created () {
  408. var area = getSelectedAreaDataConfigList()
  409. var time = getSelectedTimesDataConfigList()
  410. var type = getWaitTypeSelectedConfig()
  411. if (area != null) {
  412. this.zone_options_visible = false
  413. this.zone_selected = parseInt(area)
  414. this.select_index = -1
  415. }
  416. if (time != null) {
  417. this.time_selected = parseInt(time)
  418. this.select_index = -1
  419. this.time_options_visible = false
  420. }
  421. if (type != null) {
  422. this.select_index = parseInt(type)
  423. }
  424. var storedata = this.$store.getters.waitscheduals
  425. var scheduals = storedata.waitscheduals
  426. if (Object.keys(storedata).length > 0) {
  427. var totalCount = scheduals.length
  428. var prescription_count = 0
  429. var assessment_before_dislysis_count = 0
  430. for (let index = 0; index < scheduals.length; index++) {
  431. const schedual = scheduals[index]
  432. if (schedual.assessment_before_dislysis == null) {
  433. assessment_before_dislysis_count += 1
  434. }
  435. if (schedual.prescription == null) {
  436. prescription_count += 1
  437. }
  438. }
  439. this.menuList[2].count = assessment_before_dislysis_count
  440. this.menuList[1].count = prescription_count
  441. this.scheduals = scheduals
  442. this.zone_options = this.makeZones(scheduals)
  443. this.zone_scheduals = this.processScheduals(scheduals)
  444. }
  445. // else {
  446. // this.requestScheduals()
  447. // }
  448. },
  449. mounted () {
  450. // this.timer = window.setInterval(() => {
  451. // setTimeout(this.requestScheduals(), 0)
  452. // }, 120000)
  453. },
  454. beforeDestroy () {
  455. clearInterval(this.timer)
  456. this.timer = null
  457. this.$once('hook:beforeDestroy', () => {
  458. clearInterval(this.timer)
  459. })
  460. },
  461. methods: {
  462. processScheduals: function (scheduals) {
  463. var zoneMap = {}
  464. var schedualMap = {}
  465. var assessment_before_dislysis_count = 0
  466. var prescription_count = 0
  467. for (let index = 0; index < scheduals.length; index++) {
  468. const schedual = scheduals[index]
  469. if (schedualMap[schedual.device_number.zone.id] == null) {
  470. schedualMap[schedual.device_number.zone.id] = []
  471. }
  472. if (this.select_index == 1) {
  473. if (
  474. schedual.prescription == null ||
  475. schedual.prescription.creater == 0
  476. ) {
  477. schedualMap[schedual.device_number.zone.id].push(schedual)
  478. prescription_count++
  479. }
  480. } else if (this.select_index == 2) {
  481. if (
  482. schedual.assessment_before_dislysis == null ||
  483. schedual.assessment_before_dislysis.weight_before == 0
  484. ) {
  485. schedualMap[schedual.device_number.zone.id].push(schedual)
  486. assessment_before_dislysis_count++
  487. }
  488. } else {
  489. if (schedual.dialysis_order == null) {
  490. schedualMap[schedual.device_number.zone.id].push(schedual)
  491. }
  492. }
  493. if (zoneMap[schedual.device_number.zone.id] == null) {
  494. zoneMap[schedual.device_number.zone.id] = schedual.device_number.zone
  495. }
  496. }
  497. if (this.select_index == 1) {
  498. this.menuList[1].count = prescription_count
  499. }
  500. if (this.select_index == 2) {
  501. this.menuList[2].count = assessment_before_dislysis_count
  502. }
  503. var zones = []
  504. // zones.push({ value: 0, text: "全部分区" })
  505. for (var zoneId in zoneMap) {
  506. zones.push({ id: zoneMap[zoneId].id, name: zoneMap[zoneId].name })
  507. }
  508. zones = zones.sort(function (a, b) {
  509. return a.id > b.id
  510. })
  511. // this.zones = zones
  512. var zone_scheduals = []
  513. for (let index = 0; index < zones.length; index++) {
  514. const zone = zones[index]
  515. var scheduals = schedualMap[zone.id]
  516. zone_scheduals.push({
  517. zone_id: zone.id,
  518. zone_name: zone.name,
  519. scheduals: scheduals
  520. })
  521. }
  522. // this.zone_scheduals = zone_scheduals;
  523. return zone_scheduals
  524. },
  525. reloads: function () {
  526. this.reload()
  527. },
  528. handleAllChange: function (tabIndex) {
  529. this.select_index = tabIndex
  530. this.zone_selected = 0
  531. this.time_selected = 0
  532. },
  533. menuTabClick: function (tabIndex) {
  534. this.select_index = tabIndex
  535. this.zone_selected = 0
  536. this.time_selected = 0
  537. setSelectedAreaDataConfigList(this.zone_selected)
  538. setSelectedTimesDataConfigList(this.time_selected)
  539. setWaitTypeSelectedConfig(tabIndex)
  540. },
  541. handleZoneChange: function (index, zone) {
  542. this.zone_options_visible = false
  543. this.zone_selected = index
  544. this.cur_zone_selected = zone.value
  545. // this.select_index = -1;
  546. setSelectedAreaDataConfigList(index.toString())
  547. },
  548. handleTimeChange: function (index) {
  549. this.time_selected = index
  550. // this.select_index = -1;
  551. this.time_options_visible = false
  552. setSelectedTimesDataConfigList(index.toString())
  553. },
  554. requestScheduals: function () {
  555. // this.loading = true;
  556. // var date = parseTime(Date.parse(new Date()), '{y}-{m}-{d}')
  557. // getWaitingScheduals({ date: date }).then(rs => {
  558. // var resp = rs.data
  559. // if (resp.state == 1) {
  560. this.loading = false
  561. var storedata = this.$store.getters.waitscheduals
  562. var scheduals = storedata.waitscheduals
  563. // var scheduals = resp.data.scheduals
  564. // this.$store.dispatch('SetWaitScheduals', {
  565. // waitscheduals: scheduals
  566. // })
  567. var totalCount = scheduals.length
  568. var prescription_count = 0
  569. var assessment_before_dislysis_count = 0
  570. for (let index = 0; index < scheduals.length; index++) {
  571. const schedual = scheduals[index]
  572. if (schedual.assessment_before_dislysis == null) {
  573. assessment_before_dislysis_count += 1
  574. }
  575. if (schedual.prescription == null) {
  576. prescription_count += 1
  577. }
  578. }
  579. this.menuList[2].count = assessment_before_dislysis_count
  580. this.menuList[1].count = prescription_count
  581. this.scheduals = scheduals
  582. this.zone_options = this.makeZones(scheduals)
  583. this.zone_scheduals = this.processScheduals(scheduals)
  584. // } else {
  585. // this.loading = false
  586. // this.$toast({
  587. // message: resp.msg
  588. // })
  589. // }
  590. // }).catch(error => {
  591. // this.loading = false
  592. // // 超时之后在这里捕抓错误信息.
  593. // if (error.response) {
  594. // this.networkStates = false
  595. // } else if (error.request) {
  596. // this.networkStates = false
  597. // // if(error.request.readyState == 4 && error.request.status == 0){
  598. // // //我在这里重新请求
  599. // // this.networkStates = false
  600. // // }
  601. // } else {
  602. // this.networkStates = false
  603. // }
  604. // })
  605. },
  606. makeZones: function (scheduals) {
  607. var zoneMap = {}
  608. for (let index = 0; index < scheduals.length; index++) {
  609. const schedual = scheduals[index]
  610. if (zoneMap[schedual.device_number.zone.id] == null) {
  611. zoneMap[schedual.device_number.zone.id] = schedual.device_number.zone
  612. }
  613. }
  614. var zones = []
  615. zones.push({ value: 0, text: '全部分区' })
  616. for (var zoneId in zoneMap) {
  617. zones.push({ value: zoneMap[zoneId].id, text: zoneMap[zoneId].name })
  618. }
  619. // zones = zones.sort(function (a, b) {
  620. // return a.value > b.value
  621. // })
  622. return zones
  623. }
  624. }
  625. }
  626. </script>
  627. <style style="stylesheet/scss" lang="scss" scoped>
  628. .screening {
  629. border-bottom: 1px #e5e5e5 solid;
  630. position: fixed;
  631. top: 100px;
  632. @media only screen and (min-width: 768px) {
  633. top: 163px;
  634. }
  635. @media only screen and (min-width: 415px) and (max-width: 767px) {
  636. top: 134px;
  637. }
  638. right: 0;
  639. z-index: 66;
  640. left: 0;
  641. background: #fff;
  642. // @media only screen and (max-width: 812px) {
  643. // top: 50px !important;
  644. // }
  645. ul {
  646. @include display-flex;
  647. @include align-items-center;
  648. @include text-align;
  649. @include justify-content-between;
  650. width: 96%;
  651. margin: 0 auto;
  652. font-size: 0.45rem;
  653. color: $title-color;
  654. li {
  655. padding: 0.3rem 0;
  656. .iconfont {
  657. font-size: 0.45rem;
  658. margin-left: 0.1rem;
  659. }
  660. }
  661. .active {
  662. position: relative;
  663. &::before {
  664. position: absolute;
  665. bottom: 0;
  666. left: 0;
  667. width: 100%;
  668. height: 2px;
  669. background: $main-color;
  670. // border-bottom: 0.04rem $main-color solid;
  671. content: "";
  672. }
  673. }
  674. }
  675. }
  676. .stateBox {
  677. // padding: 0.5rem 0 0 0.6rem;
  678. .title {
  679. font-size: 0.34rem;
  680. color: #34495e;
  681. font-weight: 600;
  682. height: 1rem;
  683. line-height: 1rem;
  684. display: inline-block;
  685. }
  686. }
  687. .shadow {
  688. width: 100%;
  689. height: 100%;
  690. position: absolute;
  691. left: 0;
  692. top: 0;
  693. z-index: 998;
  694. background-color: #000;
  695. opacity: 0.6;
  696. display: none;
  697. }
  698. </style>