Inpatient.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <div class="inpatient-wrapper" :style="backgroundColor(brief.sickLevel)">
  3. <el-tooltip :content="getSurgeryInfo(brief.surgery)" placement="top">
  4. <div class="top-line">
  5. <div style="width: 40px">{{ brief.bedNo }}床</div>
  6. <div style="width: 80px">
  7. <img :src="getGenderIcon(brief.gender)" class="sex-icon" style="margin-top: 0px" />
  8. {{ brief.name }}
  9. </div>
  10. <div style="width: 40px">{{ brief.indays }}天</div>
  11. </div>
  12. </el-tooltip>
  13. <div class="mid-line">
  14. <div>
  15. <div style="width: 60px">住院号:</div>
  16. <div>{{ brief.patNo }}</div>
  17. </div>
  18. <div>
  19. <div style="width: 60px">出生日期:</div>
  20. <div>{{ brief.birthDate }}</div>
  21. </div>
  22. <div>
  23. <div style="width: 60px">入院时间:</div>
  24. <div>{{ brief.convertAdmissDate }}</div>
  25. </div>
  26. <div>
  27. <div style="width: 60px">管床医生:</div>
  28. <div>{{ brief.physician }}</div>
  29. </div>
  30. <div>
  31. <div style="width: 60px">医疗类别:</div>
  32. <div>{{ brief.medTypeName }}</div>
  33. </div>
  34. <div>
  35. <div style="width: 60px">护理级别:</div>
  36. <div>{{ brief.nursingLevel }}</div>
  37. </div>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. import maleIcon from '@/assets/male-icon.png'
  43. import femaleIcon from '@/assets/female-icon.png'
  44. export default {
  45. props: {
  46. brief: {
  47. type: Object,
  48. required: true,
  49. },
  50. },
  51. setup() {
  52. const getGenderIcon = (gender) => {
  53. return gender === 1 ? maleIcon : femaleIcon
  54. }
  55. const getSurgeryInfo = (surgery) => {
  56. return surgery ? '今日手术:' + surgery : '今日无手术'
  57. }
  58. const backgroundColor = (status) => {
  59. switch (status) {
  60. case 0:
  61. return {
  62. background: '#67C23A',
  63. color: '#000000',
  64. }
  65. case 1:
  66. return {
  67. background: '#E6A23C',
  68. color: '#FFFFFF',
  69. }
  70. case 2:
  71. return {
  72. background: '#F56C6C',
  73. color: '#FFFFFF',
  74. }
  75. }
  76. }
  77. return {
  78. getGenderIcon,
  79. getSurgeryInfo,
  80. backgroundColor,
  81. }
  82. },
  83. }
  84. </script>
  85. <style lang="scss" scoped>
  86. .inpatient-wrapper {
  87. width: 160px;
  88. height: 152px;
  89. background: rgb(255, 207, 207);
  90. margin: 12px 12px 0 0;
  91. border-radius: 4px;
  92. font-size: 12px !important;
  93. .top-line {
  94. border-top-left-radius: 4px;
  95. border-top-right-radius: 4px;
  96. display: flex;
  97. height: 26px;
  98. line-height: 26px;
  99. font-weight: bold;
  100. background: rgb(16, 102, 131);
  101. color: white;
  102. &:hover {
  103. cursor: default;
  104. }
  105. > div {
  106. text-align: center;
  107. }
  108. }
  109. .mid-line {
  110. padding: 0 0 6px 4px;
  111. border-bottom: 1px solid rgb(255, 255, 255);
  112. > div {
  113. margin-top: 6px;
  114. display: flex;
  115. }
  116. }
  117. }
  118. </style>