index.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <template>
  2. <el-container class="is-vertical">
  3. <sc-page-header addText="数据模拟" @add="mock_add">
  4. <template #extra-right>
  5. <el-button v-if="activeName == 'record' || activeName == 'template'" type="primary" @click="table_add">数据录入</el-button>
  6. </template>
  7. </sc-page-header>
  8. <el-tabs v-model="activeName">
  9. <el-tab-pane v-for="(label, key) in workerStates" :key="key" :label="label" :name="key"></el-tab-pane>
  10. </el-tabs>
  11. <component ref="componentRef" :is="allcomp[activeName]" taskType="aihazard" />
  12. </el-container>
  13. <mock-detail v-if="dialog" ref="mockRef" @success="refreshState" @closed="dialog = false"></mock-detail>
  14. </template>
  15. <script setup>
  16. import { workerStates } from "./main";
  17. import comp from "./components";
  18. import monos from "@/views/dataMock/tasks/monos";
  19. import mockDetail from "./detail";
  20. const allcomp = { ...comp, monos };
  21. const activeName = ref("record");
  22. const componentRef = ref();
  23. const mockRef = ref();
  24. const dialog = ref(false);
  25. const table_add = () => componentRef.value.table_add();
  26. const mock_add = () => {
  27. dialog.value = true;
  28. nextTick(() => mockRef.value?.open());
  29. }
  30. const refreshState = () => {
  31. if (activeName.value == "monos") setTimeout(() => componentRef.value.refreshTable(), 2000);
  32. activeName.value = "monos";
  33. }
  34. </script>
  35. <style lang="scss" scoped>
  36. .el-tabs {padding: 0 12px;background: #fff;}
  37. </style>