動態

詳情 返回 返回

Fastadmin後台列表中給某列加一個彈窗展示 - 動態 詳情

效果

用Fastadmin做管理後台的時候,有時候需要在後台列表中某列數據加一個明細彈窗, 點擊該列數據後在彈窗中展示關聯明細信息, 效果如下圖所示:
設備分組列表中,想在彈窗中展示對應分組關聯的設備列表

image.png
點擊關聯設備列表出現下面的彈窗
image.png

實現上面效果的代碼

1. 設備分組group.js中做如下修改


//打開device/group/index頁面的時候fastaadmin會自動根據地址欄對應的action
//也就是index加載下面index中編輯的js到對應頁面上 
index:function() {
//給設備列表增加點擊展示彈窗事件,
$(document).on("click", ".lists_index_simple", function (e) {
    url = $(this).attr('data-href');
    Fast.api.open(url, "設備列表", { area: ['80%', '80%'] })
});

var table = $("#table");
table.bootstrapTable({
  url: $.fn.bootstrapTable.defaults.extend.index_url,
  pk: 'id',
  columns:[[
        // {checkbox: true},
    {field: 'id', title: __('Id')},
    {field: 'group_name', title: __('Group_name'), operate: 'LIKE'},
    {
        field: 'base_detail', 
        title: __('設備列表'), 
        operate: false, 
        formatter: function (value, row, index) {
            var html = '<span class="lists_index_simple text-info"  style="cursor: pointer"  data-href="device/lists/index_simple?group_id=' + row.id + '">設備列表</span>';
            return html;
        }
    },
      ]]    
});
}

2. 編輯device/lists控制器中index_simple方法

app\admin\controller\device\Lists.php

//設備分組中的設備列表
public function index_simple()
{
    $group_id = $this->request->param('group_id');
    //按照fastadmin的構建查詢格式, 構建查詢某個分組下的設備
    $this->request->get([
        'filter' => json_encode(['group_id' => $group_id]),
        'op' => json_encode(['group_id' => '='])
    ]);
    $this->request->get(['is_all_type' => 1]);
    return $this->index();
}

3. 參考lists/index.html創建index_simple.html頁面視圖文件

由於設備分組那裏展示設備列表不涉及添加,編輯操作只做展示,所以要把操作相關按鈕都隱藏起來

4. 在lists.js中構建渲染index_simple.html要加載的js

在lists.js文件中(也就是渲染device/Lists控制器對應方法頁面時候fastadmin自己加載js), 增加渲染index_simple對應的js

image.png

// 簡單設備列表
        index_simple: function () {
        // 初始化表格參數配置
        Table.api.init({
            extend: {
                index_url: 'device/lists/index_simple' + location.search,
                table: 'device_lists'
            }
        });

        var table = $("#table");

        // 初始化表格
        table.bootstrapTable({
            url: $.fn.bootstrapTable.defaults.extend.index_url,
            pk: 'id',
            sortName: 'id',
            showExport:false,
            columns: [
                [
                    // {checkbox: true},
                    {
                        field: 'type',
                        title: '設備類型',
                        operate: false,
                        formatter: function (value, row){
                            return row.type === 3?'售賣一體機':'一代投遞機'
                        }
                    },
                    {
                        field: 'name',
                        title: __('設備名稱'),
                        operate: 'LIKE',
                        sortable: false,
                        width: '300px',
                    }
                ]
            ]
        });

        // 為表格綁定事件
        Table.api.bindevent(table);
    },

這裏編輯的就是設備分組中設備列表彈框的展示樣式:

image.png

user avatar aipaobudehoutao 頭像 liujiaxiaobao 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.