ViewAdverseEvent.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <div :style="reportBoxStyle">
  3. <el-tag>事件信息</el-tag>
  4. <div class="report-column-div">
  5. 事件类型:{{ report.category }} <span style="margin-left: 20px">发生时间:{{ report.occurDatetime }}</span>
  6. </div>
  7. <el-divider></el-divider>
  8. <el-tag>提交人信息</el-tag>
  9. <div class="report-column-div">
  10. 姓名:{{ report.userName }}
  11. <span style="margin-left: 20px">科室:{{ report.department }}</span>
  12. <span style="margin-left: 20px">职称:{{ report.userLevel }}</span>
  13. <span style="margin-left: 20px">工作年限:{{ report.workYear }}</span>
  14. </div>
  15. <el-divider></el-divider>
  16. <el-tag>事件经过</el-tag>
  17. <div class="course-result-div">{{ report.course }}</div>
  18. <el-tag>事件结果与补救措施</el-tag>
  19. <div class="course-result-div">{{ report.result }}</div>
  20. <el-divider></el-divider>
  21. <el-tag>原因分析</el-tag>
  22. <el-row :gutter="0">
  23. <el-col :span="6">
  24. <el-tag type="info">护士因素</el-tag>
  25. <div class="reason-pro-div">
  26. <div v-for="(item, index) in report.nurseReasonArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  27. <div v-if="report.nurseReasonElse">{{ report.nurseReasonArr.length + 1 }}、{{ report.nurseReasonElse }}</div>
  28. </div>
  29. </el-col>
  30. <el-col :span="6">
  31. <el-tag type="info">病人因素</el-tag>
  32. <div class="reason-pro-div">
  33. <div v-for="(item, index) in report.patientReasonArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  34. <div v-if="report.patientReasonElse">{{ report.patientReasonArr.length + 1 }}、{{ report.patientReasonElse }}</div>
  35. </div>
  36. </el-col>
  37. <el-col :span="6">
  38. <el-tag type="info">环境因素</el-tag>
  39. <div class="reason-pro-div">
  40. <div v-for="(item, index) in report.environReasonArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  41. <div v-if="report.environReasonElse">{{ report.environReasonArr.length + 1 }}、{{ report.environReasonElse }}</div>
  42. </div>
  43. </el-col>
  44. <el-col :span="6">
  45. <el-tag type="info">管理因素</el-tag>
  46. <div class="reason-pro-div">
  47. <div v-for="(item, index) in report.manageReasonArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  48. <div v-if="report.manageReasonElse">{{ report.manageReasonArr.length + 1 }}、{{ report.manageReasonElse }}</div>
  49. </div>
  50. </el-col>
  51. </el-row>
  52. <el-divider></el-divider>
  53. <el-tag>改进措施</el-tag>
  54. <el-row :gutter="0">
  55. <el-col :span="6">
  56. <el-tag type="info">护士因素</el-tag>
  57. <div class="reason-pro-div">
  58. <div v-for="(item, index) in report.proNurseArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  59. <div v-if="report.proNurseElse">{{ report.proNurseArr.length + 1 }}、{{ report.proNurseElse }}</div>
  60. </div>
  61. </el-col>
  62. <el-col :span="6">
  63. <el-tag type="info">病人因素</el-tag>
  64. <div class="reason-pro-div">
  65. <div v-for="(item, index) in report.proPatientArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  66. <div v-if="report.proPatientElse">{{ report.proPatientArr.length + 1 }}、{{ report.proPatientElse }}</div>
  67. </div>
  68. </el-col>
  69. <el-col :span="6">
  70. <el-tag type="info">环境因素</el-tag>
  71. <div class="reason-pro-div">
  72. <div v-for="(item, index) in report.proEnvironArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  73. <div v-if="report.proEnvironElse">{{ report.proEnvironArr.length + 1 }}、{{ report.proEnvironElse }}</div>
  74. </div>
  75. </el-col>
  76. <el-col :span="6">
  77. <el-tag type="info">管理因素</el-tag>
  78. <div class="reason-pro-div">
  79. <div v-for="(item, index) in report.proManageArr" :key="index">{{ index + 1 }}、{{ item }}</div>
  80. <div v-if="report.proManageElse">{{ report.proManageArr.length + 1 }}、{{ report.proManageElse }}</div>
  81. </div>
  82. </el-col>
  83. </el-row>
  84. <el-divider></el-divider>
  85. <el-row :gutter="0">
  86. <el-col :span="12">
  87. <el-tag>科室处理意见</el-tag>
  88. <el-input type="textarea" v-model="report.deptDealing" :rows="3" :disabled="report.handled === 1"></el-input>
  89. <div style="width: 100%; text-align: right">
  90. <el-tag type="danger"> 处理人:{{ report.deptDealerName }} </el-tag>
  91. <el-divider direction="vertical"></el-divider>
  92. <el-tag type="danger"> 处理时间:{{ report.deptDealTime }} </el-tag>
  93. </div>
  94. </el-col>
  95. <el-col :span="12">
  96. <el-tag>护理部处理意见</el-tag>
  97. <el-input type="textarea" v-model="report.finalDealing" :rows="3" :disabled="disableHlbDealing"></el-input>
  98. <div style="width: 100%; text-align: right">
  99. <el-tag type="danger"> 处理人:{{ report.finalDealerName }} </el-tag>
  100. <el-divider direction="vertical"></el-divider>
  101. <el-tag type="danger"> 处理时间:{{ report.finalDealTime }} </el-tag>
  102. </div>
  103. </el-col>
  104. </el-row>
  105. <el-divider></el-divider>
  106. </div>
  107. </template>
  108. <script>
  109. import store from '../store'
  110. export default {
  111. name: 'ViewAdverseEvent',
  112. props: {
  113. report: {
  114. type: Object,
  115. required: true,
  116. },
  117. disableHlbDealing: {
  118. type: Boolean,
  119. default: true,
  120. },
  121. },
  122. setup() {
  123. const windowSize = store.state.app.windowSize
  124. const reportBoxStyle = {
  125. height: windowSize.h * 0.55 + 'px',
  126. overflowY: 'auto',
  127. }
  128. return {
  129. reportBoxStyle,
  130. }
  131. },
  132. }
  133. </script>
  134. <style scoped>
  135. .report-column-div {
  136. padding-left: 20px;
  137. padding-top: 5px;
  138. }
  139. .course-result-div {
  140. margin: 5px 20px 10px 20px;
  141. }
  142. .reason-pro-div {
  143. margin: 0 20px;
  144. }
  145. </style>