index.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <script setup lang="ts">
  2. import { useColumns } from "./columns";
  3. const { editMap, columns, dataList, onEdit, onSave, onCancel } = useColumns();
  4. </script>
  5. <template>
  6. <div class="flex">
  7. <el-scrollbar>
  8. <code>
  9. <pre class="w-[400px]"> {{ dataList }}</pre>
  10. </code>
  11. </el-scrollbar>
  12. <pure-table
  13. row-key="id"
  14. align-whole="center"
  15. :header-cell-style="{
  16. background: 'var(--el-fill-color-light)',
  17. color: 'var(--el-text-color-primary)'
  18. }"
  19. :data="dataList"
  20. :columns="columns"
  21. >
  22. <template #operation="{ row, index }">
  23. <el-button
  24. v-if="!editMap[index]?.editable"
  25. class="reset-margin"
  26. link
  27. type="primary"
  28. @click="onEdit(row, index)"
  29. >
  30. 修改
  31. </el-button>
  32. <div v-else>
  33. <el-button
  34. class="reset-margin"
  35. link
  36. type="primary"
  37. @click="onSave(index)"
  38. >
  39. 保存
  40. </el-button>
  41. <el-button class="reset-margin" link @click="onCancel(index)">
  42. 取消
  43. </el-button>
  44. </div>
  45. </template>
  46. </pure-table>
  47. </div>
  48. </template>