BoardInfo.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <script setup lang="ts">
  2. import { SYSTEM_CONFIG } from "@/utils/public";
  3. import { InpatientBoardKey, type InpatientBoardType } from "./index";
  4. import BoardCard from "./BoardCardNew.vue";
  5. import RenderTable from "@/components/nursing-dashboard/RenderTable.vue";
  6. import { magicApi } from "@/utils/database/magic-api-request";
  7. const store = inject(InpatientBoardKey) as InpatientBoardType;
  8. async function handleQuery(business) {
  9. return await magicApi({
  10. url: "/public/dashboard/dataSource",
  11. method: "post",
  12. data: {
  13. isSource: false,
  14. business: business,
  15. wardCode: store.urlQuery.ward,
  16. },
  17. })
  18. .then(res => {
  19. return res;
  20. })
  21. .catch(() => {
  22. return {};
  23. });
  24. }
  25. </script>
  26. <template>
  27. <div class="layout_container info_main">
  28. <div class="top-area">
  29. <div class="top-title">
  30. <b style="font-size: 2.5rem"
  31. >{{ SYSTEM_CONFIG.HOSPITAL_NAME }} | {{ store.urlQuery.wardName }}</b
  32. >
  33. </div>
  34. <div class="top-time-area">
  35. {{ store.time.weekName }}
  36. <br />
  37. {{ store.time.now }}
  38. </div>
  39. </div>
  40. <div class="layout_container" style="height: max-content">
  41. <!-- <div class="layout_main layout_container layout-horizontal">
  42. <div class="layout_main">
  43. <b style="font-size: 2.63rem"
  44. >{{ SYSTEM_CONFIG.HOSPITAL_NAME }} |
  45. {{ store.urlQuery.wardName }}</b
  46. >
  47. <div>
  48. 床位 - {{ store.data.value.length }} 在用 /
  49. {{ store.bedCount.value }} 全部
  50. </div>
  51. <div
  52. style="height: 2px; background-color: #0a84fd; margin-top: 5px"
  53. ></div>
  54. </div>
  55. <div class="右边宽度">
  56. <div class="蓝色底框" style="font-size: 1.56rem">
  57. {{ store.time.weekName }}
  58. <br />
  59. {{ store.time.now }}
  60. </div>
  61. </div>
  62. </div> -->
  63. </div>
  64. <div
  65. class="layout_main layout_container layout-horizontal"
  66. style="padding: 0 0.63rem; height: 70%"
  67. >
  68. <div class="left-area">
  69. <div class="left-title-1">通知公告</div>
  70. <div class="left-content-1"></div>
  71. <div class="left-title-2">病区统计</div>
  72. <div class="table-area">
  73. <RenderTable
  74. :ref="
  75. el => {
  76. store.renderTableRef.value = el;
  77. }
  78. "
  79. :html-data="store.store.htmlData"
  80. :ward-code="store.urlQuery.ward"
  81. />
  82. </div>
  83. </div>
  84. <div class="layout_main" style="padding: 0">
  85. <BoardCard />
  86. </div>
  87. </div>
  88. <div class="bottom-area">
  89. <div class="bottom-area-1">
  90. <div>
  91. 床位使用情况: 总床位 (<span>{{ store.bedCount.value }}</span
  92. >)
  93. </div>
  94. <div>
  95. 已使用 (<span> {{ store.data.value.length }}</span
  96. >)
  97. </div>
  98. <div>
  99. 空床 (<span>{{ store.bedCount.value - store.data.value.length }}</span
  100. >)
  101. </div>
  102. </div>
  103. <div class="bottom-area-2">
  104. <div>
  105. <img src="../../../assets/dashboard/remind.png" alt="" />
  106. 温馨提示:请大家保持安静,请勿大声喧哗!
  107. </div>
  108. </div>
  109. <div class="bottom-area-3">
  110. <div>
  111. <img src="../../../assets/dashboard/nursingLevel4.png" alt="" />
  112. 特级护理
  113. </div>
  114. <div>
  115. <img src="../../../assets/dashboard/nursingLevel1.png" alt="" />
  116. 一级护理
  117. </div>
  118. <div>
  119. <img src="../../../assets/dashboard/nursingLevel2.png" alt="" />
  120. 二级护理
  121. </div>
  122. <div>
  123. <img src="../../../assets/dashboard/nursingLevel3.png" alt="" />
  124. 三级护理
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </template>
  130. <style lang="scss">
  131. .top-area {
  132. width: 100%;
  133. height: 10%;
  134. display: flex;
  135. justify-content: center;
  136. align-items: center;
  137. position: relative;
  138. background-color: #5373eb;
  139. margin-top: 0.31rem;
  140. margin-bottom: 0.5rem;
  141. .top-time-area {
  142. position: absolute;
  143. right: 40px;
  144. font-size: 1.5rem;
  145. }
  146. }
  147. .info_main {
  148. .left-area {
  149. width: 30%;
  150. border: 3px solid #a7b6ff;
  151. color: #1c2641;
  152. background-color: #ffffff;
  153. .left-title-1 {
  154. height: 10%;
  155. // height: 3.5rem;
  156. font-size: 1.2rem;
  157. display: flex;
  158. align-items: center;
  159. padding: 10px;
  160. font-weight: bold;
  161. border-bottom: 2px solid #a7b6ff;
  162. }
  163. .left-content-1 {
  164. height: 15%;
  165. // height: 8rem;
  166. border-bottom: 2px solid #a7b6ff;
  167. }
  168. .left-title-2 {
  169. height: 10%;
  170. // height: 3.5rem;
  171. font-size: 1.2rem;
  172. display: flex;
  173. justify-content: center;
  174. align-items: center;
  175. font-weight: bold;
  176. border-bottom: 2px solid #a7b6ff;
  177. padding: 10px;
  178. }
  179. .table-area {
  180. height: 65%;
  181. // padding: 10px;
  182. overflow: auto;
  183. }
  184. // padding: 2px;
  185. }
  186. .bottom-area {
  187. width: 100%;
  188. height: 5%;
  189. display: flex;
  190. background-color: #ffffff;
  191. color: #6f7474;
  192. box-sizing: border-box;
  193. padding: 0 10px;
  194. .bottom-area-1 {
  195. width: 30%;
  196. display: flex;
  197. align-items: center;
  198. div {
  199. margin-right: 10px;
  200. }
  201. span {
  202. color: #ff6830;
  203. }
  204. }
  205. .bottom-area-2 {
  206. width: 40%;
  207. display: flex;
  208. align-items: center;
  209. justify-content: center;
  210. div {
  211. display: flex;
  212. justify-content: center;
  213. align-items: center;
  214. }
  215. img {
  216. width: 20px;
  217. height: 20px;
  218. margin-right: 5px;
  219. }
  220. }
  221. .bottom-area-3 {
  222. width: 30%;
  223. display: flex;
  224. justify-content: center;
  225. align-items: center;
  226. div {
  227. display: flex;
  228. justify-content: center;
  229. align-items: center;
  230. margin-left: 20px;
  231. }
  232. img {
  233. width: 20px;
  234. height: 20px;
  235. margin-right: 5px;
  236. }
  237. }
  238. }
  239. .蓝色底框 {
  240. margin-top: 0.31rem;
  241. padding-bottom: 0.31rem;
  242. border-bottom: 0.19rem solid #0a84fd;
  243. }
  244. .深度边框 {
  245. height: 0;
  246. flex: 1;
  247. border-radius: 0.63rem;
  248. padding: 0.31rem;
  249. background-color: #1c2641;
  250. }
  251. }
  252. </style>