elementUI vxe-table结合使用(通用表格)

App.vue 样式
.my-main{margin: 20px;
}
.dfc{display: flex;flex-direction: column;
}
.dfr{display: flex;flex-direction: row;
}
.f1{flex: 1;
}
.fl{float: left;
}
.fr{float: right;
}
.baseColor{background-color:RGB(48,65,86);color:#fff;
}
父组件
<!--  -->
<template><div class='f1 dfc my-main'><TableTemplate:cols="columns":tData="tableData":pager="total"@pageTrigger="pageChange":search="'fname'":operation="'add,export,seq,del,pager'"@searchTrigger="search"@operationTrigger="operation"></TableTemplate></div>
</template><script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import TableTemplate from '@/views/dashboard/tableTemplate'
export default {
//import引入的组件需要注入到对象中才能使用
components: {TableTemplate
},
data() {//这里存放数据return {// 表头columns: [{l: '公司名称',p: 'fname',w: null},{l: '编号',p: 'number',w: null},{l: '性别',p: 'sex',w: null},],// 表数据tableData: [{fname: 'feng',number: '001',sex: 0},{fname: 'xiao',number: '123',sex: 1},{fname: 'llll',number: '244',sex: 1}],// 总条数total: null,};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {init(){this.total = this.tableData.length},// 搜索search(form) {console.log('搜索', form)},// 表格操作operation(data) {console.log('表格操作', data)},// 分页pageChange(data){console.log("切换页数据", data);// 根据 page size 请求数据}},
//生命周期 - 创建完成(可以访问当前this实例)
created() {this.init()},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
}
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css类</style>
子组件–通用表格
<!--  -->
<template><div class='f1 dfc'><div class="dfr" style="    margin-bottom: 20px;"><div class="fl f1 dfr"><div style="display: inline-flex;" v-if="isIncluded('fname')"><span class="title">公司名称:</span><el-inputplaceholder="请输入内容"suffix-icon="el-icon-search"v-model="searchForm.fname"></el-input></div><div style="display: inline-flex;" v-if="isIncluded('number')"><span class="title">编号:</span><el-inputplaceholder="请输入内容"suffix-icon="el-icon-search"v-model="searchForm.number"></el-input></div><el-buttonv-if="search.length !== 0"@click="handleSearch"class="baseColor">搜索</el-button></div><div class="fr"><el-button type="success" icon="el-icon-plus"v-if="isIncluded('add')"@click="add"></el-button><el-button type="primary" v-if="isIncluded('export')"class="baseColor"@click="openExportEvent">导出</el-button><el-button type="primary" v-if="isIncluded('import')"class="baseColor"@click="importDataEvent">导入</el-button></div></div><div class="f1 dfc"><vxe-tableborderstripealign="center"ref="xTable"class="f1"highlight-hover-row:loading="loading":data="tData":export-config="{}"><vxe-columnv-if="isIncluded('seq')"type="seq"title="序号"width="60"/><template v-for="(col, index) in cols"><vxe-columnv-if="col.p === 'sex'":key="index":field="col.p":width="col.w":title="col.l":formatter="formatterSex"/><vxe-columnv-else:key="index":field="col.p":width="col.w":title="col.l"/></template><vxe-table-column title="操作" width="150px" align="center" fixed="right" v-if="!isIncluded('noOperation')"><template #default="{ row }"><el-button type="primary" icon="el-icon-edit"v-if="isIncluded('edit')"@click="handleOption(row, 'edit')"></el-button><el-button type="danger" icon="el-icon-delete"v-if="isIncluded('del')"@click="handleOption(row, 'del')"></el-button><el-button type="success" icon="el-icon-view"v-if="isIncluded('check')"@click="handleOption(row, 'check')"></el-button><el-button type="success" icon="el-icon-setting"v-if="isIncluded('setting')"@click="handleOption(row, 'setting')"></el-button></template></vxe-table-column></vxe-table><!-- 分页 --><vxe-pagerperfectv-if="isIncluded('pager')":current-page="tablePage.currentPage":page-size="tablePage.pageSize":page-sizes="tablePage.pageSizes":total="tablePage.totalResult"@page-change="pageChange":layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Total']"></vxe-pager></div></div>
</template><script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';export default {
//import引入的组件需要注入到对象中才能使用
props:{// 接收父组件传过来的搜索的字段search: {type: String,default: "",},// 接收父组件传过来的操作的按钮operation: {type: String,default: "",},// 表头cols: Array,// 表数据tData: Array,// 分页总数pager: Number,
},
components: {},
data() {//这里存放数据return {searchForm:{fname: null,number: null,},// 分页tablePage: {currentPage: 1,pageSize: 2,pageSizes: [2, 4, 6, 8],totalResult: this.pager},loading: false,sexList: [{label: "男",value: 1,},{label: "女",value: 0,}],};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {init(){this.tablePage.totalResult = tData},// 根据页切换pageChange(val){this.tablePage.currentPage = val.currentPagelet page = val.currentPagelet limit = val.pageSizethis.$emit("pageTrigger", { page: val, form: this.searchForm });},// 判断显示isIncluded(str) {const searchArr = this.search.split(",");const operationArr = this.operation.split(",");if (searchArr.includes(str)) return true;if (operationArr.includes(str)) return true;return false;},// 点击搜索返回搜索内容给父组件handleSearch() {this.$emit("searchTrigger", this.searchForm);},// 点击表格中操作按钮handleOption(row, action) {this.$emit("operationTrigger", { row, action });},// 新建add(){console.log('add');},// 导出openExportEvent(){this.$refs.xTable.openExport()},// 导入importDataEvent () {this.$refs.xTable.importData()},formatterSex({ cellValue }) {let item = this.sexList.find((item) => item.value === cellValue);return item ? item.label : "";},},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
}
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css类
span.title{margin-left: 15px;line-height: 40px;
}
.el-input{flex: 1;
}
.el-button{float: left;border: none;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue.config.js 配置

// 去除 console const UglifyJsPlugin require(uglifyjs-webpack-plugin) // const path require(path); 别名配置 // 图形化打包详情 const BundleAnalyzer require(webpack-bundle-analyzer).BundleAnalyzerPluginmodule.exports {publicPath: process.env.NODE_ENV p…

mysql主从维护_mysql主从日常管理维护

mysql主从日常管理维护1)查看从服务器状态为了防止复制过程中出现故障从而导致复制进程停止&#xff0c;我们需要经常检查从服务器的复制状态。一般使用show slave status命令来检查。例如&#xff1a;mysql> show slave status \G;*************************** 1. row ****…

JLBH示例2 –协调遗漏的会计处理

在这篇文章中&#xff1a; 在运行JLBH时考虑或不考虑协调遗漏 一个示例&#xff0c;以数字说明协同遗漏的效果 关于流量控制的讨论 这是我用来描述如果不考虑协调遗漏而进行测量的情况下的示例&#xff1a; 假设您正在等待火车&#xff0c;但由于前面的火车晚了&#xff0…

基于windows平台的命令行软件安装工具Chocolatey的安装

本文介绍Chocolatey的安装和使用 Chocolatey 这是基于.NET Framework 4以上的windows安装软件的命令行工具安装 第一步&#xff0c;打开你的powershell.exe&#xff0c;使用管理员方式运行 第二步&#xff0c;运行命令 Get-ExecutionPolicy如果返回 Restricted &#xff0c;那么…

vue项目 乐橙云 轻应用直播SDK imouplayer.js

官网案例&#xff1a;https://open.imoulife.com/book/light/sdk.html 文档&#xff1a; https://open.imou.com/developDoc/31 1&#xff0c;下载 对应的资源 https://open.imoulife.com/book/readme/upload.html 2&#xff0c;引入资源 2.1 把下载的资源(static&#xff0c…

windows 开启mysql日志记录_windows下mysql日志开启与查询

修改 my.ini文件加入以下语句(在没有设置的前提下)log-errord:/log/mysql/mysql_log_err.txtlogd:/log/mysql/mysql_log.txt#log-bind:/log/mysql/mysql_log_binlog-slow-queries d:/log/mysql/mysql_log_slow.txt使用以下命令查看是否启用了日志mysql>show variables like …

jmx 复用 jmx_JMX:一些入门说明

jmx 复用 jmxJMX&#xff08;Java管理扩展&#xff09;是一种J2SE技术&#xff0c;可以管理和监视Java应用程序。 基本思想是实现一组管理对象&#xff0c;并将实现注册到平台服务器&#xff0c;在平台服务器上&#xff0c;可以使用一组连接器或适配器从本地或远程调用这些实现…

内置函数——filter和map

filter filter()函数接收一个函数 f 和一个list&#xff0c;这个函数 f 的作用是对每个元素进行判断&#xff0c;返回 True或 False &#xff0c; filter()根据判断结果自动过滤掉不符合条件的元素&#xff0c;返回由符合条件元素组成的新list。 它的到的结果是一个迭代器 例…

git 上下载的项目在本地安装依赖时报错 Could not resolve dependency

安装依赖时报错&#xff1a;无法安装依赖 看报错里面的提示&#xff1a;this command with --force, or --legacy-peer-deps –force 会无视冲突&#xff0c;并强制获取远端npm库资源&#xff0c;即使本地有资源也会覆盖掉&#xff1b;–legacy-peer-deps&#xff1a;安装时…

JavaFX技巧23:节省内存! 属性的阴影场

Java 8中引入的属性和属性绑定是非常有用的编程概念。 当您开发用户界面时&#xff0c;它们特别有用。 实际上&#xff0c;它们是如此有用&#xff0c;以至于开发人员成为所有事物都应该是属性而不是原始属性的想法的受害者。 不幸的是&#xff0c;他们很容易忘记&#xff0c;诸…

mysql udb_MySQL InnoDB的一些参数说明

参考:http://addls.com/mysql-innodb-%E4%B9%8B-ibdata1-%E7%98%A6%E8%BA%AB%E5%A4%A7%E6%B3%95.html# 备份数据库&#xff1a;/usr/local/mysql/bin/mysqldump -uDBuser -pPassword –quick –force –routines –add-drop-database –all-databases –add-drop-table > /d…

python_fullstack基础(十一)-常用模块

python常用模块 re模块 一、正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1、字符组 &#xff1a; [字符组] 在同一个位置可能出现的各种字符组成了一个字符组&#xff0c;在正则表达式中用[]表示 字符分为很多类&#xff0c;比如数字、字母、标点等等。 假如你现在…

npm 安装依赖遇到的问题

npm npm的服务器位于国外可能会影响安装 cnpm 淘宝团队做的国内镜像 // 安装 cnpm npm install cnpm -g --registryhttps://registry.npm.taobao.org // 查看版本 cnpm -v // 查 npm 的源 npm config get registry一、cnpm -v 在 cmd 中能识别&#xff0c;但是 VsCode 无法识别…

使用RichTextBox控件实现系统剪切板功能

复制&#xff1a; 1 private void CopytoolStripMenuItem_Click(object sender, EventArgs e) 2 {//复制 3 try 4 { 5 this.Cursor Cursors.WaitCursor; 6 string strTemp richTextBoxSendInfo.SelectedT…

maven 父maven_Maven的鸟瞰图

maven 父maven我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目。 然后&#xff0c;Maven查看我们项目的配置文件&#xff08;亲切地称为POM&#xff09;&#xff0c;神奇地找出要执行的操作&#xff0c;并且&#xff0c;嘿&#xff0c;…

vue animation css实现左右折叠面板

<div class"left" :class"boxshow ? a1: a2" id"showBox">这里是折叠面板的内容 </div> <i id"left" class"el-icon-d-arrow-left" click"boxshow !boxshow" :class"boxshow ? a3: a4&quo…

mysql断网_断网的情况上如何访问本机的mysql

断网的情况下怎么访问本机的mysql我发现把网络断掉后mysql就不能访问了。使用phpmyadmin(http://localhost/phpmyadmin/index.php?)访问&#xff0c;输入用户名和密码后点击登陆&#xff0c;就会出现“#2002 Cannot log in to the MySQL server”错误。使用命令行登陆&#xf…

Py IO model

事件驱动模型 上节的问题&#xff1a; 协程&#xff1a;遇到IO操作就切换。 但什么时候切回去呢&#xff1f;怎么确定IO操作完了&#xff1f; 很多程序员可能会考虑使用“线程池”或“连接池”。“线程池”旨在减少创建和销毁线程的频率&#xff0c;其维持一定合理数量的线程&a…

Fiddler 扒取微信小程序的图片

安装 Fiddler http://www.downza.cn/soft/234727.html Tools-options配置 如果无法抓取到PC微信小程序 解决办法&#xff1a; 打开小程序&#xff0c;任务管理器找到小程序所在位置&#xff0c;删除文件内容 一般路径为\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime 删除…

JLBH – Java延迟基准线束介绍

在这篇文章中&#xff1a; 什么是JLBH 我们为什么写JLBH JMH和JLBH之间的区别 快速入门指南 什么是JLBH&#xff1f; JLBH是可用于测量Java程序中的延迟的工具。 它具有以下功能&#xff1a; 旨在运行比微型基准测试更大的代码。 适用于使用异步活动&#xff08;如生产者…