摘要:表格的刷新保留查詢條件的刷新當前分頁的數(shù)據(jù)更新,請使用也可以使用獲取當前接口請求的參數(shù)。
本期我們要講述一下最常見的布局————表格:
如何引入datagrid組件(在文章的末尾)
來個demo,調(diào)用的代碼
let options = { container:".con",//表格的容器 paging:{//分頁的相關(guān)配置,其他參數(shù)配置參考[諾諾組件之分頁(舊版)][1] url:"accinfo/receipt/query.do" }, columns:[{//表頭配置,由于columns的配置比較復(fù)雜,多帶帶拎出來在下方說明 title:"收款單編號", field:"number", nowrap:true, className:"f-tali", align:"left", width:90 },{ title:"客戶名稱", field:"accountName", showtitle:true, width:80, nowrap:true, align:"left", className:"f-tali", order:{field:"sort", desc:"2",asc:"1"}, content: ` <%if $value.source?? && $value.source == "1"%> 眾 <%$value.accountName%> <%else%> <%$value.accountName%> <%/if%> ` , filter:null } ... ], fields:["c_receiptid","accountName"], }; datagrid(options)
名詞簡稱:
self:datagrid的實例對象也就是datagrid(opt)的返回值
$dom:dom的jquery對象
下面展示下接口返回的格式:
{ "result":"success", "periods":["2017-01","2017-02","2017-03","2017-04","2017-05","2017-06","2017-07","2017-08","2017-09","2017-10","2017-11","2017-12"],"page":1, "list":[ {"monthstatus":[4,4,4,4,4,4,4,4,4,4,4,4],"accountName":"導(dǎo)賬測試","is_transfer":null,"source":0,"status":0,"accID":"07A508889E594CA0A69A7F1C748D570B"}, {"monthstatus":[4,4,4,4,4,4,4,4,1,1,3,1],"accountName":"張慧502","is_transfer":null,"source":0,"status":0,"accID":"F02D7151DEDA4A51803DD7FBFAD5F7E6"}, {"monthstatus":[4,4,4,4,4,4,4,4,4,4,4,4],"accountName":"進項Q","is_transfer":null,"source":0,"status":0,"accID":"0ED1859B007F462CB9B250F87229D6B3"}, {"monthstatus":[1,1,1,1,1,1,1,1,1,1,1,1],"accountName":"成品油測試","is_transfer":null,"source":0,"status":0,"accID":"35CD8ED07E5943489B2D2ABA12C74385"}, {"monthstatus":[4,4,4,4,4,4,4,4,4,4,4,4],"accountName":"50999","is_transfer":null,"source":0,"status":0,"accID":"306D4C0974ED47DBBDD66A9FF2B12A37"} ], "aCount":21 }datagrid配置參數(shù) width
功能:設(shè)置表格的寬
height功能:設(shè)置表格的高
paging類型:Object
功能:配置接口請求
大部分的參數(shù)參照http://zjaisino.github.io/plu...
下面是參數(shù)的補充說明
字段名稱 | 參數(shù)類型 | 參數(shù)值 | 參數(shù)意義 |
---|---|---|---|
getData | Function | data | data表示的就是接口的返回值,比如接口的結(jié)果是{data:{list:[],aCount:0}} ,這時候需要將數(shù)據(jù)處理下返回給表格組件:getData:function(data){ return data.data;} |
類型: Boolean
功能:默認為true。當設(shè)置為true的時候paging設(shè)置有效,表格采用接口請求加載;設(shè)置為false的時候,表格不會調(diào)用接口請求,這個時候要配置datagrid的data參數(shù)
類型:Array
功能:表格的數(shù)據(jù),為空的時候請傳值為空數(shù)組;
類型:String
功能:paging傳入值里作為datagrid數(shù)據(jù)的鍵值,默認是list
字段名稱 | 參數(shù)類型 | 參數(shù)值 | 參數(shù)意義 |
---|---|---|---|
title | String | 收款單編號 | 表頭列的展示內(nèi)容 |
field | String | accountName | 在這個td里面展示的是鍵為accountName的值 |
children | Array | columns對象 | 表頭里面的合并列需要 |
fixed | String | left right |
列固定在左邊或者固定在右邊 |
className | String | 給td增加樣式 | |
content | string | number checkbox input `<%if $value.source?? && $value.source == "1"%>眾<%$value.accountName%><%else%><%$value.accountName%><%/if%> ` |
number :序列號 checkbox 是復(fù)選框 input輸入框 字符串其中的$value表示的就是當前這一行數(shù)據(jù),并且template設(shè)置為true,filter為null |
checked | Boolean | true | 復(fù)選框勾選 |
filter | Function |
例子 filter:function(val,name,data){ return " "+data.number+""; } null |
作為函數(shù)的時候返回的就是td的展示內(nèi)容 作為null的時候采用content配置字符串的方式 當content為checkbox的時候filter返回可以是個對象,用來表示復(fù)選框的disabled的屬性 |
nowrap | Boolean | true false |
true 溢出隱藏并且末尾以省略號的格式展示 默認是false |
showtitle | Function Boolean |
Function true false |
title為函數(shù)的的返回值 默認是true,鼠標放上去展示title 設(shè)置為false,則不展示title, |
order | {} | {field:"sort", desc:"2",asc:"1"} | 當排序的時候額外傳給后臺一個鍵值對,其中field傳的是鍵 當點擊向下的箭頭傳的是desc對應(yīng)的參數(shù),點擊向上的箭頭傳的是asc對應(yīng)的參數(shù) |
width | 和table默認的參數(shù)格式一樣 | "10%" | |
colspan | 和table默認的參數(shù)格式一樣 | ||
rowspan | 和table默認的參數(shù)格式一樣 |
來個demo:
option當你很多column寫的要吐血的時候這個參數(shù)就派上的用場,里面的參數(shù)作為column的基礎(chǔ)配置
比如:option:{
align:"left"
},表示所有的column的align都是left
類型:Array
類型:String
類型:Boolean (設(shè)置為true)
功能:在tr上添加數(shù)據(jù),用jquery的data()進行取值;當配置為true時,表示當前一行的數(shù)據(jù)都綁定到tr上;
onRowRender(self, val, i){//在渲染每一行的時候執(zhí)行 /* *self 是datagrid的實例對象 *val為這行數(shù)據(jù) *i標識這是第幾行(從0開始) *返回來的對象是綁定在tr標簽上的屬性以及屬性值鍵值對,className是追加在tr class屬性上; */ return { className:"", flag:1 } },onRender
onRender(self){//表格渲染完成之后執(zhí)行的函數(shù)
},
onCheckboxChange(self, e, elem){//勾選復(fù)選框之后的回調(diào)函數(shù)
}
功能:表格的腳注
類型:String
datagrid內(nèi)嵌了events模塊,可以在表格上綁定事件,我們以刪除按鈕的功能為例
events:{//原理是在table表格上做代理事件,對于不能代理的事件(input propertychange)不能在此使用,希望后期能完善這個 "click .j-delete":"del" }, del:function(e,elem){//e事件,elem 觸發(fā)事件的dom的jquery對象 layer({//使用前請先引用layer、request、router、hintmsg模塊 content:"確定刪除?", button:[{ id:"confirm", callback:function (self) { request.get(elem.data().url, elem.data(), {// 在dom元素上綁定刪除的url,以及接口要傳的參數(shù) "200":(res)=> { hintmsg("刪除成功!",1); let activeRouter = router.active(true);//獲取當前路由 activeRouter.grid.paging.query(true);//刷新列表 self.hide();//關(guān)閉彈出層 }, other:(res)=>{ hintmsg(res.message,0); let activeRouter = router.active(true); activeRouter.grid.paging.query(true); self.hide(); } }) } },{ text:"取 消" }] }) }
還有很多參數(shù)就不一一描述,下面列出全部的參數(shù)以及默認值,至于沒有描述到的參數(shù)功能可以參考源碼
全部的參數(shù)以及默認值container:null, data:null, columns:null, isFixed:true, isLine:false, isActive:true, isBorder:true, option:null, isPaging:true, isDir:false, keyCode:[9, 13], url:null, paging:null, fields:null, dataField:"list", width:"100%", height:"100%", footer:"", placeholder:"", onFocusin:null, onFocusout:null, onFocus:null, onBlur:null, filterQuery:null, stringify:null, rowRender:null, colRender:null, onActive:null, onCancelActive:null, onRowRender:null, onRowClick:null, onRowDblclick:null, onCheckboxChange:null, onRender:null, onRenderBefore:null, onScroll:null
在初始化完成組件之后將返回實例對象,這個實例對象對于后續(xù)的條件搜索、修改一行數(shù)據(jù)可以提供一些便捷的方法
實例對象的方法方法名稱 | 參數(shù) | 參數(shù)意義 | 功能 |
---|---|---|---|
update | index, data | 行的索引,需要更新的數(shù)據(jù)采用鍵值對的形式{修改的列的filed名稱:值} | 更新單行 |
checkedData | field | 數(shù)據(jù)的字段名稱 | 返回勾選行tr上field的list,如果參數(shù)為空表示的是獲取tr全部數(shù)據(jù) |
scrollTo | x, y | 橫向坐標,縱向坐標 | 回滾表格到指定位置 |
resize | 重新按照參數(shù)調(diào)整表格布局 |
對象名稱 | 類型 | 功能 |
---|---|---|
data | Object | 接口返回來的數(shù)據(jù) |
element | $dom | 表格的jquery對象 |
list | Array | 表格的數(shù)據(jù)列表 |
paging | Object | 分頁的實例對象 |
router | Object | 表格所在的路由實例對象 |
數(shù)據(jù)增、刪、改、查、展示是表格的核心,接口返回的數(shù)據(jù)作為self的data,我們要將這些數(shù)據(jù)按照一定的規(guī)則展示在頁面,并且存儲在dom上(有利于后續(xù)的刪除以及修改操作),還能在表格的第一列增加復(fù)選框的功能,完成表格數(shù)據(jù)的批量操作,在完成操作時候及時更新表格上的數(shù)據(jù)。那么在數(shù)據(jù)的流轉(zhuǎn)中,我們和后臺約定好,后續(xù)處理數(shù)據(jù)時,字段傳的參數(shù)名字要和接口請求回來的字段名稱一樣,可以省去繁瑣的字段轉(zhuǎn)換過程。
將表格的相似功作為基礎(chǔ)設(shè)置,最常見的是表格的刪除,當我們以數(shù)據(jù)為核心的時候,我們關(guān)注的是刪除的鏈接,以及這行的數(shù)據(jù),將鏈接綁定在dom元素上,或者配置在表格中,在函數(shù)中獲取配置,這樣刪除就可以作為項目表格公用的方法。
表格的刷新:self.paging.query();保留查詢條件的刷新:self.paging.query(true);當前分頁的數(shù)據(jù)更新,請使用self.update(),也可以使用self.paging.query("reload"),獲取當前接口請求的參數(shù) self.paging.condition。
如何引入datagrid組件如果你安裝的是npm包nuonuo-libs:
首先配置在webpack.config.js中增加配置
{ test:/.js$/, use:[{ loader:"nui-loader", options:{ paths:{ pub:"src/public" }, alias:{ nuijs:"nuonuo-libs/script/nui/index", util:"{pub}/util", store:"{pub}/store", data:"{pub}/data", frame:"{pub}/frame", layer:"{pub}/layer", router:"{pub}/component/platformRouter", JSON:"nuonuo-libs/script/polyfill/json" } } }] }
在模塊中引入
import {datagrid} from "nuijs"
如果你使用的是libs公用文件
那么使用
import datagrid from "/libs/script/nui/components/datagrid";
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95227.html
摘要:滾動條示例正常情況下滑塊的樣式鼠標懸浮在該類指向的控件上時滑塊的樣式鼠標懸浮在滑塊上時滑塊的樣式正常時候的主干部分鼠標懸浮在滾動條上的主干部分這里有好多上面這結(jié)構(gòu)為了節(jié)省篇幅就省去了 ?????? ???????????? ????????????滾動條示例 ???????????? ??????????????????.nui-scroll { ?????????????????????...
摘要:官方的解決方案展示了客戶端分頁解決方案的基本思想,但是這個示例太過簡單。原來是向設(shè)置了需要顯示的所有數(shù)據(jù)行,不管分頁比如可以一次顯示出來條數(shù)據(jù)而現(xiàn)在,如果設(shè)置的數(shù)據(jù)量過大,則需要通過客戶端分頁來逐頁顯示。 官方的解決方案 官方在在線示例中給了一個簡單的 client pagination 解決方案,代碼就不貼了,這里說說它的基本思想和處理過程。 首先,是綁定一個 preload 事件,...
摘要:在前一篇,的客戶端分頁解決方案中留下了一個問題如果前三頁只需要加載一次數(shù)據(jù),采用客戶端分頁,之后的每一頁都仍然從服務(wù)器獲取,應(yīng)該怎么辦現(xiàn)在就來改造,讓它實現(xiàn)這個功能。所以正確的解決辦法是試驗一下就能證明它的正確性。 在前一篇,miniui datagrid 的客戶端分頁解決方案 中留下了一個問題:如果前三頁只需要加載一次數(shù)據(jù),采用客戶端分頁,之后的每一頁都仍然從服務(wù)器獲取,應(yīng)該怎么辦?...
摘要:什么是是一種基于和的用戶界面插件集合。為創(chuàng)建現(xiàn)代化,互動,應(yīng)用程序,提供必要的功能。是個完美支持網(wǎng)頁的完整框架。很簡單但功能強大的。返回則取消該動作。該函數(shù)有下列參數(shù)要傳遞到遠程服務(wù)器的參數(shù)對象。當檢索數(shù)據(jù)成功時調(diào)用的回調(diào)函數(shù)。 什么是easyUI easyui是一種基于jQuery、Angular.、Vue和React的用戶界面插件集合。easyui為創(chuàng)建現(xiàn)代化,互動,JavaScr...
摘要:什么是是一種基于和的用戶界面插件集合。為創(chuàng)建現(xiàn)代化,互動,應(yīng)用程序,提供必要的功能。是個完美支持網(wǎng)頁的完整框架。很簡單但功能強大的。返回則取消該動作。該函數(shù)有下列參數(shù)要傳遞到遠程服務(wù)器的參數(shù)對象。當檢索數(shù)據(jù)成功時調(diào)用的回調(diào)函數(shù)。 什么是easyUI easyui是一種基于jQuery、Angular.、Vue和React的用戶界面插件集合。easyui為創(chuàng)建現(xiàn)代化,互動,JavaScr...
閱讀 2674·2021-11-25 09:43
閱讀 2586·2021-11-22 09:34
閱讀 2848·2021-11-12 10:34
閱讀 1439·2021-10-20 13:46
閱讀 2306·2019-08-30 13:21
閱讀 934·2019-08-30 11:21
閱讀 486·2019-08-30 11:20
閱讀 2190·2019-08-29 17:20