# table-config **Repository Path**: moderationzw/table-config ## Basic Information - **Project Name**: table-config - **Description**: 基于vue2+element-ui 封装table组件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-20 - **Last Updated**: 2024-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # table表格封装 # 基于vue2 element ui ## 一、最终实现效果  ## 二、文件介绍  ## 三、封装步骤 ### 一、按照以上创建文件 ### 二、index.scss - 需要在main.js 引入 ```javascript $bgc-col: #f4f4f4; //背景色 .layout-content { width: 100%; height: 100%; padding: 6px; background-color: $bgc-col; .content-header { padding: 6px 2px; margin: auto 0; width: 100%; background: #fff; .el-form-item { padding: 6px 0px; margin-bottom: 0; } } .content-toolbar { padding: 8px 0; display: flex; justify-content: space-between; width: 100%; .content-toolbar-left { } .content-toolbar-right { } } } ``` ### 三、封装table - table 组件 ```javascript { }"> {{ newItem.text }} {{ newItem.text }} ``` - table-column 递归组件 ```javascript {}"> {{newItem.text}} {{newItem.text}} ``` - 控制显隐、以及实现表格的拖拽排序 npm i sortablejs --save-dev sortablejs 插件 ```javascript {{item.label}} ``` - 抽离封装可混入的 ```javascript export default { data() { return { loading: false, showSearch: true, // 是否显示搜索框 pageNum: 1, // 页码 pageSize: 10, // 页数 total: 0, //总数 columns: [], // table最终显示 columnsHide: [], // 控制工具栏后,确定需要显示 }; }, watch: { columnsHide: { handler(newV, oldV) { this.columns = this.columnsList.filter((item) => newV.includes(item.prop) ); }, immediate: true, deep: true, }, }, methods: { // 改变列表位置 changeListIdx({ oldIndex, newIndex }) { let obj = this.columns.splice(oldIndex, 1); this.$nextTick(() => { this.columns.splice(newIndex, 0, obj[0]); }); }, // 切换页 onChangeNum(val) { this.pageNum = val; this.getList(); }, // 切换行 onChangeSize(val) { this.pageSize = val; this.pageNum = 1; this.getList(); }, }, }; ``` - 组件使用 ```javascript {columnsHide= val}" @queryTable="goReset" :columnsList="columnsList" @changeListIdx="changeListIdx"> {{dict.label.station_info_status[scope.value]}} ```