api.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import request from "/@/utils/request"
  2. // ========== 基础CRUD接口 ==========
  3. /**
  4. * 分页查询列表数据
  5. * @param query - 查询参数对象
  6. * @returns Promise<分页数据>
  7. */
  8. export function fetchList(query?: Object) {
  9. return request({
  10. url: '/${moduleName}/${functionName}/page',
  11. method: 'get',
  12. params: query
  13. })
  14. }
  15. /**
  16. * 新增数据
  17. * @param obj - 要新增的数据对象
  18. * @returns Promise<boolean> - 操作结果
  19. */
  20. export function addObj(obj?: Object) {
  21. return request({
  22. url: '/${moduleName}/${functionName}',
  23. method: 'post',
  24. data: obj
  25. })
  26. }
  27. /**
  28. * 获取详情数据
  29. * @param obj - 查询参数对象(包含ID等)
  30. * @returns Promise<数据详情>
  31. */
  32. export function getObj(obj?: Object) {
  33. return request({
  34. url: '/${moduleName}/${functionName}/details',
  35. method: 'get',
  36. params: obj
  37. })
  38. }
  39. /**
  40. * 批量删除数据
  41. * @param ids - 要删除的ID数组
  42. * @returns Promise<操作结果>
  43. */
  44. export function delObjs(ids?: Object) {
  45. return request({
  46. url: '/${moduleName}/${functionName}',
  47. method: 'delete',
  48. data: ids
  49. })
  50. }
  51. /**
  52. * 更新数据
  53. * @param obj - 要更新的数据对象
  54. * @returns Promise<操作结果>
  55. */
  56. export function putObj(obj?: Object) {
  57. return request({
  58. url: '/${moduleName}/${functionName}',
  59. method: 'put',
  60. data: obj
  61. })
  62. }
  63. // ========== 工具函数 ==========
  64. /**
  65. * 验证字段值唯一性
  66. * @param rule - 验证规则对象
  67. * @param value - 要验证的值
  68. * @param callback - 验证回调函数
  69. * @param isEdit - 是否为编辑模式
  70. *
  71. * @example
  72. * // 在表单验证规则中使用
  73. * fieldName: [
  74. * {
  75. * validator: (rule, value, callback) => {
  76. * validateExist(rule, value, callback, form.${pk.attrName} !== '');
  77. * },
  78. * trigger: 'blur',
  79. * },
  80. * ]
  81. */
  82. export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
  83. // 编辑模式下跳过验证
  84. if (isEdit) {
  85. return callback();
  86. }
  87. // 查询是否存在相同值
  88. getObj({ [rule.field]: value }).then((response) => {
  89. const result = response.data;
  90. if (result !== null && result.length > 0) {
  91. callback(new Error('数据已经存在'));
  92. } else {
  93. callback();
  94. }
  95. });
  96. }
  97. #if($ChildClassName)
  98. // ========== 子表相关接口 ==========
  99. /**
  100. * 删除子表数据
  101. * @param ids - 要删除的子表数据ID数组
  102. * @returns Promise<操作结果>
  103. */
  104. export function delChildObj(ids?: Object) {
  105. return request({
  106. url: '/${moduleName}/${functionName}/child',
  107. method: 'delete',
  108. data: ids
  109. })
  110. }
  111. #end