diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..41e79ea --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,11 @@ +{ + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "semi": true, + "trailingComma": "es5", + "bracketSpacing": true, + "jsxBracketSameLine": false, + "arrowParens": "avoid" +} diff --git a/package.json b/package.json index d21781c..5a6c663 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "typecheck": "vue-tsc --noEmit --skipLibCheck" }, "dependencies": { + "@ant-design/icons-vue": "^7.0.1", "@better-scroll/core": "2.5.1", "@iconify/vue": "4.1.2", "@sa/axios": "workspace:*", diff --git a/packages/hooks/src/use-table.ts b/packages/hooks/src/use-table.ts index ee78498..9f88555 100644 --- a/packages/hooks/src/use-table.ts +++ b/packages/hooks/src/use-table.ts @@ -59,17 +59,16 @@ export type TableConfig = { immediate?: boolean; }; -export default function useHookTable(config: TableConfig) { +export default function useHookTable(config: any) { const { loading, startLoading, endLoading } = useLoading(); const { bool: empty, setBool: setEmpty } = useBoolean(); const { apiFn, apiParams, transformer, immediate = true, getColumnChecks, getColumns } = config; - const searchParams: NonNullable[0]> = reactive({ ...apiParams }); + const searchParams: any = reactive({ ...apiParams }); + const allColumns = ref(config.columns()) as Ref; - const allColumns = ref(config.columns()) as Ref; - - const data: Ref = ref([]); + const data: Ref = ref([]); const columnChecks: Ref = ref(getColumnChecks(config.columns())); @@ -82,7 +81,7 @@ export default function useHookTable(config: TableConfig< const defaultChecks = getColumnChecks(allColumns.value); - columnChecks.value = defaultChecks.map(col => ({ + columnChecks.value = defaultChecks.map((col:any) => ({ ...col, checked: checkMap.get(col.key) ?? col.checked })); @@ -92,10 +91,9 @@ export default function useHookTable(config: TableConfig< startLoading(); const formattedParams = formatSearchParams(searchParams); - const response = await apiFn(formattedParams); - const transformed = transformer(response as Awaited>); + const transformed = transformer(response as Awaited); data.value = transformed.rows; @@ -123,7 +121,7 @@ export default function useHookTable(config: TableConfig< * * @param params */ - function updateSearchParams(params: Partial[0]>) { + function updateSearchParams(params: any) { Object.assign(searchParams, params); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 999d7f3..2c4ab8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@ant-design/icons-vue': + specifier: ^7.0.1 + version: 7.0.1(vue@3.4.27(typescript@5.4.5)) '@better-scroll/core': specifier: 2.5.1 version: 2.5.1 diff --git a/src/components/advanced/table-header-operation.vue b/src/components/advanced/table-header-operation.vue index c1db9c3..8c97d26 100644 --- a/src/components/advanced/table-header-operation.vue +++ b/src/components/advanced/table-header-operation.vue @@ -10,6 +10,8 @@ interface Props { loading?: boolean; tableType?: string; showDelete?: boolean; + showExport?: boolean; + notShowAdd?: boolean; } defineProps(); @@ -18,6 +20,7 @@ interface Emits { (e: 'add'): void; (e: 'delete'): void; (e: 'refresh'): void; + (e: 'export'): void; } const emit = defineEmits(); @@ -37,6 +40,10 @@ function batchDelete() { function refresh() { emit('refresh'); } + +function handleExport() { + emit('export'); +}