PsInfo.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <el-container>
  3. <el-header>
  4. 床位范围:<el-select v-model="queryParam.startBedNo"
  5. :clearable="wardsClearable"
  6. style="width: 110px"
  7. >
  8. <el-option v-for="item in props.patintList"
  9. :key="item.bedNo"
  10. :label="item.bedNo"
  11. :value="item.bedNo">
  12. <span>{{ item.bedNo }}</span>
  13. <el-divider direction="vertical"></el-divider>
  14. <span>{{ item.inpatientNo }}</span>
  15. <el-divider direction="vertical"></el-divider>
  16. <span>{{ item.name }}</span>
  17. </el-option>
  18. </el-select>
  19. <el-select v-model="queryParam.endBedNo"
  20. style="width: 110px"
  21. >
  22. <el-option v-for="item in reverPatintList"
  23. :key="item.bedNo"
  24. :label="item.bedNo"
  25. :value="item.bedNo">
  26. <span>{{ item.bedNo }}</span>
  27. <el-divider direction="vertical"></el-divider>
  28. <span>{{ item.inpatientNo }}</span>
  29. <el-divider direction="vertical"></el-divider>
  30. <span>{{ item.name }}</span>
  31. </el-option>
  32. </el-select>
  33. 执行时间:
  34. <el-time-picker v-model="excuTime" style="width: 110px" format="HH:mm" value-format="HH:mm" />
  35. <el-radio-group v-model="queryParam.confirmFlag">
  36. <el-radio label="0" size="small">未确认</el-radio>
  37. <el-radio label="1" size="small">已确认</el-radio>
  38. </el-radio-group>
  39. <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
  40. <el-button type="success" @click="savePsInfo">保存</el-button>
  41. </el-header>
  42. <el-main>
  43. <div style="width: 100%;height: 60%">
  44. <el-table :data="psInfo" highlight-current-row stripe border show-overflow-tooltip style="width: 100%;height: 100%">
  45. <el-table-column label="排序" type="index" width="40" />
  46. <el-table-column prop="bedNo" label="床号" width="40" />
  47. <el-table-column prop="inpatientNo" label="住院号"/>
  48. <el-table-column prop="name" label="病人姓名"/>
  49. <el-table-column prop="actOrderNo" label="医嘱号"/>
  50. <el-table-column prop="orderName" label="医嘱名称" min-width="120" />
  51. <el-table-column prop="orderTime" label="医嘱时间" min-width="125"/>
  52. <el-table-column prop="dose" label="剂量" width="40"/>
  53. <el-table-column prop="doseUnit" label="剂量单位" width="80"/>
  54. <el-table-column prop="supplyName" label="给药方式" min-width="100"/>
  55. <el-table-column prop="psStatus" label="皮试结果" min-width="140">
  56. <template #default="scope">
  57. <el-radio-group v-model="scope.row.psStatus">
  58. <el-radio label="0" size="small">阴性</el-radio>
  59. <el-radio label="1" size="small">阳性</el-radio>
  60. </el-radio-group>
  61. </template>
  62. </el-table-column>
  63. <el-table-column prop="psOper" label="皮试执行人" min-width="140">
  64. <template #default="scope">
  65. <SelectStaffCode v-model="scope.row" :name="['psOper', 'psOperName']"></SelectStaffCode>
  66. </template>
  67. </el-table-column>
  68. <el-table-column prop="psResultTime" label="皮试结果时间" min-width="150">
  69. <template #default="scope">
  70. <el-date-picker
  71. v-model="scope.row.psResultTime"
  72. type="datetime"
  73. format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
  74. style="width: 130px;"
  75. />
  76. </template>
  77. </el-table-column>
  78. <el-table-column prop="enterTime" label="录入时间" min-width="125"/>
  79. </el-table>
  80. </div>
  81. </el-main>
  82. </el-container>
  83. </template>
  84. <script setup name='PsInfo'>
  85. import {queryPsInfo,updatePsInfo,selectEmpInfo} from "@/api/medical-advice/nursing-manage";
  86. import { getFormatDatetime } from "@/utils/date";
  87. import {onMounted,computed} from "vue";
  88. import {stringNotBlank} from "@/utils/blank-utils";
  89. import {ElMessage, ElMessageBox} from 'element-plus'
  90. import SelectStaffCode from '@/components/SelectStaffCode.vue'
  91. const props = defineProps({
  92. patintList: {
  93. type: Array,
  94. default:[]
  95. },
  96. curWard:{
  97. type: String,
  98. default:''
  99. }
  100. })
  101. const queryInfo = ()=>{
  102. queryPsInfo(queryParam.value).then((res)=>{
  103. psInfo.value = res
  104. })
  105. }
  106. const savePsInfo = ()=>{
  107. ElMessageBox.confirm('请确认是否保存', {
  108. cancelButtonText: '取消',
  109. confirmButtonText: '确定',
  110. })
  111. .then(() => {
  112. updatePsInfo(psInfo.value).then((res)=>{
  113. })
  114. })
  115. .catch(() => {
  116. })
  117. }
  118. const psInfo = ref([])
  119. const reverPatintList = computed(() => reverseArray(props.patintList))
  120. function reverseArray(arr) {
  121. let newArr = [];
  122. arr.forEach(element => {
  123. // unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
  124. newArr.unshift(element);
  125. });
  126. return newArr;
  127. }
  128. const queryParam = ref({
  129. curWard:'',
  130. startBedNo: '',
  131. endBedNo: '',
  132. confirmFlag:'0'
  133. })
  134. const excuTime = ref(getFormatDatetime(new Date(),'HH:mm'))
  135. onMounted(() => {
  136. queryParam.value.curWard =props.curWard
  137. queryParam.value.startBedNo = props.patintList[0].bedNo ? props.patintList[0].bedNo:''
  138. queryParam.value.endBedNo = reverPatintList.value[0].bedNo ? reverPatintList.value[0].bedNo : ''
  139. })
  140. </script>