1. 程式人生 > >【bird-front】全自動資料表格元件bird-grid

【bird-front】全自動資料表格元件bird-grid

bird-grid是bird-front前端框架中實現的全自動資料表格元件。元件內部處理資料載入、分頁、排序、查詢、新增、編輯等一系列操作。讓業務表格的開發從繁複的增刪查改中脫離出來,編碼簡潔卻又功能強大。

功能特性

  • 豐富的列型別支援,包括文字、文字域、數字、bool、下拉選擇器、級聯選擇器、富文字、圖片、日期、時間等型別。
  • 新增、編輯零程式碼,支援自定義的編輯配置(提示、是否必填、正則驗證等)。
  • 查詢、排序、分頁零程式碼。每列均可查詢、排序。
  • 自定義操作按鈕,預設提供新增、修改、刪除的操作按鈕。
  • 元件內部支援按鈕級許可權控制。

示例程式碼

render() {
    let gridOption 
= { url: { read: "/sys/dic/getPaged", add: "/sys/dic/save", edit: "/sys/dic/save", delete: "/sys/dic/delete" }, columns: [ {title: "編號", data: "id", type: "number",}, {title: "字典名稱", data: "name", type: "text", editor: {}, query: true}, {title:
"Key", data: "key", type: "text", editor: {}, query: true}, {title: "預設業務碼", data: "defaultCode", type: "text", editor: {}, query: true}, {title: "建立時間",data: "createTime",type: "datetime",query: true}, {title: "操作選項", type: "command", actions: []} ] }; return (<BirdGrid gridOption={gridOption}/>) }

效果圖

API

引數  說明 型別 預設值
url 表格相關服務api配置 object {}
permission 許可權相關配置 object/string {}
checkable 是否新增Checkbox選擇框 bool false
columns  表格列配置 array []
pageSize 每頁資料條數 number 15
pageSizeOptions 每頁數量選項陣列 array ["10", "15", "20", "30", "50", "100"]
primaryKey 標識列 string 第一列的data引數
sortField 排序欄位:'asc'、'desc' string 'desc'
actions 右上角操作按鈕集合 array [新增]
customRules 自定義篩選條件 array []

url相關API

引數 說明 型別 預設值
read 資料讀取服務端url string ''
add 資料新增url string ''
edit 資料更新url string ''
delete 資料刪除url string ''

注:所有介面均使用POST提交,read為必填項,其他配置均選填,不配置則不顯示相關的操作按鈕。

表格請求json格式:

{
    "filters": [
        {
            "field": "string",
            "operate": "string",
            "value": "string"
        }
    ],
    "pageIndex": 0,
    "pageSize": 0,
    "sortDirection": 0,
    "sortField": "string"
}

read介面返回json格式:

{
    "items": [],
    "totalCount": "10"
}

items中物件的欄位對應表格中的列。

permission相關API

引數 說明 型別 預設值
add 新增許可權名稱 string ''
edit 編輯許可權名稱 string ''
delete 刪除許可權名稱 string ''

add/edit/delete各自對應新增/編輯/刪除的許可權名稱,不配置則表示不驗證對應的許可權。
permission支援字串格式,表格初始化時會自動為其新增:add/:edit/:delete許可權名。

columns相關API

引數 說明 型別 預設值
title 列名稱 string
data 對應資料的欄位名 string
type 列型別。text、textarea、richtext、number、switch、dropdown、cascader、img、date、datetime、hide、command string
query 列是否可以查詢 bool false
 sortDisable  列是否禁止排序 bool false
hide 列是否隱藏 bool false
render 自定義列渲染方法 function(v,d)
source 當列型別為dropdown(下拉選擇)或cascader(級聯選擇)時的資料來源 object
actions 當列型別為command時的操作按鈕陣列 array [編輯、刪除]
editor 列的編輯設定 object

說明:

  • render(v,d){}方法第一個引數表示當前行當前列的資料,第二個引數表示整行的資料。
  • scource:{data:[],url:'',key:''}。當型別為`dropdown`時,其中data、url、key分別對應`bird-selector`中的data、url、dicKey。當型別為`cascader`時,data、url分別對應`bird-cascader`中的data、url。

editor相關API

引數 說明 型別 預設值
ep 編輯模式。'default','hide','disabled' string 'default'
ap 新增模式。'default','hide','disabled' string  'default'
tips 提示資訊 string ''
isRequired 是否必填 bool false
validateRegular 驗證的正則表示式 object
step number型別下的步長 number 1
precision number型別的精度(小數的位數) number 0

actions相關API

引數 說明 型別 預設值
name 按鈕名稱 string
onClick 點選事件 function(data) (data)=>{}
nameFormat 按鈕名稱渲染方法,根據行資料渲染不同的按鈕名 function(data)
hideFunc 根據行資料判斷按鈕是否顯示方法 function(data)
permissionName 所需許可權名 string

說明:

  • 本表格所有方法接收的data為行資料(右上角按鈕的onClick事件除外);
  • nameFormat,只對行內action有效,優先順序高於name;
  • hideFunc,只對行內action有效,存在且hideFunc(data)為true時,該按鈕隱藏;
  • permissionName實現按鈕級許可權控制;
  • onClick。右上角按鈕:data表示表格選中的值;行內按鈕:data表示行資料;

customRules相關API

引數 說明 型別 預設值
field 列欄位名稱 string
value string

說明:
customRules是在表格初始化之前為表格新增自定義查詢條件,可用於url上不同引數對於表格資料的控制。

專案地址