@agile-team/mach-table-vue 0.29.1 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui.d.cts CHANGED
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
84
84
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
85
85
  onClearSelection?: ((...args: any[]) => any) | undefined;
86
86
  }>, {
87
- features: MachTableToolbarFeatures;
88
87
  loading: boolean;
88
+ features: MachTableToolbarFeatures;
89
89
  selectedCount: number;
90
90
  api: GridApi<any> | null;
91
91
  commands: MachTableCommands | null;
package/dist/ui.d.ts CHANGED
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
84
84
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
85
85
  onClearSelection?: ((...args: any[]) => any) | undefined;
86
86
  }>, {
87
- features: MachTableToolbarFeatures;
88
87
  loading: boolean;
88
+ features: MachTableToolbarFeatures;
89
89
  selectedCount: number;
90
90
  api: GridApi<any> | null;
91
91
  commands: MachTableCommands | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/mach-table-vue",
3
- "version": "0.29.1",
3
+ "version": "0.29.2",
4
4
  "description": "Official Vue 3 adapter for the MachTable enterprise data grid",
5
5
  "keywords": [
6
6
  "vue",
@@ -117,19 +117,20 @@
117
117
  "sideEffects": [
118
118
  "**/*.css"
119
119
  ],
120
- "scripts": {
121
- "build": "tsup && node ../../scripts/copy-adapter-style.mjs vue",
122
- "typecheck": "tsc --noEmit",
123
- "test": "vitest run",
124
- "test:coverage": "vitest run --coverage"
125
- },
126
120
  "dependencies": {
127
- "@agile-team/mach-table": "workspace:*"
121
+ "@agile-team/mach-table": "0.29.2"
128
122
  },
129
123
  "peerDependencies": {
130
124
  "vue": ">=3.2.0"
131
125
  },
132
126
  "devDependencies": {
133
127
  "vue": "^3.5.13"
134
- }
135
- }
128
+ },
129
+ "scripts": {
130
+ "build": "tsup && node ../../scripts/copy-adapter-style.mjs vue",
131
+ "typecheck": "tsc --noEmit",
132
+ "test": "vitest run",
133
+ "test:coverage": "vitest run --coverage"
134
+ },
135
+ "readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table-vue\n\nMachTable 0.28 的官方 Vue 3 适配包。一个依赖即可获得 Core、泛型 `<MachTable>`、原生 slots、应用/路由配置、按需工作流、异步组件边界和自动生命周期清理。\n\n```bash\npnpm add @agile-team/mach-table-vue\n```\n\n应用入口只引入一次样式:\n\n```ts\nimport \"@agile-team/mach-table-vue/styles.css\";\n```\n\n## 局部接入\n\n```vue\n<script setup lang=\"ts\">\nimport { h, ref } from \"vue\";\nimport {\n MachTable,\n defineVueColumns,\n defineVueTableConfig,\n indexColumn,\n useMachTable,\n} from \"@agile-team/mach-table-vue\";\n\ninterface Row { id: string; name: string; status: \"enabled\" | \"disabled\" }\nconst table = useMachTable<Row>();\nconst rows = ref<Row[]>([{ id: \"1\", name: \"MachTable\", status: \"enabled\" }]);\nconst columns = defineVueColumns<Row>([\n indexColumn({ headerName: \"序号\" }),\n { field: \"name\", flex: 1, editable: true },\n {\n field: \"status\",\n headerName: \"状态\",\n render: (row) => h(\"span\", { class: `status-${row.status}` }, row.status === \"enabled\" ? \"启用\" : \"停用\")\n }\n]);\nconst tableConfig = defineVueTableConfig<Row>({\n rowKey: \"id\",\n enableColumnResize: true,\n stripedRows: true,\n persistence: { key: \"customers:list\", sections: [\"columns\"] }\n});\n</script>\n\n<template>\n <div style=\"height: 520px\">\n <MachTable\n v-bind=\"tableConfig\"\n :ref=\"table.ref\"\n :row-data=\"rows\"\n :column-defs=\"columns\"\n />\n </div>\n</template>\n```\n\n业务列优先用 `defineVueColumns()` 的 `render(row, index, params)` 返回 VNode;它保留 Vue 应用上下文、支持原位刷新,并遵循全局、表格和单列对齐配置。复杂页面编排仍可使用 `#cell-*` 具名插槽,具名插槽会显式覆盖同列 `render`。多个稳定表格参数推荐放进页面 `data.ts` 或共享配置模块,模板通过一次 `v-bind=\"tableConfig\"` 注入;`rowData`、`columnDefs` 和实例 `ref` 保持显式,便于看清数据来源。\n\n未声明 `#loading` / `#empty` 时会直接使用 Core 的紧凑骨架加载态与插画空态;只有产品确实需要品牌化呈现时才提供 slot,避免每个页面重复维护同类状态组件。\n\n单元格编辑在用户点击对勾/取消或执行 Enter、Escape、Tab 键盘命令前保持挂载,焦点变化和中文输入法组合输入不会提前提交。整行事务请设置 `edit-type=\"fullRow\"` 并增加 `rowActionsColumn()`,该操作列会自动切换编辑、保存和取消状态。\n\n## 全局接入\n\n表格页面较多时,全局注册一次,页面模板直接使用 `<MachTable>`:\n\n```ts\nimport { createApp } from \"vue\";\nimport { MachTablePlugin } from \"@agile-team/mach-table-vue\";\nimport machTableConfig from \"@/config/mach-table.config\";\n\ncreateApp(App).use(MachTablePlugin, machTableConfig).mount(\"#app\");\n```\n\n需要减少首屏代码时改用异步全局插件:\n\n```ts\nimport AsyncMachTablePlugin, { preloadMachTable } from \"@agile-team/mach-table-vue/async\";\n\napp.use(AsyncMachTablePlugin, machTableConfig);\nvoid preloadMachTable(); // 可选:路由 hover 时预取\n```\n\n推荐把约定集中到独立文件:\n\n```ts\n// src/config/mach-table.config.ts\nimport { defineMachTableConfig, defineMachTablePreset } from \"@agile-team/mach-table-vue\";\n\nexport default defineMachTableConfig({\n defaults: {\n size: \"compact\",\n columnLayout: \"fit\",\n enableColumnResize: true,\n defaultColDef: { sortable: true, filter: true, resizable: true }\n },\n defaultPreset: \"list\",\n presets: {\n list: defineMachTablePreset({ stripedRows: true }),\n crud: defineMachTablePreset({ rowSelection: \"multiple\", editType: \"fullRow\" })\n }\n});\n```\n\n布局或路由可用响应式 `provideMachTableConfig()` 叠加配置,表格 props 始终拥有最高优先级。\n\n## 按需子入口\n\n```ts\nimport { useMachTableQuery, useMachTableEditing } from \"@agile-team/mach-table-vue/workflows\";\nimport { MachTableToolbar } from \"@agile-team/mach-table-vue/ui\";\nimport { vueCellRenderer } from \"@agile-team/mach-table-vue/adapters\";\nimport { createElementPlusEditors } from \"@agile-team/mach-table-vue/editors\";\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table-vue/worker\";\n```\n\n- `/workflows`:请求取消、防过期覆盖、服务端分页、跨页选择、脏数据和冲突保存;`reset()` 清空全部表格过滤且只请求一次。\n- `/ui`:可选标准工具栏;需要全局组件时另行 `app.use(MachTableUiPlugin)`,其全局组件类型也只在导入该子入口后生效。\n- `/adapters`:自定义 Vue renderer/editor/detail/overlay 桥接。\n- `/editors`:可选 Element Plus 编辑器,Element Plus 由宿主注入。\n- `/worker`:大型本地过滤/排序的独立 Worker 能力。\n\n该包自动依赖 `@agile-team/mach-table` 并重导出 Core 类型;宿主只需提供 `vue >= 3.2`。\n\n文档:[Vue 指南](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/vue.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [配置中心](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/configuration.md)\n\nSource-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) 与[授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)。\n"
136
+ }