# MoTable **Repository Path**: zhuzhaofeng/MoTable ## Basic Information - **Project Name**: MoTable - **Description**: 使用 JSX 二次封装Element UI Table,大量减少template代码,封装分页器, 全部拆分为可配置参数,持续更新 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-03-27 - **Last Updated**: 2021-11-18 ## Categories & Tags **Categories**: webui **Tags**: None ## README # Mo Table ## 安装所需依赖 ```bash npm install @vue/babel-preset-jsx @vue/babel-helper-vue-jsx-merge-props --save-dev # or cnpm install @vue/babel-preset-jsx @vue/babel-helper-vue-jsx-merge-props --save-dev ``` ## 使用 > 将 MoTable目录复制到项目中 ```javascript import MoTable from 'path/MoTable'; ``` ```html ``` ## Attributes 属性 #### data - 类型:`Array` - 用途: 数据列表 > [注意]如果data 存在 则优先级高于下面 attrs 中的 data - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { tableData: [ { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长1", address: "四川省成都市青羊区人民中路一段16号" } ] }; } }; ``` #### cols - 类型:`Array` - 用途:列配置 > https://element.eleme.cn/#/zh-CN/component/table#table-column-attributes > > [注意] Scoped Slot 通过 scopedSlots 属性指定 > > 支持上述链接中的所有属性 - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { cols: [ { align: "center", type: "index" }, { align: "center", type: "selection" }, { prop: "date", label: "日期", width: "180" }, { prop: "name", label: "姓名", width: "180" }, { prop: "address", label: "地址" }, { label: "操作", align: "center", width: "140", scopedSlots: { default: scoped => { return ( this.handlerEditor(scoped.row) } type="primary" plain size="small" icon="el-icon-edit" > Editor ); } } } ] }; }, methods: { handlerEditor(row) { console.log(row) } } }; ``` #### attrs - 类型:`Object` - 用途: Table Attributes > https://element.eleme.cn/#/zh-CN/component/table#table-attributes > > 支持上述链接中的所有属性 > > [注意] 如果上面data 存在 则优先级高于arrts中的data,会被上面data覆盖 - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { tableAttrs: { stripe: true, border: true, "show-header": true, data: [ { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" }, { date: "2020-03-27", name: "老村长", address: "四川省成都市青羊区人民中路一段16号" } ] } }; } }; ``` #### events - 类型:`Object` - 用途:table events 事件 > https://element.eleme.cn/#/zh-CN/component/table#table-events > > 支持上述链接中的所有属性 > > 参数同上述链接中的参数相同 - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { tableEvents: { "row-click": (row, column, event) => { console.log(row); console.log(column); console.log(event); } } }; } }; ``` #### paging - 类型:`Object` - 用途:分页器参数 不传则不显示 > https://element.eleme.cn/#/zh-CN/component/pagination#attributes > > 支持上面链接中的所有参数,带中划线参数转为驼峰命名page-count => pageCount > > 除了上面参数之外添加新的参数:[align] 对齐方式 'left', 'center', 'right' - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { pagingAttrs: { currentPage: 1, pageSizes: [10, 20, 30, 40, 50], pageSize: 0, layout: "total, sizes, prev, pager, next, jumper", total: 4 } }; } }; ``` #### pagingEvents - 类型:`Object` - 用途:分页器事件 > ttps://element.eleme.cn/#/zh-CN/component/pagination#events > > 支持上面链接中的所有事件,带中划线事件名转为驼峰命名 current-change => currentChange > - example ```html ``` ```javascript export default { name: "App", components: { MoTable }, data() { return { pagingEvents: { sizeChange: () => {}, currentChange: () => {} } }; } }; ```