Index.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div class="component-box-wrapper__half-transparent">
  3. <div class="component-content-box__dialog-like">
  4. <div class="component-header-box">
  5. <div class="component-header__title">{{ injuryMode ? '工伤信息' : '参保信息' }}</div>
  6. <div class="component-header__close-button">
  7. <el-button plain icon="Close" circle title="关闭" @click="close"></el-button>
  8. </div>
  9. </div>
  10. <div v-if="injuryMode">
  11. <el-table :data="injuryinfo" @row-click="handleClickInsuinfo" stripe height="180">
  12. <el-table-column label="证件号码" prop="aac002"></el-table-column>
  13. <el-table-column label="姓名" prop="aac003"></el-table-column>
  14. <el-table-column label="单位名称" prop="aab004"></el-table-column>
  15. <el-table-column label="受伤时间" prop="alc020"></el-table-column>
  16. <el-table-column label="认定申请时间" prop="alc017"></el-table-column>
  17. <el-table-column label="认定ID" prop="aaz127"></el-table-column>
  18. <el-table-column label="个人编号" prop="aac001"></el-table-column>
  19. <el-table-column label="参保统筹区" prop="baa027Name"></el-table-column>
  20. </el-table>
  21. </div>
  22. <div v-else>
  23. <el-table :data="psnBaseinfo.insuinfo" @row-click="handleClickInsuinfo" stripe height="180">
  24. <el-table-column label="余额" prop="balc"></el-table-column>
  25. <el-table-column label="险种类型" prop="insutypeName"></el-table-column>
  26. <el-table-column label="人员类别" prop="psnTypeName"></el-table-column>
  27. <el-table-column label="参保状态" prop="psnInsuStasName"></el-table-column>
  28. <el-table-column label="个人参保日期" prop="psnInsuDate"></el-table-column>
  29. <el-table-column label="暂停参保日期" prop="pausInsuDate"></el-table-column>
  30. <el-table-column label="公务员标志" prop="cvlservFlagName"></el-table-column>
  31. <el-table-column label="参保地医保区划" prop="insuplcAdmdvs"></el-table-column>
  32. <el-table-column label="参保地名称" prop="insuplcAdmdvsName"></el-table-column>
  33. <el-table-column label="单位名称" prop="empName"></el-table-column>
  34. </el-table>
  35. <div style="height: 16px"></div>
  36. <el-tag>身份信息</el-tag>
  37. <el-table :data="psnBaseinfo.idetinfo" stripe height="180">
  38. <el-table-column label="人员身份类别" prop="psnIdetTypeName"></el-table-column>
  39. <el-table-column label="人员类别等级" prop="psnTypeLv"></el-table-column>
  40. <el-table-column label="备注" prop="memo"></el-table-column>
  41. <el-table-column label="开始时间" prop="begntime"></el-table-column>
  42. <el-table-column label="结束时间" prop="endtime"></el-table-column>
  43. </el-table>
  44. </div>
  45. </div>
  46. </div>
  47. </template>
  48. <script>
  49. import store from '@/store'
  50. import { onMounted, ref, computed } from 'vue'
  51. import { obtainBasicPersonInfo } from '@/api/medical-insurance/si-query'
  52. import { getPersonBaseinfo } from '@/api/medical-insurance/si-injury'
  53. export default {
  54. props: {
  55. params: {
  56. type: Object,
  57. required: true,
  58. },
  59. },
  60. emits: ['close', 'rowClick'],
  61. setup(props, ctx) {
  62. const injuryMode = computed(() => {
  63. return store.state.ptnt.injuryMode
  64. })
  65. const injuryinfo = ref([])
  66. const psnBaseinfo = ref({
  67. insuinfo: [],
  68. idetinfo: [],
  69. })
  70. const psnNo = ref(null)
  71. const handleClickInsuinfo = (row) => {
  72. row.psnNo = psnNo.value
  73. ctx.emit('rowClick', row)
  74. }
  75. const close = () => {
  76. ctx.emit('close')
  77. }
  78. const fetchInsuinfo = () => {
  79. if (injuryMode.value) {
  80. getPersonBaseinfo(props.params)
  81. .then((res) => {
  82. injuryinfo.value = res
  83. })
  84. .catch(() => {
  85. ctx.emit('close')
  86. })
  87. } else {
  88. obtainBasicPersonInfo(props.params)
  89. .then((res) => {
  90. psnNo.value = res.psnNo
  91. psnBaseinfo.value = res
  92. })
  93. .catch(() => {
  94. ctx.emit('close')
  95. })
  96. }
  97. }
  98. onMounted(() => {
  99. fetchInsuinfo()
  100. })
  101. return {
  102. injuryMode,
  103. injuryinfo,
  104. psnBaseinfo,
  105. handleClickInsuinfo,
  106. close,
  107. }
  108. },
  109. }
  110. </script>