modalTable.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <BasicTable @register="registerTable" :rowSelection="rowSelection" :scroll="{ y: 450 }" />
  3. </template>
  4. <script lang="ts">
  5. import { defineComponent, onMounted, ref, watch } from 'vue';
  6. import { BasicTable } from '/@/components/Table';
  7. import { useListPage } from '/@/hooks/system/useListPage';
  8. import { list } from '/@/views/vent/monitorManager/windrectMonitor/windrect.api';
  9. import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
  10. export default {
  11. name: 'ModalTable',
  12. components: { BasicTable },
  13. props: {
  14. deviceType: {
  15. type: String,
  16. required: true,
  17. },
  18. },
  19. setup(props) {
  20. const columns = getTableHeaderColumns(props.deviceType);
  21. const dataTableSource = ref<any[]>([]);
  22. // 列表页面公共参数、方法
  23. const { tableContext, onExportXls } = useListPage({
  24. designScope: 'windrect_list',
  25. tableProps: {
  26. title: '',
  27. dataSource: dataTableSource,
  28. rowKey: 'deviceID',
  29. columns: columns,
  30. size: 'small',
  31. actionColumn: {
  32. width: 180,
  33. },
  34. pagination: false,
  35. showActionColumn: false,
  36. showTableSetting: false,
  37. showIndexColumn: true,
  38. bordered: false,
  39. useSearchForm: false,
  40. autoCreateKey: true,
  41. beforeFetch: (params) => {
  42. return Object.assign({ column: 'createTime', order: 'desc' }, params);
  43. },
  44. },
  45. });
  46. //注册table数据
  47. const [registerTable, { clearSelectedRowKeys, setSelectedRowKeys }, { rowSelection, selectedRowKeys }] = tableContext;
  48. onMounted(() => {
  49. list({ devicetype: 'windrect', pagetype: 'normal', pageSize: 1000 }).then((res) => {
  50. if (res && res.msgTxt[0]) {
  51. const dataList: any[] = [];
  52. if (res.msgTxt[0].datalist && res.msgTxt[0].datalist.length > 0) {
  53. res.msgTxt[0].datalist.forEach((data: any) => {
  54. const readData = data.readData;
  55. data = Object.assign(data, readData);
  56. dataList.push(data);
  57. });
  58. dataTableSource.value = dataList;
  59. }
  60. }
  61. });
  62. });
  63. return {
  64. registerTable,
  65. onExportXls,
  66. clearSelectedRowKeys,
  67. setSelectedRowKeys,
  68. selectedRowKeys,
  69. rowSelection,
  70. };
  71. },
  72. };
  73. </script>