Repeat-event-detail.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <el-dialog v-model="state.dialogVisible" width="50%" draggable title="重复性事件详情" append-to-body destroy-on-close>
  3. <el-form :model="state.ruleForm" label-width="80px" ref="ruleFormRef" class="show-info-form">
  4. <el-row :gutter="10">
  5. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
  6. <el-form-item label="标题">
  7. {{ state.ruleForm.title }}
  8. </el-form-item>
  9. </el-col>
  10. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
  11. <el-form-item label="关键词">
  12. {{ state.ruleForm.keyWords }}
  13. </el-form-item>
  14. </el-col>
  15. </el-row>
  16. </el-form>
  17. <el-divider content-position="left">
  18. <el-text tag="b" size="large"> 重复事件工单 </el-text>
  19. </el-divider>
  20. <vxe-table
  21. border
  22. :loading="state.loading"
  23. :data="state.repeatTable"
  24. :column-config="{ resizable: true }"
  25. :row-config="{ isCurrent: true, isHover: true, height: 30 }"
  26. show-overflow
  27. :scrollY="{ enabled: true, gt: 0 }"
  28. showHeaderOverflow
  29. max-height="300px"
  30. >
  31. <vxe-column field="order.no" title="工单编码" width="140"></vxe-column>
  32. <vxe-column field="order.isProvinceText" title="省/市工单" width="100"></vxe-column>
  33. <vxe-column field="order.currentStepName" title="当前节点" width="120"></vxe-column>
  34. <vxe-column field="order.statusText" title="工单状态" width="100"></vxe-column>
  35. <vxe-column field="order.title" title="工单标题" min-width="200">
  36. <template #default="{row}">
  37. <order-detail :order="row.order">{{ row.order?.title }}</order-detail>
  38. </template>
  39. </vxe-column>
  40. <vxe-column field="order.startTime" title="受理时间" width="160">
  41. <template #default="{ row }">
  42. {{ formatDate(row.order.startTime, 'YYYY-mm-dd HH:MM:SS') }}
  43. </template>
  44. </vxe-column>
  45. <vxe-column field="order.expiredTime" title="工单期满时间" width="160">
  46. <template #default="{ row }">
  47. {{ formatDate(row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}
  48. </template>
  49. </vxe-column>
  50. <vxe-column field="order.actualHandleOrgName" title="接办部门" width="140"></vxe-column>
  51. <vxe-column field="order.acceptType" title="受理类型" width="140"></vxe-column>
  52. <vxe-column field="order.hotspotName" title="热点分类" width="150"></vxe-column>
  53. <vxe-column field="order.sourceChannel" title="来源渠道" width="140"></vxe-column>
  54. <vxe-column field="order.acceptorName" title="受理人" width="120"></vxe-column>
  55. </vxe-table>
  56. </el-dialog>
  57. </template>
  58. <script setup lang="tsx" name="repeatEventDetail">
  59. import { reactive, defineAsyncComponent, ref } from 'vue';
  60. import { formatDate } from '@/utils/formatTime';
  61. import { repeatEventDetail } from '@/api/business/repeatEvent';
  62. const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
  63. const state = reactive({
  64. loading: false, // 加载
  65. dialogVisible: false, // 弹窗
  66. ruleForm: {},
  67. repeatTable: [], // 重复事件工单
  68. });
  69. // 创建重复事件
  70. const openDialog = (row: any) => {
  71. getDetail(row);
  72. };
  73. // 查询详情
  74. const getDetail = async (row: any) => {
  75. try {
  76. const { result } = await repeatEventDetail({ id: row.id, Keyword: null });
  77. state.ruleForm = result;
  78. state.repeatTable = result.details;
  79. state.dialogVisible = true;
  80. } catch (e) {
  81. console.log(e);
  82. }
  83. };
  84. defineExpose({
  85. openDialog,
  86. });
  87. </script>