index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <div class="app-container">
  3. <el-table v-loading="loading" :data="supervisionList" border>
  4. <el-table-column label="序号" type="index" width="55" align="center" />
  5. <el-table-column label="GUID" prop="GUID" width="100" :show-overflow-tooltip="true" />
  6. <el-table-column label="状态" prop="STATUS" width="100" />
  7. <el-table-column label="审核信息" prop="AUDIT_INFO" :show-overflow-tooltip="true" min-width="180" />
  8. <el-table-column label="操作" align="center" width="150" fixed="right">
  9. <template #default="scope">
  10. <el-button link type="primary" icon="View" @click="handleDetail(scope.row)">详情</el-button>
  11. <el-button link type="primary" icon="Check" @click="handleAudit(scope.row)">审核</el-button>
  12. </template>
  13. </el-table-column>
  14. </el-table>
  15. <pagination v-show="total > 0" :total="total" v-model:page="pageNum" v-model:limit="pageSize" @pagination="getList" />
  16. <!-- 详情对话框 -->
  17. <el-dialog title="督导详情" v-model="detailVisible" width="800px" append-to-body>
  18. <el-tabs>
  19. <el-tab-pane label="附件">
  20. <el-table :data="attachments" border size="small">
  21. <el-table-column label="GUID" prop="GUID" :show-overflow-tooltip="true" />
  22. <el-table-column label="文件名" prop="FILE_NAME" :show-overflow-tooltip="true" />
  23. </el-table>
  24. </el-tab-pane>
  25. <el-tab-pane label="分工">
  26. <el-table :data="divisions" border size="small">
  27. <el-table-column label="GUID" prop="GUID" :show-overflow-tooltip="true" />
  28. </el-table>
  29. </el-tab-pane>
  30. <el-tab-pane label="结果">
  31. <el-table :data="results" border size="small">
  32. <el-table-column label="GUID" prop="GUID" :show-overflow-tooltip="true" />
  33. </el-table>
  34. </el-tab-pane>
  35. </el-tabs>
  36. </el-dialog>
  37. <!-- 审核对话框 -->
  38. <el-dialog title="审核督导" v-model="auditVisible" width="500px" append-to-body>
  39. <el-form :model="auditForm" label-width="80px">
  40. <el-form-item label="审核结果"><el-select v-model="auditForm.audit" style="width:100%"><el-option label="通过" value="1" /><el-option label="不通过" value="0" /></el-select></el-form-item>
  41. <el-form-item label="审核意见"><el-input v-model="auditForm.auditInfo" type="textarea" :rows="3" /></el-form-item>
  42. </el-form>
  43. <template #footer>
  44. <el-button @click="auditVisible = false">取消</el-button>
  45. <el-button type="primary" @click="submitAudit">确定</el-button>
  46. </template>
  47. </el-dialog>
  48. </div>
  49. </template>
  50. <script setup>
  51. import { ref, reactive, onMounted } from 'vue'
  52. import { listSupervision, getSupervisionDetail, auditSupervision } from '@/api/hzz/supervision'
  53. import { ElMessage } from 'element-plus'
  54. const loading = ref(false)
  55. const total = ref(0)
  56. const pageNum = ref(1)
  57. const pageSize = ref(10)
  58. const supervisionList = ref([])
  59. const detailVisible = ref(false)
  60. const attachments = ref([])
  61. const divisions = ref([])
  62. const results = ref([])
  63. const auditVisible = ref(false)
  64. const auditForm = reactive({ guid: '', audit: '1', auditInfo: '' })
  65. const getList = async () => {
  66. loading.value = true
  67. try {
  68. const res = await listSupervision({ pageNum: pageNum.value, pageSize: pageSize.value })
  69. supervisionList.value = res.rows || []
  70. total.value = res.total || 0
  71. } finally { loading.value = false }
  72. }
  73. const handleDetail = async (row) => {
  74. const res = await getSupervisionDetail(row.GUID)
  75. attachments.value = res.data?.attachments || []
  76. divisions.value = res.data?.divisions || []
  77. results.value = res.data?.results || []
  78. detailVisible.value = true
  79. }
  80. const handleAudit = (row) => {
  81. auditForm.guid = row.GUID
  82. auditForm.audit = '1'
  83. auditForm.auditInfo = ''
  84. auditVisible.value = true
  85. }
  86. const submitAudit = async () => {
  87. await auditSupervision(auditForm.guid, auditForm.audit, auditForm.auditInfo)
  88. ElMessage.success('审核完成')
  89. auditVisible.value = false
  90. getList()
  91. }
  92. onMounted(() => getList())
  93. </script>