接口请求

参数示例(放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;
}

results matching ""

    No results matching ""