@guoliwei/bw-table 1.0.0
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/README.md +92 -0
- package/dist/bw-table.js +6788 -0
- package/dist/bw-table.js.map +1 -0
- package/dist/bw-table.umd.umd +16 -0
- package/dist/bw-table.umd.umd.map +1 -0
- package/dist/style.css +1 -0
- package/package.json +49 -0
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# @your-scope/pro-table
|
|
2
|
+
|
|
3
|
+
Vue3 + Element Plus 增强表格组件,支持搜索表单、分页、列设置、多选、拖拽排序等。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i @your-scope/pro-table
|
|
9
|
+
# 或
|
|
10
|
+
pnpm add @your-scope/pro-table
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**依赖**:请确保项目已安装 `vue@^3.3`、`element-plus@^2.4`、`@element-plus/icons-vue`。表格内部使用 `sortablejs`、`vuedraggable`,已作为 dependencies 安装。
|
|
14
|
+
|
|
15
|
+
**样式**:包内已包含 ProTable 所需的全局样式(`.card`、`.table-main`、`.table-search`、`.table-header` 等),引入包样式后即可正常显示,无需在业务项目中再写一套。若项目已定义 `--gray-*` 等变量,会优先使用项目的;未定义时使用 Element Plus 变量作为 fallback。
|
|
16
|
+
|
|
17
|
+
## 使用
|
|
18
|
+
|
|
19
|
+
### 全局注册
|
|
20
|
+
|
|
21
|
+
```js
|
|
22
|
+
import ProTable from "@your-scope/pro-table";
|
|
23
|
+
import "@your-scope/pro-table/style.css"; // 若有打包样式
|
|
24
|
+
|
|
25
|
+
app.component("ProTable", ProTable);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 按需使用
|
|
29
|
+
|
|
30
|
+
```vue
|
|
31
|
+
<template>
|
|
32
|
+
<ProTable
|
|
33
|
+
:columns="columns"
|
|
34
|
+
:request-api="getList"
|
|
35
|
+
row-key="id"
|
|
36
|
+
/>
|
|
37
|
+
</template>
|
|
38
|
+
<script setup>
|
|
39
|
+
import ProTable from "@your-scope/pro-table";
|
|
40
|
+
import "@your-scope/pro-table/style.css";
|
|
41
|
+
|
|
42
|
+
const columns = [
|
|
43
|
+
{ prop: "name", label: "姓名", search: { el: "input" } },
|
|
44
|
+
{ prop: "status", label: "状态", enum: statusOptions, tag: true },
|
|
45
|
+
{ prop: "operation", label: "操作", fixed: "right" },
|
|
46
|
+
];
|
|
47
|
+
const getList = (params) => api.getList(params); // 需返回 { data, totalElements }
|
|
48
|
+
</script>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 权限按钮(可选)
|
|
52
|
+
|
|
53
|
+
若需要与项目权限体系对接(操作列按钮权限),在 ProTable 外层 provide 当前页允许的按钮码列表:
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
import { ref } from "vue";
|
|
57
|
+
const authButtons = ref(["add", "edit", "delete"]); // 从权限接口或 store 获取
|
|
58
|
+
provide("proTableAuthButtons", authButtons);
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
不 provide 时,操作列所有按钮均展示。
|
|
62
|
+
|
|
63
|
+
## Props / 事件 / 插槽
|
|
64
|
+
|
|
65
|
+
与现有 ProTable 保持一致,如:`columns`、`requestApi`、`requestAuto`、`pagination`、`rowKey`、`searchCol`、`toolButton` 等;事件 `search`、`reset`、`dargSort`、`create`;插槽 `tableHeader`、`selectButton`、`pagination`、`empty` 及各列插槽。
|
|
66
|
+
|
|
67
|
+
## 构建与发布 npm
|
|
68
|
+
|
|
69
|
+
在 `packages/pro-table` 目录下:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pnpm install
|
|
73
|
+
pnpm build
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
发布前请将 `package.json` 中 `name` 改为你的 scope 或包名(如 `@myorg/pro-table` 或 `my-pro-table`),然后:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npm login
|
|
80
|
+
npm publish
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
若为 scoped 且公开发布:`npm publish --access public`。
|
|
84
|
+
|
|
85
|
+
## 从当前项目迁移
|
|
86
|
+
|
|
87
|
+
若从本仓库的 `src/components/ProTable` 迁移到该包,只需将页面中的:
|
|
88
|
+
|
|
89
|
+
- `import ProTable from "@/components/ProTable/index.vue"`
|
|
90
|
+
改为
|
|
91
|
+
- `import ProTable from "@your-scope/pro-table"`
|
|
92
|
+
并引入样式(若需要)。列配置、API 入参/出参、插槽名保持不变即可。
|