更新记录
1.0.0(2026-06-05) 下载此版本
Initial Release
- 初始版本发布
- 支持远程表格和本地表格
- 内置权限控制
- 事件系统
- 树形数据支持
- 本地条件过滤
平台兼容性
uni-app(3.7.9)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | - | - | - | - |
uni-app x(3.7.9)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | - | - | - |
dk-table
一个功能强大的表格组件,支持本地数据和远程数据,内置权限控制和事件系统。
安装
# 已包含在项目 uni_modules 中
快速开始
引入
import {
createTableState,
DefaultTableContext,
LocalTable,
LocalTableContext,
RemoteTable,
executeCondition,
buildTreeByPid,
registerConditionHandler,
DefaultPublishEvent,
CheckAccessEleType,
createCheckAccessHook,
resourceAccessItems,
toCheckAccessMap,
CheckboxSelection,
DefaultQuery,
normalizeFetchResult
} from '@/uni_modules/dk-table';
远程表格示例
import { createTableState, RemoteTable } from '@/uni_modules/dk-table';
const state = createTableState({ name: 'users', defaultPageSize: 20 });
const controller = new RemoteTable({
name: 'users',
fetch: (request) => api.searchUsers(request)
});
const result = controller.load(
{
name: 'users',
fetch: (request) => api.searchUsers(request)
},
state,
(next) => Object.assign(state, next),
1
);
result.ctx.search();
本地表格示例
import { createTableState, LocalTable } from '@/uni_modules/dk-table';
const state = createTableState({ name: 'permissions', defaultPageSize: 50 });
const controller = new LocalTable({
name: 'permissions',
fetch: () => api.permissions(),
isTreeData: true
});
const result = controller.load(
{
name: 'permissions',
fetch: () => api.permissions(),
isTreeData: true
},
state,
(next) => Object.assign(state, next),
1
);
result.ctx.search();
权限控制示例
import { createTableState, RemoteTable, createCheckAccessHook, resourceAccessItems } from '@/uni_modules/dk-table';
const accessItems = resourceAccessItems('admin');
const checkaccessHook = createCheckAccessHook(accessItems);
const state = createTableState({ name: 'users', defaultPageSize: 20 });
const controller = new RemoteTable(
{
name: 'users',
fetch: api.searchUsers
},
checkaccessHook
);
const result = controller.load(
{
name: 'users',
fetch: api.searchUsers
},
state,
(next) => Object.assign(state, next),
1
);
// 使用权限
result.ctx.can('search');
result.ctx.can('add');
result.ctx.canv('search', '允许', '禁止');
API
createTableState(config, overrides)
创建表格状态对象
参数
config: 配置对象defaultPageNumber: 默认页码defaultPageSize: 默认每页数量defaultSorts: 默认排序
overrides: 覆盖配置
返回
- 表格状态对象
DefaultTableContext
表格上下文类
方法
search(searchBody): 搜索reset(): 重置refresh(isRefreshConfig): 刷新pageChange(number, size): 页码改变pageSizeChange(size): 每页数量改变pageNumberChange(number): 页码改变registerEvent(name, fn): 注册事件publish(name, params): 发布事件setMethod(name, fn): 设置方法getMethod(name): 获取方法tableSelectionChange(values): 表格选择改变tableSelectionConfirmValues(callback): 确认选择tableSelectionClean(): 清除选择tableSlectionValue(): 获取选择值request(): 获取请求参数tableConfig(): 获取表格配置name(): 获取名称can(key): 检查权限canv(key, success, failure): 检查权限并返回结果
RemoteTable
远程表格控制器
LocalTable
本地表格控制器
createCheckAccessHook(items, user)
创建权限检查钩子
resourceAccessItems(name)
生成资源权限项
buildTreeByPid(data, options)
构建树形数据
registerConditionHandler(type, handler)
注册条件处理器
依赖
许可证
MIT

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 4
赞赏 0
下载 12168455
赞赏 1918
赞赏
京公网安备:11010802035340号