CET-vue-3.0/src/views/system/menu/menu.api.ts

120 lines
3.1 KiB
TypeScript
Raw Normal View History

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',
checkPermDuplication = '/sys/permission/checkPermDuplication',
2022-03-10 09:47:29 +08:00
}
/**
*
* @param params
*/
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}` });
/**
*
* @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 || '验证失败');
});
});
},
},
];
}