Geen omschrijving

index.vue 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <Page :auto-content-height="true">
  3. <BasicTable>
  4. <template #action="{ row }">
  5. <el-button
  6. size="small"
  7. type="primary"
  8. plain
  9. @click="() => handleTaskClick(row.taskId)"
  10. >查看</el-button
  11. >
  12. <el-button size="small" type="primary" plain>打印</el-button>
  13. </template>
  14. </BasicTable>
  15. </Page>
  16. </template>
  17. <script setup lang="ts">
  18. import { useRouter } from 'vue-router';
  19. import { Page } from '@vben/common-ui';
  20. import { useVbenVxeGrid, type VxeGridProps } from '#/adapter/vxe-table';
  21. import { columns, querySchema } from './config-data';
  22. import type { VbenFormProps } from '@vben/common-ui';
  23. import { mockData } from './config-data';
  24. const router = useRouter();
  25. const formOptions: VbenFormProps = {
  26. commonConfig: {
  27. labelWidth: 80,
  28. componentProps: {
  29. allowClear: true,
  30. },
  31. },
  32. schema: querySchema(),
  33. wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
  34. handleSubmit: (values: any) => {
  35. console.log('👉 表单提交数据', values);
  36. },
  37. handleReset: async (values: any) => {
  38. const res = await values;
  39. console.log('👉 重置后数据', res);
  40. },
  41. // 日期选择格式化
  42. // fieldMappingTime: [
  43. // [
  44. // 'createTime',
  45. // ['params[beginTime]', 'params[endTime]'],
  46. // ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59'],
  47. // ],
  48. // ],
  49. };
  50. // 列表中显示配置
  51. const gridOptions: VxeGridProps = {
  52. checkboxConfig: {
  53. // 高亮
  54. highlight: true,
  55. // 翻页时保留选中状态
  56. reserve: true,
  57. // 点击行选中
  58. trigger: 'default',
  59. checkMethod: ({ row }) => row?.roleId !== 1,
  60. },
  61. columns,
  62. size: 'medium',
  63. height: 'auto',
  64. data: mockData,
  65. // proxyConfig: {
  66. // ajax: {
  67. // query: async ({ page }, formValues = {}) => {
  68. // const resp = await getRoleList({
  69. // ...formValues,
  70. // pageNum: page.currentPage,
  71. // pageSize: page.pageSize,
  72. // });
  73. // return { items: resp.rows, total: resp.total };
  74. // },
  75. // },
  76. // },
  77. rowConfig: {
  78. keyField: 'roleId',
  79. },
  80. toolbarConfig: {
  81. custom: true,
  82. refresh: true,
  83. zoom: true,
  84. },
  85. id: 'system-role-index',
  86. };
  87. const [BasicTable, BasicTableApi] = useVbenVxeGrid({
  88. formOptions,
  89. gridOptions,
  90. });
  91. const handleTaskClick = (taskId: number) => {
  92. router.push(`/schedule/detail/${taskId}`);
  93. };
  94. </script>
  95. <style scoped lang="scss">
  96. :deep(.el-tooltip__trigger:focus) {
  97. outline: none;
  98. }
  99. </style>