使用layui table达到穿梭框效果

编程入门 行业动态 更新时间:2024-10-25 23:34:53

使用layui table达到穿梭框<a href=https://www.elefans.com/category/jswz/34/1770448.html style=效果"/>

使用layui table达到穿梭框效果

由于自己文章写得transfer过于操蛋,现在直接使用两个table来实现transfer的功能,与layui的穿梭框不同的是,里面的值虽然也是一一对应的,但是右侧框是可以显示左侧框没有的值。且也不会因为左侧框的值变化右侧框也跟着变化

<script th:inline="javascript">// const index = parent.layer.getFrameIndex(window.name);/*<![CDATA[*/layui.use(['layer', 'form', 'upload', 'table'], function () {let layer = layui.layer,form = layui.form,table = layui.table,$ = layui.$;layui.config({base: '/'}).extend({authtree: 'authtree/authtree',});//----------------------------------------//穿梭框初始化let dataList, dataListLeft;// 执行一个 table实例let id = $("input[name='id']").val();$.ajax({type: "post",url: '/customer/list4Trans',// 数据接口async: false,cache: false,data: {id: id}, success: function (data) {dataList = data.data;table.render({elem: '#dataList',data: dataList, title: '记录表', height: 320 // 开启分页, method: 'post', // 默认get方式,limit: 40, cols: [[// 表头{type: 'checkbox', fixed: 'index_id'}, {field: 'title', title: '样品', width: 300, align: 'center', sort: true}]]});}});$.ajax({type: "post",// contentType: "application/json;charset=UTF-8",url: '/share/list4Trans',// 数据接口async: false,cache: false,data: {id: id}, success: function (data) {dataListLeft = deleteRepeat(data.data)table.render({elem: '#dataListLeft', data: dataListLeft// 数据接口, title: '记录表',limit: data.count, height: 320 // 开启分页, cols: [[// 表头{type: 'checkbox', fixed: 'index_id'}, {field: 'title', title: '样品', width: 300, align: 'center', sort: true}]]});}});function deleteRepeat(dataLeft) {let dataRight = table.cache['dataList'];let flag = false;for (let k of dataRight) {//遍历左边框,并删除选中数据for (let h = dataLeft.length - 1; h >= 0; h--) {if (k.value === dataLeft[h].value) {dataLeft.splice(h--, 1);flag = true;}}}return dataLeft;}//重新渲染左侧table的数据function tableReloadLeft(data) {table.cache['dataListLeft'] = data;table.reload('dataListLeft', {data: data})}//重新渲染右侧table的数据function tableReloadRight(data) {table.cache['dataList'] = data;if (data.length===1){$("#css").show();}else {$("#css").hide();}table.reload('dataList', {data: data});}//删除右边框选中的数据$("#remove").click(function () {let checkData = table.checkStatus('dataList');let i = 0;if (checkData.data.length > 0) {// console.log(checkData.data)let flag;for (let k of checkData.data) {//遍历左边框,并删除选中数据for (let h = dataList.length - 1; h >= 0; h--) {if (k.value === dataList[h].value) {dataList.splice(h--, 1);flag = true;}}}//判断表格是否变化if (flag === true) {tableReloadRight(dataList);getDataLeft();table.reload('dataListLeft', {data: table.cache['dataListLeft']});}}});//将左侧选中的数据添加到右侧table$("#add").click(function () {let checkData = table.checkStatus('dataListLeft');let i = 0;if (checkData.data.length > 0) {let flag;for (let k of checkData.data) {//遍历左边框,并删除选中数据flag = true;for (let h = dataListLeft.length - 1; h >= 0; h--) {if (k.value === dataListLeft[h].value) {dataListLeft.splice(h--, 1);}}//遍历右边框,添加选中数据for (let h = dataList.length - 1; h >= 0; h--) {if (k.value === dataList[h].value) {flag = false;}}if (flag === true) {k.LAY_TABLE_INDEX = dataList.length;dataList.push(k);}}//判断表格是否变化if (flag) {tableReloadLeft(dataListLeft);console.log(dataList);tableReloadRight(dataList);}}});//当筛选条件变化时。重新载入左侧table数据function getDataLeft() {let patternCateId = $("#patternCateId").val();$.ajax({type: "post",// contentType: "application/json;charset=UTF-8",url: '/share/list4Trans',// 数据接口async: false,cache: false,data: {patternCateId: patternCateId}, success: function (data) {table.cache['dataListLeft'] = deleteRepeat(data.data);dataListLeft = deleteRepeat(data.data);}});}form.on('select(patternCate)', function () {getDataLeft();table.reload('dataListLeft', {data: table.cache['dataListLeft']});});//获取输入框的值});/*]]>*/
</script>

更多推荐

使用layui table达到穿梭框效果

本文发布于:2024-02-11 23:40:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684347.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:效果   layui   table

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!