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

layui學習筆記(三)關于layui渲染表格因權限判斷需要動態(tài)隱藏列的研究

這篇具有很好參考價值的文章主要介紹了layui學習筆記(三)關于layui渲染表格因權限判斷需要動態(tài)隱藏列的研究。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

學習場景:

TP6+Layuiadmin+apache+mysql+vscode學習研究layui前端技術


問題描述

layui2.76版本,渲染的表格,因同一頁面不同用戶權限判斷,所需要有不同的表格列來支持時,目前無法滿足。

layui文檔中有hide:true這一方法。
單獨使用hide:true隱藏時是沒問題的,但是這是個初始化隱藏,無法進行判斷。
網上的方法都是使用done方法,表格渲染完成后的回調,根據條件判斷,修改表格列的display屬性進行隱藏。
代碼如下:(css和attr兩種方式都試過了

, done: function (res) {
    if (uid != 2) {
        $("[data-field='dispaly']").css('display','none');
    }
}

layui.setter,layui學習筆記,layui,學習,前端

結果:要隱藏的列隱藏了,但是后面會有一個預留出來的空列,表格的最后有個整體空列。

layui官方說會在layui2.8的版本中,增加這個功能。
layui.setter,layui學習筆記,layui,學習,前端

layui.setter,layui學習筆記,layui,學習,前端

相關鏈接:table如何動態(tài)地隱藏/顯示某列? · Issue #I5RUAJ · Layui/layui - Gitee.com


解決方案:

?在layui2.8正式版沒有出來之前,還是得要有解決方案的。

1.使用如下圖layui表格 02自動渲染和03靜態(tài)表格渲染。這里不介紹了。在table里直接做判斷就可以了。

渲染方法詳見layui文檔:table 數據表格文檔 - Layui

layui.setter,layui學習筆記,layui,學習,前端

?2.如果必須用01的方法渲染方式,也就是table.render()方式。

自己琢磨了很久,發(fā)現table.render()中cols參數其實就是個大數組。

那我的方法就是把數組分開,進行權限判斷后再拼接在一起。

HTML部分(僅供學習參考)

<div class="layui-card-body">
            <table id="LAY-app-article-list" lay-filter="LAY-app-article-list"></table>
            <script type="text/html" id="table-content-list">
                <div class="layui-btn-group">
                    {{# if(d.qs == 1){ }}
                    <a class="layui-btn layui-btn-xs" id="{{- d.id }}"><i class="layui-icon layui-icon-chart"></i>簽收情況</a>
                    {{# } }}
                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>編輯</a>
                    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>刪除</a>
                </div>
            </script>
            <script type="text/html" id="switchSort">
                <input type="checkbox" name="sort" value="{{d.sort}}" lay-skin="switch" lay-text=" 是 | 否 " lay-filter="switch_filter" {{ d.sort ==1 ? 'checked' : 0 }}>
            </script>
            <script type="text/html" id="switchDisplay">
                {{# if(d.image == ''){ }}
                <span style="color:#999;">無圖</span>
                {{# }else{ }}
                <input type="checkbox" name="display" value="{{d.display}}" lay-skin="switch" lay-text=" 顯 | 隱 " lay-filter="switch_filter" {{ d.display ==1 ? 'checked' : 0 }}>
                {{# } }}
            </script>
            <script type="text/html" id="switchAudit">
                <a class="layui-btn layui-btn-primary layui-btn-xs layui-border-green" lay-event="audit" id="{{- d.id }}">審核信息</a>
            </script>
</div>

layui的js部分(僅供學習參考)

<script>
    layui.use(['admin', 'table', 'form'], function () {
        var $ = layui.$
            , admin = layui.admin
            , setter = layui.setter
            , view = layui.view
            , table = layui.table
            , layer = layui.layer
            , form = layui.form;
        let uid = layui.data(setter.tableName).uid;//獲取用戶ID值
        var cols1 = [//將固定顯示列的數組賦值。
            { type: 'checkbox', fixed: 'left' }
            , { field: 'id', width: 70, title: 'ID', align: 'center' }
            , { field: 'title', title: '分類名稱' }
            , { field: 'cat_name', title: '文章分類', width: 115, align: 'center', unresize: true }
            , { field: 'user_name', title: '發(fā)布人', width: 78, align: 'center', unresize: true }
            , { field: 'add_time', title: '發(fā)布日期', width: 110, align: 'center', unresize: true }
        ]
        if (uid == 1) {//用戶ID判斷
            var cols2 = [//將列的數組賦值。
                { field: 'dispaly', title: '幻燈顯隱', width: 92, align: 'center', templet:'#switchDisplay', unresize: true }
                , { field: 'sort', title: '是否置頂', width: 88, align: 'center', templet:'#switchSort', unresize: true }
                , { title: '審核信息', width: 90, align: 'center', templet:'#switchAudit', unresize: true }                
            ]
        } else {
            var cols2 = [{//將列的數組賦值。
                field: 'sh', title: '審核狀態(tài)', width: 87, align: 'center', templet: function (d) {
                    switch (d.sh) {
                        case 0:
                            return '<b style="color:#0351f0">待審核</b>';
                            break;
                        case 1:
                            return '<b style="color:#43ae02">已審核</b>';
                            break;
                        case 2:
                            return '<b style="color:#d70000">未通過</b>';
                            break;
                    }
                }
            }]
        }
        var cols3 = [//將最后操作列的數組賦值
            { title: '操作', width: 210, align: 'center', fixed: 'right', toolbar: '#table-content-list', unresize: true }
        ]
        //拼接三個數組,使用的是concat
        var sumarr = cols1.concat(cols2).concat(cols3);
        //文章列表
        table.render({
            elem: '#LAY-app-article-list'
            , url: '/ccadmins/Article/article_list_index' //接口
            , cols: [sumarr]  //將拼接好的數組給cols參數
            , where: { uid: uid } //傳遞用戶ID值給后端
            , page: true
            , limit: 15
            , limits: [10, 15, 20, 25, 30, 50, 100]
            , text: {
                none: '暫無相關數據'
            }
        });
        form.render(null, 'app-article-content-list');
    });
</script>

thinkphp6部分(僅供學習參考)

<?php
namespace app\admins\controller;

use think\facade\Db;
use think\facade\Request;
class Article
{
    //列表首頁
    public function article_list_index(){
        $data = Request::instance()->param();
        $where = [];
        $s = trim(Request::instance()->param('searcharticle.s'));
        $cat_id = Request::instance()->param('searcharticle.aritcle_cat_id');
        $user_id = Request::instance()->param('searcharticle.aritcle_user_id');
        $page = $data['page'];
        $limit = $data['limit'];
        $uid = $data['uid'];  //獲取前臺傳遞的用戶ID
        if (!empty($s)) {
            $where[] = array('title', 'like', '%'.$s.'%');
        }
        if (!empty($cat_id)) {
            $where[] = array('cat_id', '=', $cat_id);
        }
        if (!empty($user_id)) {
            $where[] = array('user_id', '=', $user_id);
        }
        if ($uid == 1) {
            $where[] = array('sh','=','1');
            $order = 'sort DESC, add_time DESC';
        }else{
            $where[] = array('user_id','=',$uid);
            $order = 'sh ASC, add_time DESC';
        }
        $where[] =array(['delete','=','0']);
        $count = Db::name('article')->where($where)->count();//文章總條數
        $ret = Db::name('article')
            ->where($where) //查詢條件
            ->order($order) //排序方式
            ->withAttr('add_time',function ($value,$data) {
                return date("Y-m-d",$value);//格式化時間戳日期格式
            })
            ->withAttr('shtime',function ($value,$data) {
                return date("Y-m-d",$value);//格式化時間戳日期格式
            })
            ->page($page,$limit)
            ->select()
            ->toArray();
            foreach ($ret as $key=>$value){//獲取文章分類
                $cate = Db::name('article_category')->where(['cat_id' => $value['cat_id']])->field('cat_name')->find();
                $ret[$key]['cat_name'] =$cate['cat_name'];
            }
            foreach ($ret as $key=>$value){//獲取文章發(fā)布人和文章審核人
                $cate = Db::name('admin')->where(['user_id' => $value['user_id']])->field('user_name')->find();
                $shr = Db::name('admin')->where(['user_id' => $value['shr']])->field('user_name')->find();
                $ret[$key]['user_name'] =$cate['user_name'];
                $ret[$key]['shr'] = $shr['user_name'];
            }
            return json(['code'=>0,'msg'=>'ok','limit'=>$limit,'page'=>$page,'count'=>$count,'data'=>$ret]);
    }
}


layui.setter,layui學習筆記,layui,學習,前端

?layui.setter,layui學習筆記,layui,學習,前端

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

到了這里,關于layui學習筆記(三)關于layui渲染表格因權限判斷需要動態(tài)隱藏列的研究的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • Android 13 關于安卓判斷通知權限

    判斷權限是否開啟: public class NoticePermissionUtil { ? ??? private static final String CHECK_OP_NO_THROW = \\\"checkOpNoThrow\\\"; ??? private static final String OP_POST_NOTIFICATION = \\\"OP_POST_NOTIFICATION\\\"; ? ??? //調用該方法獲取是否開啟通知欄權限 ??? public static boolean isNotifyEnabled(Context context) { ???????

    2023年04月13日
    瀏覽(22)
  • layui框架學習(40:數據表格_主要事件)

    layui框架學習(40:數據表格_主要事件)

    ??Layui數據表格模塊主要通過各類事件響應工具欄操作、單元格編輯或點擊等交互操作,本文學習table數據表格模塊中的主要事件及處理方式。 ?? 頭部工具欄事件 。通過代碼“table.on(‘toolbar(test)’, function(obj))”獲取lay-filter屬性為test的數據表格的頭部工具欄事件,頭部

    2024年02月10日
    瀏覽(42)
  • 【前端】layui前端框架學習筆記

    【前端】layui前端框架學習筆記

    【前端目錄貼】 參考視頻 :LayUI 參考筆記 :https://blog.csdn.net/qq_61313896/category_12432291.html 官網:http://layui.apixx.net/index.html 國人16年開發(fā)的框架,拿來即用,門檻低 … Layui 是一套開源的 Web UI 組件庫,采用自身輕量級模塊化規(guī)范,遵循原生態(tài)的 HTML/CSS/JavaScript 開發(fā)模式,極易上手,

    2024年04月23日
    瀏覽(33)
  • Layui禁止表格部分復選框,layui禁止表格自帶第一列復選框,layui禁止表格部分復選框,layui獲取表格復選框選中數據

    Layui禁止表格部分復選框,layui禁止表格自帶第一列復選框,layui禁止表格部分復選框,layui獲取表格復選框選中數據

    禁止某些行可以勾選操作,及選中后的操作和行操作 執(zhí)行一個table示例 cols 的第一列就是需要重寫的復選框 其中templet: \\\"#toolCheck\\\"的標簽塊 監(jiān)聽全選重寫 獲取復選框選中的值,tempTableList當前列表返回的數組 以上即可! 監(jiān)聽行復選框點擊(如果沒有重寫復選框就可以用) 標簽

    2024年02月09日
    瀏覽(41)
  • layui.table表格重載(表格搜索)

    layui.table表格重載(表格搜索)

    同樣,由于官方文檔比較籠統(tǒng),還是做一些layui的探索。本次內容為layui.table重載。 引入問題: 傳統(tǒng)web更新頁面用頁面跳轉的方式,現多用局部元素重載,提高用戶體驗。Ajax技術就是為了實現此功能而誕生的。layui框架在table模塊中提供了類似的功能,為避免二次渲染,同時

    2024年02月09日
    瀏覽(14)
  • LayUI模板引擎渲染數據

    LayUI模板引擎渲染數據

    接上節(jié)Spring boot項目開發(fā)實戰(zhàn)——(LayUI實現前后端數據交換與定義方法渲染數據) 模板引擎能簡化開發(fā),極大提高效率,小編之前使用過JSP和Thymeleaf,以及python的jinja2,這些是后端的模板引擎,數據的渲染都需要借助服務器,對html重新解析,在特定標識符處填入數據。 No

    2023年04月08日
    瀏覽(28)
  • 關于Redis,你需要學習了解的知識

    關于 Redis ,涵蓋多個方面,從基礎概念到高級應用,以及最佳實踐等。比如以下內容: 認識 Redis: Redis 是什么?它的特點和優(yōu)勢是什么? Redis 的數據結構:字符串、哈希、列表、集合、有序集合、位圖等。 安裝和配置 Redis: 在不同操作系統(tǒng)上安裝 Redis。 配置 Redis 的基本

    2024年02月13日
    瀏覽(20)
  • layui表格合并的方法

    layui表格合并的方法

    摘自文章:?layui表格合并_忘記昵稱了的博客-CSDN博客_layui 表格合并? 摘自文章:layui表格行合并_destiny ~的博客-CSDN博客_layui導出excel合并單元格

    2024年02月13日
    瀏覽(16)
  • layui表格事件分析實例

    在 layui 的表格組件中,區(qū)分表頭事件和行內事件是通過事件類型(toolbar 和 tool)以及 lay-filter 值來實現的。 我們有一個表格,其中有一個工具欄按鈕和操作按鈕。我們將使用 layui 的 table 組件來處理這些事件。 HTML 結構: JavaScript 代碼: 通過在按鈕的 HTML 模板中使用 lay-e

    2024年02月11日
    瀏覽(25)
  • layui 導出 Excel表格的方法

    layui 導出 Excel表格的方法

    如下圖: ?也可設置數據導出按鈕,通過方法導出任意數據,方法如下: 語法: 示例: 該方法也可以不用依賴table的實例,可直接導出任意數據: 1、下載插件放入項目中 ? 2、前端界面設置button按鈕 3、獲取點擊事件 4、table分頁,導出當前頁內容 5、導出全部數據

    2024年02月11日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包