当前位置: 首页 > news >正文

layui前端开发-记录一次弹窗嵌套表格功能的开发

1.碎碎念:

前端是真的难写哇,写的巨烂,毕竟平时很少写前端,很容易忘记。每次写都要抱着官方文档看,特此记录一下layui的使用。
大概就是打开一个弹窗实现一些button然后再渲染一个表格上去。

2.code:


<script type="text/html" id="noticeTablePanelTpl"><div class="layer-box layui-form"><div class="layui-btn-container"><div class="layui-btn layui-btn-sm layui-btn-danger h-mb0" onclick="App.delNoticeTableData()">删除</div></div><table id="noticeTable" lay-filter="noticeTable"></table></div>
</script>
<!-- 缩略图模板 -->
<script type="text/html" id="masterImgTpl"><div class="center"><img class="table-img"  src="{{d.masterImg || '/platform/_ui/static/images/pic.png'}}"></div>
</script>
<script>var App = {};//存储表格的数据App.noticeTableData = [];//弹窗渲染App.showNoticeTablePanel = () => {if (App.noticeTableData.length == 0) {layui.layer.msg("请添加数据");} else {var maxH = $(document).height() > 800 ? ($(document).height()*0.8)+'px' : '600px'var maxW = $(document).width() > 1000 ? ($(document).width()*0.8)+'px' : '800px'var tableHeight = $(document).height() > 800 ? $(document).height() - 370 : 430 ;layui.layer.open({type: 1,title :'上新商品',area:[maxW,maxH],content :$("#noticeTablePanelTpl").html(),btn:['商品推送','关闭'],success:function(){App.showNoticeTable()},yes:function(index){var data = layui.table.checkStatus('noticeTable').data;if(data.length<=0){layui.layer.msg("请选择商品");return false}//上新推送事件。。。。。//删除推送成功的数据App.delNoticeTableDataEvent(data);}})}}//表格渲染,用了模板功能App.showNoticeTable = () => {var tableHeight = $(document).height() > 800 ? $(document).height() - 435 : 430 ;layui.table.render({elem: '#noticeTable',id:'noticeTable',height:tableHeight,data:App.noticeTableData,page: {theme: '#132836',limit:20,layout: ['prev', 'page', 'next','skip','count']},cols:  [[{checkbox: true},{field: 'pId', title: 'ID', width: 80,hide:true,align:'center'},{field: 'masterImg', title: '商品图',templet: '#masterImgTpl',height:80,align:'center'},{field: 'title', title: '商品名称',align:'center'},{field: 'productCode', title: '商品货号',align:'center'},]]});}App.delNoticeTableData = () => {var data = layui.table.checkStatus('noticeTable').data;if(data.length == 0){layui.layer.msg("项目未选择");return false;}layui.layer.msg("确定删除?",{time: 20000, //20s后自动关闭btn: ['删除','取消'],yes:function(index){App.delNoticeTableDataEvent(data);layui.layer.msg('删除成功');}})}App.delNoticeTableDataEvent = (data) => {var param = [];$.each(data,function(index,item){param.push({id:item.pId,})});//删除逻辑for(var i = 0 ; i<App.noticeTableData.length;i++){$.each(param,function(index,item){if(item.id == App.noticeTableData[i].pId){App.noticeTableData.splice(i, 1)}});}App.showNoticeTable();}</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 科研绘图系列:R语言circos图(circos plot)
  • C++那些事之依赖注入
  • Vulnhub靶场DC-7练习
  • 恶补,先验分布,后验分布 ,似然估计
  • 【ELK】简述
  • 【深度学习入门篇 ⑩】Seq2Seq模型:语言翻译
  • 【一次记一句:SQL】从 information_schema.TABLES中查询数据库表中记录数据量
  • win安装mysql
  • windows中使用Jenkins打包,部署vue项目完整操作流程
  • Linux驱动开发-06蜂鸣器和多组GPIO控制
  • pyqt/pyside QTableWidget失去焦点后,选中的行仍高亮的显示
  • uniapp小程序项目解决键盘问题
  • 无人机的发展前景大吗?
  • 23种设计模式之命令模式
  • Python(re模块的具体使用)
  • Apache的基本使用
  • Cookie 在前端中的实践
  • docker python 配置
  • flutter的key在widget list的作用以及必要性
  • Hibernate最全面试题
  • JS实现简单的MVC模式开发小游戏
  • 规范化安全开发 KOA 手脚架
  • 基于组件的设计工作流与界面抽象
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端面试题总结
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 原生Ajax
  • 智能合约开发环境搭建及Hello World合约
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 如何用纯 CSS 创作一个货车 loader
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​io --- 处理流的核心工具​
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # include “ “ 和 # include < >两者的区别
  • ### RabbitMQ五种工作模式:
  • #ifdef 的技巧用法
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $nextTick的使用场景介绍
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • ( 10 )MySQL中的外键
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (面试必看!)锁策略
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)Mysql的优化设置
  • (转)nsfocus-绿盟科技笔试题目
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Framework杂记
  • .Net 代码性能 - (1)
  • .NET 解决重复提交问题
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?