【layui】table的switch、edit修改

javascript 复制代码
<title>简单表格数据</title>

<div class="layui-card layadmin-header">
    <div class="layui-breadcrumb" lay-filter="breadcrumb">
        <a>系统设置</a>
        <a>简单表格数据</a>
    </div>
</div>

<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
    <div class="layui-card-header">简单表格数据</div>
    <div class="layui-card-body">
        <script type="text/html" id="toolbarDemo">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
            </div>
        </script>
        <table class="layui-hide" id="test" lay-filter="test"></table>
        <script type="text/html" id="table_status">
            <input type="checkbox" name="kaiguan" value="{{d.id}}" lay-skin="switch" 
            lay-text="开启|禁止" class="layui-input" {{ d.kaiguan === 1 ? 'checked' : '' }} lay-filter="checkbox_status">
        </script> 
    </div>
</div>
</div>
</div>
</div>

<script>
layui.use(['admin','table', 'view', 'form', 'util','setter','layer','ourJs'], function(){
    var $ = layui.$
        ,admin = layui.admin
        ,setter = layui.setter
        ,element = layui.element
        ,form = layui.form
        ,view = layui.view
        ,layer = layui.layer
        ,util = layui.util
        ,table = layui.table
        ,ourJs = layui.ourJs
        ,router = layui.router();

    table.render({
        elem: '#test'
        ,url:'./user.json'
        ,toolbar: '#toolbarDemo'
        ,cols: [[
            {field:'id', width:90, title: 'ID', sort: true, align: 'center'}
            ,{field:'username', title: '用户名', align: 'center'}
            ,{field:'sex', title: '性别', align: 'center'}
            ,{field:'city', title: '城市',edit: 'text', align: 'center'}
            ,{field:'kaiguan', title: '开关', align: 'center',width: 96,templet: '#table_status'}
            ,{field:'experience', title: '积分', align: 'center'}
            ,{field:'classify', title: '职业', align: 'center'}
            ,{field:'wealth', title: '财富', align: 'center'}
        ]]
        ,page: true
    });
  	//监听工具条
  	//===edit的修改
    table.on('edit(test)', function(obj){
        var value = obj.value;
        if(obj.field === 'city'){
            admin.req({
                url: layui.setter.baseUrl + '接口地址'
                ,data: { id: obj.data.id, city: value }
                ,type: 'post'
                ,success: function (res) {
                    if (res.code == 1) {
                        layer.msg(res.msg, {icon: 1,shade:0.5,time: 1000});
                    } else {
                        layer.msg(res.msg, {icon: 5,anim: 6,shade: 0.5,time: 1000});
                    }
                }
            });
        }
    });
    // 监听菜单状态修改
  	//===switch的修改
    form.on('switch(checkbox_status)', function (e) {
        var _this = this, status = e.elem.checked;
        admin.req({
            url: layui.setter.baseUrl + '接口地址'
            ,data: { id: e.value,kaiguan: status?'1':'0' }
            ,type: 'get'
            ,success: function (res) {
                if (res.code == 1 || res.code == 0) {
                    ourJs.status_tong(table, _this, status);
                } else {
                    layer.msg(res.msg, { icon: 5, anim: 6, shade: 0.5, time: 1000 });
                }
            }
        });
    });
    
});
</script>

/static/admin/src/controller/ourJs.js

javascript 复制代码
layui.define(['jquery'],function(exports) {
    var $ = layui.jquery;
    var obj={
        status_tong:function(table,_this,status,type)
        {
            type=type==undefined?'status':type;
            var arr=table.cache;
            var data='';
            for(var i in arr){
                data=arr[i];
            }           
            var td=$(_this).parent().parent();
            var tr=td.parent().attr('data-index');
            if (status === true) {
                status = 1;
            } else {
                status = 0;
            }
            for(var i in data[tr]){
                if(i==type){
                    data[tr][i]=status;
                    break;
                }
            }
            
        }
    }
    exports("ourJs", obj);
});
相关推荐
程序员小张丶7 分钟前
基于React Native开发HarmonyOS 5.0主题应用技术方案
javascript·react native·react.js·主题·harmonyos5.0
Captaincc9 分钟前
Ilya 现身多大毕业演讲:AI 会完成我们能做的一切
前端·ai编程
teeeeeeemo21 分钟前
Vue数据响应式原理解析
前端·javascript·vue.js·笔记·前端框架·vue
Sahas101925 分钟前
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.
前端·javascript·vue.js
Jinxiansen021136 分钟前
Vue 3 实战:【加强版】公司通知推送(WebSocket + token 校验 + 心跳机制)
前端·javascript·vue.js·websocket·typescript
MrSkye36 分钟前
React入门:组件化思想?数据驱动?
前端·react.js·面试
BillKu1 小时前
Java解析前端传来的Unix时间戳
java·前端·unix
@Mr_LiuYang1 小时前
网页版便签应用开发:HTML5本地存储与拖拽交互实践
前端·交互·html5·html5便签应用
JohnYan1 小时前
Bun技术评估 - 05 SQL
javascript·后端·bun
JacksonGao1 小时前
一分钟带你了解React Fiber的工作单元结构!
前端·react.js