20261008
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
const formRules = require("../util/formRules.js");
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增
|
||||
* @url admin/system/menu/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} menu_id 菜单Id,唯一标识
|
||||
* @param {String} name 菜单名称
|
||||
* @param {String} comment 备注
|
||||
* @param {String} url 页面路径
|
||||
* @param {String} icon 菜单图标
|
||||
* @param {Number} sort 排序(越大越在前面)
|
||||
* @param {String} parent_id 父级id
|
||||
* @param {Boolean} enable 是否启用
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
menu_id,
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort = 0,
|
||||
parent_id,
|
||||
enable = true,
|
||||
hidden_menu
|
||||
} = data;
|
||||
|
||||
// 参数合法校验开始-----------------------------------------------------------
|
||||
let formRulesRes = await formRules.add(event);
|
||||
if(formRulesRes.code !== 0){
|
||||
return formRulesRes;
|
||||
}
|
||||
// 参数合法校验结束-----------------------------------------------------------
|
||||
let dbName = "opendb-admin-menus";
|
||||
// 检测menu_id是否存在
|
||||
let num = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson:{
|
||||
menu_id
|
||||
}
|
||||
});
|
||||
if(num > 0){
|
||||
return { code : -1, msg : `标识【${menu_id}】不能重复!` };
|
||||
}
|
||||
let dataJson = {
|
||||
menu_id,
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort,
|
||||
parent_id,
|
||||
enable,
|
||||
hidden_menu
|
||||
};
|
||||
// 检测parent_id是否不存在
|
||||
if(vk.pubfn.isNotNull(parent_id)){
|
||||
let num = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson:{
|
||||
menu_id : parent_id
|
||||
}
|
||||
});
|
||||
if(num <= 0){
|
||||
return { code : -1, msg : `父标识【${parent_id}】不存在!` };
|
||||
}
|
||||
}else{
|
||||
delete dataJson.parent_id;
|
||||
}
|
||||
// 执行数据库API请求
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
const formRules = require("../util/formRules.js");
|
||||
module.exports = {
|
||||
/**
|
||||
* 批量新增
|
||||
* @url admin/system/menu/sys/adds 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} mode 模式 1 :覆盖 2:忽略
|
||||
* @param {Array<Object>} menus 菜单json
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
mode,
|
||||
menus,
|
||||
} = data;
|
||||
|
||||
// 参数合法校验开始-----------------------------------------------------------
|
||||
let formRulesRes = await formRules.adds(event);
|
||||
if(formRulesRes.code !== 0){
|
||||
return formRulesRes;
|
||||
}
|
||||
// 参数合法校验结束-----------------------------------------------------------
|
||||
let dataArr = [];
|
||||
for(let i=0;i<menus.length;i++){
|
||||
let {
|
||||
menu_id,
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort = 0,
|
||||
parent_id,
|
||||
enable = true,
|
||||
hidden_menu
|
||||
} = menus[i];
|
||||
|
||||
dataArr.push({
|
||||
menu_id,
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort,
|
||||
parent_id,
|
||||
enable,
|
||||
hidden_menu
|
||||
});
|
||||
}
|
||||
if(mode == 1){
|
||||
// 如果是覆盖,则先删除原先的数据
|
||||
let menuIds = vk.pubfn.arrayObjectGetArray(dataArr, "menu_id");
|
||||
await vk.baseDao.del({
|
||||
dbName:"opendb-admin-menus",
|
||||
whereJson:{
|
||||
menu_id : _.in(menuIds)
|
||||
}
|
||||
});
|
||||
}
|
||||
// 执行数据库API请求
|
||||
await vk.baseDao.adds({
|
||||
dbName:"opendb-admin-menus",
|
||||
dataJson:dataArr
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 为菜单设置内置权限
|
||||
* 角色拥有菜单后,将同时拥有菜单内的所有内置权限
|
||||
* @url admin/system/menu/sys/bindPermission 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} menu_id 菜单id(menu_id)
|
||||
* @param {Array} permissionList 权限Id(permission_id)列表
|
||||
* @param {Boolean} reset 是否直接覆盖权限,true:直接将permissionList设置为权限,false:在菜单已有权限后追加权限
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
menu_id,
|
||||
permissionList,
|
||||
reset
|
||||
} = data;
|
||||
res = await vk.system.sysDao.menuBindPermission({
|
||||
menu_id,
|
||||
permissionList,
|
||||
reset
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 删除
|
||||
* @url admin/system/menu/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} menu_id 菜单Id,唯一标识
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { menu_id } = data;
|
||||
if(vk.pubfn.isNullOne(menu_id)){
|
||||
return { code : -1, msg : 'menu_id不能为空' };
|
||||
}
|
||||
// 检查是否有子项
|
||||
let num = await vk.baseDao.count({
|
||||
dbName:"opendb-admin-menus",
|
||||
whereJson:{
|
||||
parent_id : menu_id
|
||||
}
|
||||
});
|
||||
if(num > 0){
|
||||
return { code : -1, msg : '该项含有子项,请先删除子项!' };
|
||||
}
|
||||
res.num = await vk.baseDao.del({
|
||||
dbName:"opendb-admin-menus",
|
||||
whereJson:{
|
||||
menu_id
|
||||
}
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 获取菜单列表(一次性获取全部)
|
||||
* @url admin/system/menu/sys/getAll 前端调用的url参数地址
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 返回树状结构代码详情见:https://vkdoc.fsq.pub/client/uniCloud/db/getTree.html
|
||||
res = await vk.system.sysDao.listMenuToTree({
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson: {
|
||||
parent_id: _.in([null, ""]),
|
||||
menu_id: _.exists(true)
|
||||
},
|
||||
treeProps: {
|
||||
level: 3
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 获取菜单级联数据(懒加载形式)
|
||||
* @url admin/system/menu/sys/getCascader 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Object} node 当前点击的节点
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { node = {} } = data;
|
||||
let whereJson = {
|
||||
enable: true
|
||||
};
|
||||
if (node.root) {
|
||||
whereJson["parent_id"] = null;
|
||||
} else {
|
||||
whereJson["parent_id"] = node.value;
|
||||
}
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "opendb-admin-menus",
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson,
|
||||
sortArr: [{ name: "sort", type: "asc" }],
|
||||
// 副表列表
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "opendb-admin-menus",
|
||||
localKey:"menu_id",
|
||||
foreignKey: "parent_id",
|
||||
as: "hasChildren",
|
||||
limit: 1, // 避免浪费查询,这里设置limit:1
|
||||
}
|
||||
]
|
||||
});
|
||||
// 数据预处理
|
||||
let rows = res.rows;
|
||||
for (let i in rows) {
|
||||
let item = rows[i];
|
||||
rows[i].label = `${item.name}(${item.menu_id})`;
|
||||
if(vk.pubfn.isNull(item.hasChildren)){
|
||||
rows[i].leaf = true;
|
||||
}
|
||||
}
|
||||
res.rows = rows;
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
const formRules = require("../util/formRules.js");
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改
|
||||
* @url admin/system/menu/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} menu_id 菜单Id,唯一标识
|
||||
* @param {String} name 菜单名称
|
||||
* @param {String} comment 备注
|
||||
* @param {String} url 页面路径
|
||||
* @param {String} icon 菜单图标
|
||||
* @param {Number} sort 排序(越大越在前面)
|
||||
* @param {String} parent_id 父级id
|
||||
* @param {Boolean} enable 是否启用
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
menu_id,
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort = 0,
|
||||
parent_id,
|
||||
enable = true,
|
||||
hidden_menu
|
||||
} = data;
|
||||
// 参数合法校验开始-----------------------------------------------------------
|
||||
let formRulesRes = await formRules.update(event);
|
||||
if (formRulesRes.code !== 0) {
|
||||
return formRulesRes;
|
||||
}
|
||||
// 参数合法校验结束-----------------------------------------------------------
|
||||
let dbName = "opendb-admin-menus";
|
||||
let dataJson = {
|
||||
name,
|
||||
comment,
|
||||
url,
|
||||
icon,
|
||||
sort,
|
||||
parent_id,
|
||||
enable,
|
||||
hidden_menu
|
||||
};
|
||||
// 检测parent_id是否不存在
|
||||
if (vk.pubfn.isNotNull(parent_id)) {
|
||||
let num = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson: {
|
||||
menu_id: parent_id
|
||||
}
|
||||
});
|
||||
if (num <= 0) {
|
||||
return { code: -1, msg: `父标识【${parent_id}】不存在!` };
|
||||
}
|
||||
let info = await vk.baseDao.findByWhereJson({
|
||||
dbName,
|
||||
whereJson: {
|
||||
menu_id
|
||||
}
|
||||
});
|
||||
if (vk.pubfn.isNotNull(info) && info.menu_id === parent_id) {
|
||||
return { code: -1, msg: `不可以设置自己为父菜单` };
|
||||
}
|
||||
} else {
|
||||
dataJson["parent_id"] = _.remove();
|
||||
}
|
||||
// 执行数据库API请求
|
||||
res.num = await vk.baseDao.update({
|
||||
dbName,
|
||||
whereJson: {
|
||||
menu_id
|
||||
},
|
||||
dataJson
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改基础信息
|
||||
* @url admin/system/menu/sys/updateBase 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} _id _id
|
||||
* @param {Number} sort 排序
|
||||
* @param {Boolean} enable 是否启用
|
||||
* @param {Boolean} hidden_menu 是否隐藏(左侧菜单中不显示)
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
_id,
|
||||
sort,
|
||||
enable,
|
||||
hidden_menu
|
||||
} = data;
|
||||
if (vk.pubfn.isNull(_id)) return { code: -1, msg: "_id不能为空" };
|
||||
|
||||
let dbName = "opendb-admin-menus";
|
||||
|
||||
// 执行数据库API请求
|
||||
res.num = await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: _id,
|
||||
dataJson: {
|
||||
sort,
|
||||
enable,
|
||||
hidden_menu
|
||||
},
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user