layui:table中使用element,表格單元格中使用進度條

場景:列表中添加進度條;需要在table中嵌入element。table中有一個單元格是展示人員血量的值,這裏向用可以變顏色的進度條來展示使其更加形象一些。

效果圖

上代碼:

需要注意的幾個地方以下代碼中都已經標記了“***重點***”。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../static/lib/layui/css/layui.css"  media="all">
    <!-- 注意:如果你直接複製所有代碼到本地,上述css路徑需要改成你本地的 -->
    <style>
    .memberstatus-span-left {
        font-size: 25px;
    }
    .memberstatus-span-right {
        font-size: 25px;
    }
</style>
</head>
<body>

<table class="layui-hide" id="test" lay-filter="test"></table>

<script src="../static/lib/layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接複製所有代碼到本地,上述js路徑需要改成你本地的 -->

<script>
	//***重點***:需要把使用到的layui組件table和element都引用進來
    layui.use([ 'table','element'], function(){
        var table = layui.table;
        var element = layui.element;

        table.render({
            elem: '#test'
            ,url:'memberStatus?search=1'    
            ,cellMinWidth: 80 //全局定義常規單元格的最小寬度,layui 2.2.1 新增
            //,data: []   //也可以不用url改爲使用data直接傳數據
            // ,autoSort: false //取消自動排序
            ,cols: [
                [
                // {field:'id', title: 'ID', align: 'center',sort: true}
                ,{field:'memberName', title: '人員名稱', align: 'center',sort: true} 
				//***重點***:將隊伍裝換爲layui圖表,根據隊伍值設置圖標顏色
                ,{field:'team', title: '隊伍', align: 'center', sort: true,templet: function(d){
                    if(parseInt(d.team) =='1'){
                        return '<i class="layui-icon layui-icon-group" style="font-size: 30px; color: #FF5722;"></i>  '
                    }else if(parseInt(d.team)=='2') {
                        return '<i class="layui-icon layui-icon-group" style="font-size: 30px; color: #01AAED;"></i>  '
                    }else{
                        return d.team
                    }
                }} //單元格內容水平居中
                ,{field:'deviceCode', title: '裝備編號', align: 'center',sort: true} 
                // ***重點***:通過血量的值拼接element組件中的進度條,進度條的樣式可以去layui官網找
                ,{field:'hp', title: '血量', align: 'center',sort: true,templet: function(d){
                        //***重點***:判斷顏色
                        var ys = '';
                        if(30<d.hp && d.hp<100){
                            ys='layui-bg-orange'
                        }else if(0<d.hp && d.hp<=30){
                            ys='layui-bg-red'
                        }
						//***重點***:拼接進度條
                        return '<div class="layui-progress layui-progress-big" lay-showpercent="true"><div class="layui-progress-bar '+ys+'" lay-percent="'+d.hp+'%"></div></div><br>'
                    }}
                ,{field:'hitedNumber', title: '中彈數', align: 'center',sort: true}
                ,{field:'hitNumber', title: '擊中數', align: 'center',sort: true}
                ,{field:'rePlenishBullet', title: '補彈次數', align: 'center',sort: true}
                ,{field:'reviveNum', title: '復活次數', align: 'center',sort: true}

            ]
            ]
			//***重點***:***重點***:***重點***:如果沒有這一步,進度條是不會生效的。應爲table渲染之後沒有渲染element
            ,done:function (res,currentCount) {
				//***重點***:table渲染完成後渲染element進度條
                element.render()
            }
        });


    });

</script>

</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章