menu.api.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import { defHttp } from '/@/utils/http/axios';
  2. import { Modal } from 'ant-design-vue';
  3. enum Api {
  4. list = '/sys/permissionNew/list',
  5. save = '/sys/permissionNew/add',
  6. edit = '/sys/permissionNew/edit',
  7. delete = '/sys/permissionNew/delete',
  8. deleteBatch = '/sys/permissionNew/deleteBatch',
  9. ruleList = '/sys/permissionNew/queryPermissionRule',
  10. ruleSave = '/sys/permissionNew/addPermissionRule',
  11. ruleEdit = '/sys/permissionNew/editPermissionRule',
  12. ruleDelete = '/sys/permissionNew/deletePermissionRule',
  13. checkPermDuplication = '/sys/permissionNew/checkPermDuplication',
  14. }
  15. /**
  16. * 列表接口
  17. * @param params
  18. */
  19. export const list = (params) => {
  20. return defHttp.get({ url: Api.list, params });
  21. };
  22. /**
  23. * 删除菜单
  24. */
  25. export const deleteMenu = (params, handleSuccess) => {
  26. return defHttp.delete({ url: Api.delete, params }, { joinParamsToUrl: true }).then(() => {
  27. handleSuccess();
  28. });
  29. };
  30. /**
  31. * 批量删除菜单
  32. * @param params
  33. */
  34. export const batchDeleteMenu = (params, handleSuccess) => {
  35. Modal.confirm({
  36. title: '确认删除',
  37. content: '是否删除选中数据',
  38. okText: '确认',
  39. cancelText: '取消',
  40. onOk: () => {
  41. return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => {
  42. handleSuccess();
  43. });
  44. },
  45. });
  46. };
  47. /**
  48. * 保存或者更新菜单
  49. * @param params
  50. */
  51. export const saveOrUpdateMenu = (params, isUpdate) => {
  52. const url = isUpdate ? Api.edit : Api.save;
  53. return defHttp.post({ url: url, params });
  54. };
  55. /**
  56. * 菜单数据权限列表接口
  57. * @param params
  58. */
  59. export const dataRuleList = (params) => defHttp.get({ url: Api.ruleList, params });
  60. /**
  61. * 保存或者更新数据规则
  62. * @param params
  63. */
  64. export const saveOrUpdateRule = (params, isUpdate) => {
  65. const url = isUpdate ? Api.ruleEdit : Api.ruleSave;
  66. return defHttp.post({ url: url, params });
  67. };
  68. /**
  69. * 删除数据权限
  70. */
  71. export const deleteRule = (params, handleSuccess) => {
  72. return defHttp.delete({ url: Api.ruleDelete, params }, { joinParamsToUrl: true }).then(() => {
  73. handleSuccess();
  74. });
  75. };
  76. /**
  77. * 根据code获取字典数值
  78. * @param params
  79. */
  80. export const ajaxGetDictItems = (params) => defHttp.get({ url: `/sys/dict/getDictItems/${params.code}` });
  81. /**
  82. * 唯一校验
  83. * @param params
  84. */
  85. export const getCheckPermDuplication = (params) => defHttp.get({ url: Api.checkPermDuplication, params }, { isTransformResponse: false });
  86. /**
  87. * 校验菜单是否存在
  88. * @param model
  89. * @param schema
  90. * @param required
  91. */
  92. export const checkPermDuplication = (model, schema, required?) => {
  93. return [
  94. {
  95. validator: (_, value) => {
  96. if (!value && required) {
  97. return Promise.reject(`请输入${schema.label}`);
  98. }
  99. return new Promise<void>((resolve, reject) => {
  100. // getCheckPermDuplication({
  101. // id: model.id,
  102. // url: model.url,
  103. // alwaysShow: model.alwaysShow,
  104. // })
  105. // .then((res) => {
  106. // res.success ? resolve() : reject(res.message || '校验失败');
  107. // })
  108. // .catch((err) => {
  109. // reject(err.message || '验证失败');
  110. // });
  111. resolve()
  112. });
  113. },
  114. },
  115. ];
  116. };