左树右表api.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. // ========== 树形CRUD接口 ==========
  64. /**
  65. * 获取树形列表数据
  66. * @param query - 查询参数对象
  67. * @returns Promise<树形数据>
  68. */
  69. export function fetchTreeList(query?: Object) {
  70. return request({
  71. url: '/${moduleName}/${functionName}/tree',
  72. method: 'get',
  73. params: query
  74. })
  75. }
  76. /**
  77. * 获取树节点详情
  78. * @param obj - 查询参数对象(包含ID等)
  79. * @returns Promise<树节点详情>
  80. */
  81. export function getTreeObj(obj?: Object) {
  82. return request({
  83. url: '/${moduleName}/${functionName}/tree/details',
  84. method: 'get',
  85. params: obj
  86. })
  87. }
  88. /**
  89. * 新增树节点
  90. * @param obj - 要新增的树节点对象
  91. * @returns Promise<操作结果>
  92. */
  93. export function addTreeObj(obj?: Object) {
  94. return request({
  95. url: '/${moduleName}/${functionName}/tree',
  96. method: 'post',
  97. data: obj
  98. })
  99. }
  100. /**
  101. * 更新树节点
  102. * @param obj - 要更新的树节点对象
  103. * @returns Promise<操作结果>
  104. */
  105. export function putTreeObj(obj?: Object) {
  106. return request({
  107. url: '/${moduleName}/${functionName}/tree',
  108. method: 'put',
  109. data: obj
  110. })
  111. }
  112. /**
  113. * 删除树节点
  114. * @param ids - 要删除的树节点ID数组
  115. * @returns Promise<操作结果>
  116. */
  117. export function delTreeObjs(ids?: Object) {
  118. return request({
  119. url: '/${moduleName}/${functionName}/tree',
  120. method: 'delete',
  121. data: ids
  122. })
  123. }
  124. // ========== 工具函数 ==========
  125. /**
  126. * 验证字段值唯一性
  127. * @param rule - 验证规则对象
  128. * @param value - 要验证的值
  129. * @param callback - 验证回调函数
  130. * @param isEdit - 是否为编辑模式
  131. *
  132. * @example
  133. * // 在表单验证规则中使用
  134. * fieldName: [
  135. * {
  136. * validator: (rule, value, callback) => {
  137. * validateExist(rule, value, callback, form.${pk.attrName} !== '');
  138. * },
  139. * trigger: 'blur',
  140. * },
  141. * ]
  142. */
  143. export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
  144. // 编辑模式下跳过验证
  145. if (isEdit) {
  146. return callback();
  147. }
  148. // 查询是否存在相同值
  149. getObj({ [rule.field]: value }).then((response) => {
  150. const result = response.data;
  151. if (result !== null && result.length > 0) {
  152. callback(new Error('数据已经存在'));
  153. } else {
  154. callback();
  155. }
  156. });
  157. }