gen.ts 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import type { AxiosResponse } from 'axios'
  2. import type { PageInfo, Result } from '@cacp/ui'
  3. import request from '@/utils/request'
  4. import type {GenTable,GenTableQuery} from '@/types/gen/GenTable'
  5. export interface PreviewResult {
  6. [key: string]: string
  7. }
  8. const contextPath = '/gen/GenTable'
  9. // 查询代码生成业务列表
  10. export async function getList(query: GenTableQuery): Promise<Result<PageInfo<GenTable>>> {
  11. const res: AxiosResponse<Result<PageInfo<GenTable>>> = await request.post(`${contextPath}/get-list`, query)
  12. return res.data
  13. }
  14. // 获取代码生成业务详情
  15. export async function getDetail(tableId: string): Promise<Result<GenTable>> {
  16. const res: AxiosResponse<Result<GenTable>> = await request.get(`${contextPath}/get-detail?tableId=${tableId}`)
  17. return res.data
  18. }
  19. // 新增代码生成业务
  20. export async function insert(row: GenTable): Promise<Result<number>> {
  21. const res: AxiosResponse<Result<number>> = await request.post(`${contextPath}/insert-genTable`, row)
  22. return res.data
  23. }
  24. // 更新代码生成业务
  25. export async function update(row: GenTable): Promise<Result<number>> {
  26. const res: AxiosResponse<Result<number>> = await request.post(`${contextPath}/update-genTable`, row)
  27. return res.data
  28. }
  29. // 删除代码生成业务
  30. export async function remove(genTables: string | string[]): Promise<Result<number>> {
  31. // 统一转换为数组格式
  32. const ids = Array.isArray(genTables) ? genTables : [genTables];
  33. const res: AxiosResponse<Result<number>> = await request.post(
  34. `${contextPath}/delete-genTable?ids`,ids
  35. )
  36. return res.data
  37. }
  38. // 查询db数据库列表
  39. export async function listDbTable(query: GenTableQuery): Promise<Result<PageInfo<GenTable>>> {
  40. const res: AxiosResponse<Result<PageInfo<GenTable>>> = await request.post(
  41. `${contextPath}/db-list`,
  42. query
  43. )
  44. return res.data
  45. }
  46. // 导入表
  47. export async function importTable(data: string): Promise<Result<number>> {
  48. console.log(data);
  49. const res: AxiosResponse<Result<number>> = await request.get(
  50. `${contextPath}/importTable?tables=${data}`,
  51. )
  52. return res.data
  53. }
  54. // 预览生成代码
  55. export async function previewTable(tableId: string): Promise<Result<PreviewResult>> {
  56. const res: AxiosResponse<Result<PreviewResult>> = await request.get(
  57. `${contextPath}/preview-code?tableId=${tableId}`
  58. )
  59. return res.data
  60. }
  61. // 同步数据库
  62. export async function synchDb(tableName: string): Promise<Result<number>> {
  63. const res: AxiosResponse<Result<number>> = await request.get(
  64. `${contextPath}/synchDb-tableName?tableName=${tableName}`
  65. )
  66. return res.data
  67. }
  68. // api/tool/gen.ts
  69. export const batchGenCode = (tables: string) => {
  70. return request({
  71. url: `${contextPath}/batchGenCode`,
  72. method: 'get',
  73. params: { tables },
  74. responseType: 'blob',
  75. withCredentials: false
  76. })
  77. }