2022-06-10 10:44:44 +08:00
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
|
|
import { Modal } from 'ant-design-vue';
|
2022-03-10 09:47:29 +08:00
|
|
|
|
|
|
|
enum Api {
|
|
|
|
list = '/sys/permission/list',
|
2022-06-10 10:44:44 +08:00
|
|
|
save = '/sys/permission/add',
|
|
|
|
edit = '/sys/permission/edit',
|
2022-03-10 09:47:29 +08:00
|
|
|
delete = '/sys/permission/delete',
|
|
|
|
deleteBatch = '/sys/permission/deleteBatch',
|
|
|
|
ruleList = '/sys/permission/queryPermissionRule',
|
2022-06-10 10:44:44 +08:00
|
|
|
ruleSave = '/sys/permission/addPermissionRule',
|
|
|
|
ruleEdit = '/sys/permission/editPermissionRule',
|
|
|
|
ruleDelete = '/sys/permission/deletePermissionRule',
|
2022-11-06 22:27:14 +08:00
|
|
|
checkPermDuplication = '/sys/permission/checkPermDuplication',
|
2022-03-10 09:47:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 列表接口
|
|
|
|
* @param params
|
|
|
|
*/
|
2022-09-22 14:06:18 +08:00
|
|
|
export const list = (params) => {
|
|
|
|
return defHttp.get({ url: Api.list, params });
|
|
|
|
}
|
2022-03-10 09:47:29 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 删除菜单
|
|
|
|
*/
|
2022-06-10 10:44:44 +08:00
|
|
|
export const deleteMenu = (params, handleSuccess) => {
|
|
|
|
return defHttp.delete({ url: Api.delete, params }, { joinParamsToUrl: true }).then(() => {
|
2022-03-10 09:47:29 +08:00
|
|
|
handleSuccess();
|
|
|
|
});
|
2022-06-10 10:44:44 +08:00
|
|
|
};
|
2022-03-10 09:47:29 +08:00
|
|
|
/**
|
|
|
|
* 批量删除菜单
|
|
|
|
* @param params
|
|
|
|
*/
|
|
|
|
export const batchDeleteMenu = (params, handleSuccess) => {
|
|
|
|
Modal.confirm({
|
|
|
|
title: '确认删除',
|
|
|
|
content: '是否删除选中数据',
|
|
|
|
okText: '确认',
|
|
|
|
cancelText: '取消',
|
|
|
|
onOk: () => {
|
2022-06-10 10:44:44 +08:00
|
|
|
return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => {
|
2022-03-10 09:47:29 +08:00
|
|
|
handleSuccess();
|
|
|
|
});
|
2022-06-10 10:44:44 +08:00
|
|
|
},
|
2022-03-10 09:47:29 +08:00
|
|
|
});
|
2022-06-10 10:44:44 +08:00
|
|
|
};
|
2022-03-10 09:47:29 +08:00
|
|
|
/**
|
|
|
|
* 保存或者更新菜单
|
|
|
|
* @param params
|
|
|
|
*/
|
|
|
|
export const saveOrUpdateMenu = (params, isUpdate) => {
|
|
|
|
let url = isUpdate ? Api.edit : Api.save;
|
2022-06-10 10:44:44 +08:00
|
|
|
return defHttp.post({ url: url, params });
|
|
|
|
};
|
2022-03-10 09:47:29 +08:00
|
|
|
/**
|
|
|
|
* 菜单数据权限列表接口
|
|
|
|
* @param params
|
|
|
|
*/
|
2022-06-10 10:44:44 +08:00
|
|
|
export const dataRuleList = (params) => defHttp.get({ url: Api.ruleList, params });
|
2022-03-10 09:47:29 +08:00
|
|
|
/**
|
|
|
|
* 保存或者更新数据规则
|
|
|
|
* @param params
|
|
|
|
*/
|
|
|
|
export const saveOrUpdateRule = (params, isUpdate) => {
|
|
|
|
let url = isUpdate ? Api.ruleEdit : Api.ruleSave;
|
2022-06-10 10:44:44 +08:00
|
|
|
return defHttp.post({ url: url, params });
|
|
|
|
};
|
2022-03-10 09:47:29 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 删除数据权限
|
|
|
|
*/
|
2022-06-10 10:44:44 +08:00
|
|
|
export const deleteRule = (params, handleSuccess) => {
|
|
|
|
return defHttp.delete({ url: Api.ruleDelete, params }, { joinParamsToUrl: true }).then(() => {
|
2022-03-10 09:47:29 +08:00
|
|
|
handleSuccess();
|
|
|
|
});
|
2022-06-10 10:44:44 +08:00
|
|
|
};
|
2022-03-10 09:47:29 +08:00
|
|
|
/**
|
|
|
|
* 根据code获取字典数值
|
|
|
|
* @param params
|
|
|
|
*/
|
2022-06-10 10:44:44 +08:00
|
|
|
export const ajaxGetDictItems = (params) => defHttp.get({ url: `/sys/dict/getDictItems/${params.code}` });
|
2022-11-06 22:27:14 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 唯一校验
|
|
|
|
* @param params
|
|
|
|
*/
|
|
|
|
export const getCheckPermDuplication = (params) => defHttp.get({ url: Api.checkPermDuplication, params }, { isTransformResponse: false });
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 校验菜单是否存在
|
|
|
|
* @param model
|
|
|
|
* @param schema
|
|
|
|
* @param required
|
|
|
|
*/
|
|
|
|
export const checkPermDuplication=(model, schema, required?)=>{
|
|
|
|
return [
|
|
|
|
{
|
|
|
|
validator: (_, value) => {
|
|
|
|
if (!value && required) {
|
|
|
|
return Promise.reject(`请输入${schema.label}`);
|
|
|
|
}
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
getCheckPermDuplication({
|
|
|
|
id: model.id,
|
|
|
|
url:model.url,
|
|
|
|
alwaysShow:model.alwaysShow
|
|
|
|
}).then((res) => {
|
|
|
|
res.success ? resolve() : reject(res.message || '校验失败');
|
|
|
|
}).catch((err) => {
|
|
|
|
reject(err.message || '验证失败');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
];
|
|
|
|
}
|