index.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <el-container class="is-vertical">
  3. <sc-page-header addText="数据模拟" addIcon="majesticons:data-plus-line" @add="mock_add">
  4. <template #extra-right>
  5. <el-button type="danger" @click="data_batch_del">
  6. <template #icon><sc-iconify icon="ant-design:delete-outlined"></sc-iconify></template>数据删除
  7. </el-button>
  8. <el-button v-if="activeName == 'record' || activeName == 'template'" type="primary" @click="table_add">
  9. <template #icon><sc-iconify icon="ant-design:cloud-upload-outlined"></sc-iconify></template>数据录入
  10. </el-button>
  11. </template>
  12. </sc-page-header>
  13. <el-tabs v-model="activeName">
  14. <el-tab-pane v-for="(label, key) in workerStates" :key="key" :label="label" :name="key"></el-tab-pane>
  15. </el-tabs>
  16. <component ref="componentRef" :is="allcomp[activeName]" taskType="envdev" />
  17. </el-container>
  18. <mock-detail v-if="dialog.mock" ref="mockRef" @success="refreshState" @closed="dialog.mock = false"></mock-detail>
  19. <batch-del-detail v-if="dialog.batchDel" ref="batchDelRef" @success="refreshState" @closed="dialog.batchDel = false"></batch-del-detail>
  20. </template>
  21. <script setup>
  22. import { workerStates } from "./main";
  23. import comp from "./components";
  24. import monos from "@/views/dataMock/tasks/monos";
  25. import mockDetail from "./detail";
  26. import batchDelDetail from "./batchDel";
  27. const allcomp = { ...comp, monos };
  28. const activeName = ref("record");
  29. const componentRef = ref();
  30. const mockRef = ref();
  31. const batchDelRef = ref();
  32. const dialog = ref({
  33. mock: false,
  34. batchDel: false
  35. });
  36. const table_add = () => componentRef.value.table_add();
  37. const mock_add = () => {
  38. dialog.value.mock = true;
  39. nextTick(() => mockRef.value?.open());
  40. }
  41. const data_batch_del = () => {
  42. dialog.value.batchDel = true;
  43. nextTick(() => batchDelRef.value?.open());
  44. }
  45. const refreshState = () => activeName.value == "monos" && componentRef.value.refreshTable();
  46. </script>
  47. <style lang="scss" scoped>
  48. .el-tabs {padding: 0 12px;background: #fff;}
  49. </style>