接口请求
参数示例(放body里)
{
"model":{
"name":"11"
},
"extra":{
"createTime_st":"2022-03-15 15:21:51",
"createTime_ed":"2022-04-20 15:21:51"
},
"current":1,
"size":20
}
参数释义
字段名 | 中文释义 |
---|---|
current | 当前页码 |
size | 页数大小 |
model | 普通参数存储对象,传递方式为key:value |
extra | 特殊功能匹配参数存储对象,传递方式为key_工具code:value |
工具code值 | 中文释义 |
---|---|
st | 开始时间 |
ed | 结束时间 |
eq | 等于 |
ne | 不等于 |
ge | 大于或等于 |
gt | 大于 |
lt | 小于 |
le | 小于或等于 |
like | 模糊 |
likeLeft | 左模糊 |
likeRight | 右模糊 |
平台代码示例
domain: {
...
filter: {
queryType: "body"
},
...
}
路由权限
路由不再由前端配置,而由后台接口返回。拉取到路由之后,遍历路由做初始化设置,后动态添加至可访问路由表。
核心代码如下:
// 初始化路由
function filterAsyncRouter(routers)
{
// 遍历后台传来的路由字符串,转换为组件对象
let accessedRouters = routers.map(router =>
{
if (router.component === "main")
{
// Main组件特殊处理
router.component = AppMain;
}
else
{
router.component = loadView(router.component);
}
router.name = _STRING_UTIL.toCamelCase(router.path.replace(/\//g, "_"));
if (router.children && router.children.length > 0)
{
router.children = filterAsyncRouter(router.children);
}
return router;
});
return accessedRouters;
}
Store.dispatch("getRouter").then(res =>
{
Router.addRoutes(Store.getters.addRouters); // 动态添加可访问路由表
next({ ...to, replace: true });
}).catch(() =>
{
Message.error("验证失败,请重新登录");
});
按钮权限
规范介绍
创建按钮时需要给按钮添加一个权限key,命名示例:authority:application:edit,命名规范详解如下表
示例字段名 | 含义解释 |
---|---|
authority | 所属大功能模块,需提前与后端约束好 |
application | 所属具体功能模块,需提前与后端约束好 |
edit | 按钮的功能,基础功能对应的字典见下表 |
编码 | 中文释义 |
---|---|
add | 新增 |
edit | 修改 |
detail | 详情 |
delete | 删除 |
view | 查询 |
import | 导入 |
export | 导出 |
实际用法
1、平台按钮
domain对象中传入按钮的keycode前缀。
domain: {
...
authorityCode: "authority:user"
...
}
2、自定义按钮
使用v-permisson命令,后传入按钮完成的keycode。例子为在表格右侧自定义按钮。
<template slot="table-column-operation"
slot-scope="scope">
<el-tooltip
v-permission="'authority:menu:add'"
v-if="scope.row.type === 'MENU'"
:visible-arrow="false"
content="children"
class="item"
effect="light"
placement="bottom-start">
<el-button
key="children"
type="text"
class="tiny"
@click="handleAddChldren(scope.row)">添加下级</el-button>
</el-tooltip>
</template>
数据权限
所有请求头会带参数Tenant,以过滤不同租户数据。
if (!config.headers.Tenant && tenantVal)
{
config.headers.Tenant = tenantVal;
}