# vue3-vuecmf-table **Repository Path**: net561/vue3-vuecmf-table ## Basic Information - **Project Name**: vue3-vuecmf-table - **Description**: 基于vue3、Element Plus和TypeScript的多功能列表组件,内置搜索、筛选、分页、行展开、编辑、导出和导入EXCEL等功能 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: http://www.vuecmf.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-05-27 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vue3-vuecmf-table > 基于vue3、Element Plus和TypeScript的多功能列表组件,支持树形列表数据,内置搜索、筛选、分页、行展开、详情、编辑、导出和导入EXCEL等功能 - 示例演示: http://www.vuecmf.com ## 安装 ``` bash # yarn方式安装 vue3-vuecmf-table yarn add vue3-vuecmf-table # npm方式安装 vue3-vuecmf-table npm install vue3-vuecmf-table ``` ###1、先在项目中的main.ts 引入 ``` import { createApp } from 'vue' import App from './App.vue' import './registerServiceWorker' /*导入vuecmf editor、vuecmf dialog和vuecmf table组件*/ import VuecmfEditor from 'vue-vuecmf-editor' import VuecmfDialog from 'vue-vuecmf-dialog' import VuecmfTable from "vue3-vuecmf-table" createApp(App).use(VuecmfTable).use(VuecmfEditor).use(VuecmfDialog).mount('#app') ``` ## 模板中使用组件 注意:1.8.0版本开始,show_detail、add_form 和 edit_form 属性被移除,新增加 detail_btn_visible、add_btn_visible、edit_btn_visible 和 del_btn_visible 属性,具体使用见下面实例 1.9.0版本开始callback事件移除,增加 beforeLoadTable 和 afterLoadTable 事件 1.10.0版本开始,后端api获取的字段信息中 relation_info 中增加 full_options项,供列表中关联字段值转换显示内容用 ``` vuecmf-table demo 批量删除 禁用 {{ item.col01 }} {{ item.col02 }} {{ index }} ``` 若列表数据为树形时(即包含 children 字段时),必须设置 row_key 属性(树形数据的唯一键字段名),另还可以设置 default_expand_all属性(是否全部展开); 若列表为非树形时,不要设置 row_key 属性,否则列表的分页条不会显示。 详细使用见 源码中 examples目录中示例 ## 后端返回JSON 数据样例: ### 获取列表字段数据API样例 前端POST数据示例 ``` {"data":{"action":"getField"}} ``` 返回JSON ``` { "data":{ "field_info":[ { "field_id":66, "prop":"id", "label":"ID", "width":100, "length":11, "show":true, "fixed":false, "filter":false, "tooltip":"自增ID", "model_id":8, "sortable":true }, ... 此处省略 ], "form_info":{ "67":{ "field_id":67, "field_name":"username", "label":"用户名", "type":"text", "default_value":"", "is_disabled":20, "model_field_id":67 }, ... 此处省略 }, "field_option":{ "71":{ "10":"是", "20":"否" }, ... 此处省略 }, "relation_info":[ full_options: {}, linkage: {}, options: {} ], "form_rules":{ "username":[ { "required":true, "message":"用户名必填", "trigger":"blur" }, { "min":4, "max":32, "message":"用户名长度为4到32个字符", "trigger":"blur" } ], ... 此处省略 }, "model_id":8 }, "msg":"拉取成功", "code":0 } ``` ### 获取列表数据API样例 前端POST数据示例 ``` { "data":{ "page_size":20, //每页显示条数 "order_field":"", //排序字段名 "order_sort":"desc", //排序方式 "keywords":"", //关键字模糊查询 "filter":{ //表单精确查询 "username": '' }, "offset":0, //偏移量起始 "limit":20, //拉取条数 "page":1 //当前页 } } ``` 返回JSON ``` { "data":{ "total":25, //总条数 "per_page":20, //每页显示条数 "current_page":1, //当前页 "last_page":2, //总页数 "data":[ { "id":26, "username":"test025", "password":"", "email":"test025@test.com", "mobile":"18099885535", "is_super":20, "reg_time":"2021-12-24 15:45:44", "reg_ip":"127.0.0.1", "last_login_time":"2021-12-24 15:45:44", "last_login_ip":"", "update_time":"2021-12-24 15:45:44", "token":"", "status":10, "roles":[ ] }, ...此处省略 ] }, "msg":"拉取成功", "code":0 } ```