国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端】Layui動態(tài)數(shù)據(jù)表格拖動排序

這篇具有很好參考價值的文章主要介紹了【前端】Layui動態(tài)數(shù)據(jù)表格拖動排序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目的:使用Layui的數(shù)據(jù)表格,拖動行進行排序。

使用插件:layui-soul-table 和 Layui

1.layui-soul-table文檔:https://soultable.yelog.org/#/zh-CN/component/start/install

2.layui文檔:Layui table模塊 | 數(shù)據(jù)表格 | datatable - 在線演示

結(jié)合Layui并參看layui-soul-table官方教程,寫的比較詳細頁比較簡單。

實現(xiàn)效果:可以拖動行進行排序,可以搜索
【前端】Layui動態(tài)數(shù)據(jù)表格拖動排序

一、下載layui-soul-table

把下載好的文件放到項目中,比如說放到public文件夾下的/ext/soulTable/下,下載的內(nèi)容很多,不需要全部都放到目錄下,只需要把用到拷貝進來就行,如下圖

【前端】Layui動態(tài)數(shù)據(jù)表格拖動排序

二、使用

因為需求是實現(xiàn)拖動排序,所以只用到了soulTable.slim.js

layui.config({
    base: '/ext/',   // 第三方模塊所在目錄
    version: 'v1.6.4' // 插件版本號
}).extend({                         
    soulTable: 'soulTable/soulTable.slim'    // 模塊
});

三、Layui實際使用

1、html代碼

有幾個需要注意的地方:

1、搜索按鈕的lay-filter要一致

2、lay-event對應(yīng)下面的toolbar

  

<div class="layui-form layui-card-header layuiadmin-card-header-auto">
    <!-- 搜索 start -->
    <form  class="layui-form layui-form-pane"  style="float:left">
        <div class="layui-form-item">
            <label class="layui-form-label">視頻名稱</label>
            <div class="layui-input-inline">
                <input type="text" name="filename" placeholder="視頻名稱" autocomplete="off" class="layui-input" value="">
            </div>
            <button class="layui-btn layui-btn-normal" lay-submit lay-filter="demo-table-search">
                <i class="fa fa-search" aria-hidden="true"></i> 搜 索
            </button>
        </div>
    </form>
    <!-- 搜索 end -->
    
</div>
 
<div class="layui-card-body" style="width: 96%; margin: 0 auto; overflow-x: auto;">
    <table id="myTable" lay-filter="test" id="test"></table>
    <!-- <script type="text/html" id="myBar"> </script> -->
    
    <script type="text/html" id="preview">
        <button type="button" class="layui-btn layui-btn-sm" lay-event="preview"> <i class="fa fa-eye" aria-hidden="true"></i> 預(yù)覽</button>
    </script>
    <script type="text/html" id="barDemo">
          <a class="layui-btn layui-btn-sm layui-btn-normal" lay-event="edit"><i class="fa fa-edit" aria-hidden="true"></i> 修改 </a>
            <a class="layui-btn layui-btn-sm layui-btn-primary" lay-event="del"> <i class="fa fa-trash" aria-hidden="true"></i> 刪除</a>
    </script>
</div>

2、JS代碼

1、引入soulTable,注意路徑,我存放的路徑是在/public/ext/soulTable/2、extend引入的模塊可以根據(jù)自己需求添加

3、table.render()下的id和elem要和上面HTML中的table的id一致

4、rowDrag下的done里面的是拖動時觸發(fā)的事件,可以從這里獲取拖動行的數(shù)據(jù)信息,并在這里更新數(shù)據(jù)庫

5、cols里的就是列名,列名對應(yīng)上就行

6、done下的代碼是刷新拖動之后的表格的,勿刪

7、搜索提交:其實就是數(shù)據(jù)表格的重載,可以參考Layui官網(wǎng),我這里為了后端接收方便,所有和Layui官網(wǎng)的示例有些出入。注意lay-filter監(jiān)聽要一致,其中table.reload下的myTable也要和上面HTML的一致,用于標識重載的表格

8、監(jiān)聽行工具事件:根據(jù)event的不同,處理不同的業(yè)務(wù)
layui.config({
    base: '/ext/',   // 第三方模塊所在目錄
    version: 'v1.6.4' // 插件版本號
}).extend({                         
    soulTable: 'soulTable/soulTable.slim'    // 模塊
});
 
layui.use(['element', 'layer','form','table','soulTable'], function(){
    var $ = layui.jquery
    ,layer = layui.layer
    ,element = layui.element
    ,form = layui.form
    ,table = layui.table
    ,soulTable = layui.soulTable;
 
    var myTable = table.render({
        id: 'myTable'
        ,elem: '#myTable'
        ,url: 'videoquery'
        // ,toolbar: '#myBar'
        ,height: 500
        ,rowDrag: {done: function(obj) {
            // 完成時(松開時)觸發(fā)
            // 如果拖動前和拖動后無變化,則不會觸發(fā)此方法
            // console.log(obj.row) // 當前行數(shù)據(jù)
            // console.log(obj.cache) // 改動后全表數(shù)據(jù)
            // console.log(obj.oldIndex) // 原來的數(shù)據(jù)索引
            // console.log(obj.newIndex) // 改動后數(shù)據(jù)索引
 
            var row_id = obj.row.id      // 當前id
            var row_sort = obj.newIndex+1         // 拖動后的排序
 
            // console.log(row_id)
            // console.log(row_sort)
 
            $.ajax({
                url:'/teacher/video/upsort',
                type:'POST',
                dataType:'JSON',
                data:{id:row_id,sort:row_sort},
                success:function (res) {
                    console.log(res)
                    layer.msg(res.message, {
                      time: 2000 //2秒關(guān)閉(如果不配置,默認是3秒)
                    }, function(){
                      //do something
                        location.reload()
                    });
                }
            })
        }}
        ,totalRow: true
        ,cols: [[
            {field: 'filename', title: '視頻名稱', width: '20%', fixed: 'left'},
            {field: 'kejian', title: '關(guān)聯(lián)課件', width: '30%', height:'auto', fixed: 'left'},
            {fixed: 'right', title:'預(yù)覽', toolbar: '#preview', width:'20%'},
            {fixed: 'right', title:'操作', toolbar: '#barDemo', width:'30%'}
        ]]
        ,page: true
        ,done: function () {
            soulTable.render(this)
        }
    });
 
    // 搜索提交
  form.on('submit(demo-table-search)', function(data){
    var field = data.field; // 獲得表單字段
    // console.log(field)
    // 執(zhí)行搜索重載
    table.reload('myTable', {    
      page: {
        curr: 1 // 重新從第 1 頁開始
      },
      where: field // 搜索的字段
    });
    return false; // 阻止默認 form 跳轉(zhuǎn)
  });
 
    //監(jiān)聽行工具事件
    table.on('tool(test)', function(obj){
        var data = obj.data;
        //console.log(obj)
        if(obj.event === 'preview'){
            // console.log(data)
            // 預(yù)覽
              window.open(data.path);
        }else if(obj.event === 'del'){
            // console.log(data.id)
            layer.confirm('確定刪除嗎?', {icon: 3, title:'提示'}, function(index){
                  $.ajax({    
                    url:"del",
                    type:"POST",
                    dataType:"JSON",
                    data:{id:data.id},
                    success:function (res) {
                        if (res.code == 200) {
                            layer.msg(res.message);
                            obj.del();
                        }else{
                            layer.msg(res.message);
                            return false;
                        }
                    }
                })
              });
        } else if(obj.event === 'edit'){
            // console.log(data.id)
          window.location.href='edit.html?id='+data.id;
        }
    });
 
});  

3、PHP后臺代碼

主要是添加了搜索,返回的是JSON數(shù)據(jù)

public function videoquery()
 {
    $map = array();
    $page = input('page');  //頁碼
    $limit = input('limit');  //分頁
 
    $filename = trim(input('param.filename'));
    if (!empty($filename)) {
        $map['video.filename'] = array('like',"%$filename%");
    }
    
    // 列表
    $data= model('Video')->getList($this->tid,$map,$page,$limit);
    // 個數(shù)
    $count = model('Kejian')->gerKejianCount($this->tid,$map);
 
    $result = array(
       'code'=>0,
       'msg'=>'',
       'count'=>$count,
       'data'=> $data
    );
    return $result;
 }

?文章來源地址http://www.zghlxwxcb.cn/news/detail-695034.html

到了這里,關(guān)于【前端】Layui動態(tài)數(shù)據(jù)表格拖動排序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包