index.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <template>
  2. <div class="app-container">
  3. <div class="filter-container">
  4. <div class="filter-control">
  5. <span>培训医师姓名:</span>
  6. <el-input v-model="listQuery.doctorName" placeholder="培训医师姓名" @keyup.enter.native="handleFilter" />
  7. </div>
  8. <div class="filter-control">
  9. <span>从业资格证编号:</span>
  10. <el-input v-model="listQuery.certificateNo" placeholder="从业资格证编号" @keyup.enter.native="handleFilter" />
  11. </div>
  12. <div class="filter-control">
  13. <span>审核状态:</span>
  14. <el-select v-model="listQuery.auditStatus" placeholder="审核状态" clearable @change="getList">
  15. <el-option label="全部" value="" />
  16. <el-option label="待审核" :value="2" />
  17. <el-option label="审核通过" :value="1" />
  18. <el-option label="审核未通过" :value="0" />
  19. </el-select>
  20. </div>
  21. <div class="filter-control">
  22. <el-button type="primary" @click="getList">查询</el-button>
  23. </div>
  24. </div>
  25. <!-- 表格区域 -->
  26. <el-table
  27. :key="tableKey"
  28. v-loading="listLoading"
  29. :data="list"
  30. border
  31. fit
  32. highlight-current-row
  33. style="width: 100%;"
  34. header-row-class-name="tableHeader"
  35. >
  36. <el-table-column label="序号" :index="indexMethod" type="index" align="center" width="80" />
  37. <el-table-column label="医生姓名" align="center" prop="doctorName" />
  38. <el-table-column label="从业资格证编号" align="center" prop="certificateNo" />
  39. <el-table-column label="审核状态" width="120px" align="center">
  40. <template slot-scope="{ row }">
  41. <el-tag v-if="row.auditStatus === 2" size="small" type="warning">待审核</el-tag>
  42. <el-tag v-if="row.auditStatus === 1" size="small" type="success">审核通过</el-tag>
  43. <!-- 未通过原因展示 -->
  44. <template v-if="row.auditStatus === 0">
  45. <!-- <span class="status danger">审核未通过&nbsp;</span> -->
  46. <el-popover placement="top-start" title="审核说明" width="400" trigger="hover" :content="row.invalidReason">
  47. <el-tag slot="reference" size="small" type="danger" class="reason">
  48. <span>审核未通过</span>
  49. <span class="el-icon-question status danger " />
  50. </el-tag>
  51. </el-popover>
  52. <!-- 未通过原因展示END -->
  53. </template>
  54. </template>
  55. </el-table-column>
  56. <el-table-column label="审核时间" width="160px" align="center">
  57. <template slot-scope="{ row }">
  58. <span v-if="row.auditStatus !== 2">{{ row.auditTime | formatTime }}</span>
  59. <span v-else>—</span>
  60. </template>
  61. </el-table-column>
  62. <el-table-column label="审核人" align="center" width="280px">
  63. <template slot-scope="{ row }">
  64. <span v-if="row.auditStatus !== 2">{{ row.auditBy }}</span>
  65. <span v-else>—</span>
  66. </template>
  67. </el-table-column>
  68. <!-- <el-table-column v-if="false" label="创建人" width="180px" align="center" prop="createBy" /> -->
  69. <el-table-column label="操作" align="center" width="160px" class-name="small-padding fixed-width">
  70. <template slot-scope="{ row }">
  71. <el-button
  72. v-if="row.auditStatus !== 1"
  73. type="primary"
  74. size="mini"
  75. @click="$_navigationTo(`doctor-detail?id=${row.doctorId}`)"
  76. >
  77. 审核
  78. </el-button>
  79. <span v-else class="status success el-icon-check">&nbsp;已审核</span>
  80. </template>
  81. </el-table-column>
  82. </el-table>
  83. <!-- 页码 -->
  84. <pagination
  85. v-show="total > 0"
  86. :total="total"
  87. :page.sync="listQuery.pageNum"
  88. :limit.sync="listQuery.pageSize"
  89. @pagination="getList"
  90. />
  91. </div>
  92. </template>
  93. <script>
  94. import Pagination from '@/components/Pagination' // secondary package based on el-pagination
  95. import { mapGetters } from 'vuex'
  96. import { fetchDoctorList } from '@/api/doctor'
  97. export default {
  98. components: { Pagination },
  99. data() {
  100. return {
  101. listLoading: false,
  102. tableKey: 0,
  103. total: 0,
  104. listQuery: {
  105. authUserId: '',
  106. listType: 2,
  107. auditStatus: '',
  108. certificateNo: '',
  109. doctorName: '',
  110. doctorType: 2,
  111. status: '',
  112. pageNum: 1,
  113. pageSize: 10
  114. },
  115. list: []
  116. }
  117. },
  118. computed: {
  119. ...mapGetters(['authUserId', 'proxyInfo'])
  120. },
  121. created() {
  122. this.getList()
  123. },
  124. methods: {
  125. // 获取列表
  126. getList() {
  127. this.listQuery.authUserId = this.$route.query.authUserId
  128. console.log(this.listQuery.authUserId)
  129. fetchDoctorList(this.listQuery).then(res => {
  130. console.log(res)
  131. this.list = res.data.list
  132. this.total = res.data.total
  133. })
  134. },
  135. // 表格索引
  136. indexMethod(index) {
  137. return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
  138. }
  139. }
  140. }
  141. </script>
  142. <style lang="scss" scoped>
  143. </style>