modalTable.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <BasicTable @register="registerTable" :rowSelection="rowSelection" :scroll="{ y: 450 }" />
  3. </template>
  4. <script lang="ts">
  5. import { BasicTable } from '/@/components/Table';
  6. import { useListPage } from '/@/hooks/system/useListPage';
  7. import { deviceList } from '/@/views/vent/monitorManager/windrectMonitor/windrect.api';
  8. import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
  9. export default {
  10. name: 'ModalTable',
  11. components: { BasicTable },
  12. props: {
  13. deviceType: {
  14. type: String,
  15. required: true,
  16. },
  17. },
  18. setup(props) {
  19. const columns = getTableHeaderColumns(props.deviceType);
  20. // 列表页面公共参数、方法
  21. const { tableContext, onExportXls } = useListPage({
  22. designScope: 'windrect_list',
  23. tableProps: {
  24. title: '',
  25. api: deviceList.bind(null, { pageSize: 1000 }),
  26. columns: columns,
  27. size: 'small',
  28. actionColumn: {
  29. width: 180,
  30. },
  31. pagination: false,
  32. showActionColumn: false,
  33. showTableSetting: false,
  34. showIndexColumn: true,
  35. bordered: false,
  36. useSearchForm: false,
  37. autoCreateKey: true,
  38. beforeFetch: (params) => {
  39. return Object.assign({ column: 'createTime', order: 'desc' }, params);
  40. },
  41. },
  42. });
  43. //注册table数据
  44. const [registerTable, { clearSelectedRowKeys, setSelectedRowKeys }, { rowSelection, selectedRowKeys }] = tableContext;
  45. return {
  46. registerTable,
  47. onExportXls,
  48. clearSelectedRowKeys,
  49. setSelectedRowKeys,
  50. selectedRowKeys,
  51. rowSelection,
  52. };
  53. },
  54. };
  55. </script>