FeeTable.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <script setup lang="jsx">
  2. import {yzMitt} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
  3. import {queryFeeByOrderNoApi} from "@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru";
  4. import {getWindowSize} from "@/utils/window-size";
  5. const dialog = ref(false)
  6. const feeList = ref([])
  7. const tableRef = ref(null)
  8. const orderData = ref()
  9. const queryFeeByOrderNo = (data) => {
  10. orderData.value = data
  11. queryFeeByOrderNoApi(data.actOrderNo).then(res => {
  12. dialog.value = true
  13. feeList.value = res
  14. })
  15. }
  16. const refundStatus = (val) => {
  17. if (val === -1) {
  18. return <span style="color: red">退费数据</span>
  19. } else if (val > 0) {
  20. return <span style="color: black">原流水 {val}</span>
  21. }
  22. }
  23. const filterRoleMethod = ({value, row}) => {
  24. if (value === 1 && row.oriDetailSn === 0) {
  25. return true
  26. }
  27. if (value === 2 && row.oriDetailSn > 0) {
  28. return true
  29. }
  30. if (value === 3 && row.oriDetailSn === -1) {
  31. return true
  32. }
  33. }
  34. const tableCheckboxConfig = ref({
  35. checkMethod: ({row}) => {
  36. return row.oriDetailSn === 0
  37. }
  38. })
  39. onMounted(() => {
  40. yzMitt.on('queryFeeByOrderNo', queryFeeByOrderNo)
  41. })
  42. </script>
  43. <template>
  44. <el-dialog v-model="dialog" title="费用详情" width="80%" top="3%">
  45. <vxe-table :data="feeList"
  46. border
  47. ref="tableRef"
  48. :checkbox-config="tableCheckboxConfig"
  49. :row-config="{isHover : true, isCurrent: true,height: 24,useKey : 'rowId'}"
  50. :height="getWindowSize.h / 1.2">
  51. <vxe-column type="seq" width="50"/>
  52. <vxe-column type="checkbox" width="35"/>
  53. <vxe-column field="chargeDate" title="收费时间" width="150" sortable/>
  54. <vxe-column field="genTime" title="执行时间" width="150"/>
  55. <vxe-column field="chargeCodeName" title="项目名称" min-width="120"/>
  56. <vxe-column field="chargeCodeMx" title="项目编码" min-width="80"/>
  57. <vxe-column field="chargeFee" title="金额" min-width="40"/>
  58. <vxe-column field="execDept" title="执行" min-width="60"/>
  59. <vxe-column field="chargeAmount" title="数量" min-width="40" sortable/>
  60. <vxe-column title="退费"
  61. :filters="[{ label: '未退', value: 1 }, { label: '退费', value: 2 },{ label: '被退', value: 3 }]"
  62. :filter-method="filterRoleMethod">
  63. <template #default="{row}">
  64. <component :is="refundStatus(row.oriDetailSn)"/>
  65. </template>
  66. </vxe-column>
  67. </vxe-table>
  68. </el-dialog>
  69. </template>
  70. <style scoped lang="scss">
  71. .my-select {
  72. margin: 10px;
  73. width: 100px;
  74. height: 32px;
  75. }
  76. </style>