fsLayui 是一個基於layui的快速開發插件,支持數據表格增刪改查操做,提供通用的組件,經過配置html實現數據請求,減小前端js重複開發的工做。
GitHub下載
碼雲下載
測試環境地址:
http://fslayui.itcto.cn
css和js引用
公共css和js必須所有引用
<!-- layui css -->
<link rel="stylesheet" type="text/css" href="/plugins/layui/css/layui.css" media="all"/>
<!-- 引入自定義css -->
<link rel="stylesheet" type="text/css" href="/css/fs.css" media="all"/>
<!-- layui js -->
<script type="text/javascript" src="/plugins/layui/layui.js"></script>
<!-- 引入jquery -->
<script type="text/javascript" src="/plugins/jquery/jquery.min.js"></script>
<!-- 引入數據字典 -->
<script type="text/javascript" src="/plugins/frame/js/fsDict.js?v=1.4.1"></script>
<!-- 引入 js入口文件 -->
<script type="text/javascript" src="/plugins/frame/js/fs.js?v=1.4.1"></script>
<!-- 引入通用數據表格框架js -->
<script type="text/javascript" src="/plugins/frame/js/frame.js?v=1.4.1"></script>
數據表格配置
datagrid配置
table標籤 datagrid參數配置
datagrid demo
<table id="fsDatagrid" lay-filter="fsDatagrid" class="fsDatagrid" isLoad="1" url="/fsbus/1000" isPage="1" defaultForm="query_form" height="full-235"></table>
<div class="fsDatagridCols">
<p type="numbers" title="#"/>
<p checkbox="true"/>
<p field="id" title="ID" width="100" sort="true"/>
<p field="name" title="名稱" width="30%" sort="true" />
<p field="type" title="類型" width="150" dict="type"/>
<p field="city" title="城市" width="100" dict="city"/>
<p field="sex" title="性別" width="100" />
<p field="state" title="狀態" width="100" templet="#stateTpl"/>
<p field="area1" title="省份" width="100" dict="area1"/>
<p field="createdTime" title="建立時間" width="180"/>
<p field="modifiedTime" title="修改時間" width="180"/>
<p fixed="right" align="center" toolbar="#barDemo" title="操做" width="180"/>
</div>
<script type="text/html" id="stateTpl">
<input type="checkbox" name="state" lay-skin="switch" disabled lay-text="開啓|關閉" {{ d.state == 1 ? 'checked' : '' }}>
</script>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="top" topUrl="edit.html" topMode="readonly" topWidth="800px" topHeight="600px" topTitle="查看demo" inputs="id:">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="top" topUrl="edit.html" topWidth="800px" topHeight="600px" topTitle="編輯demo" inputs="id:">編輯</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="submit" url="/fsbus/1002" isConfirm="1" confirmMsg="是否肯定刪除當前記錄?" inputs="id:">刪除</a>
</script>
表格屬性配置
表格數據請求配置,必須指定一個class樣式
fsDatagrid
,
id
和
lay-filter
必須一致。
<table id="fsDatagrid" lay-filter="fsDatagrid" class="fsDatagrid" url="/fsbus/1000" isPage="1" defaultForm="query_form" height="full-235"></table>
屬性 |
必輸 |
默認值 |
名稱 |
描述 |
id |
是 |
|
表格id |
若是隻有一個數據表格,id最好爲 fsDatagrid |
lay-filter |
是 |
|
事件監聽id |
必須和表格id一致 |
class |
是 |
|
樣式 |
必須有 fsDatagrid 樣式 |
url |
是 |
|
請求地址 |
ajax異步提交地址 |
isPage |
否 |
0 |
是否分頁 |
1 分頁,0 不分頁 |
pageSize |
否 |
20 |
每頁數量 |
指定數據表格每頁分頁數量 |
defaultForm |
否 |
|
form表單id |
表格查詢的前置條件,配置後,默認把此form表單當作datagrid查詢條件 |
height |
否 |
full-130 |
表格高度 |
表格高度 |
isLoad |
否 |
1 |
是否自動加載 |
1 默認加載,0 不加載(配置爲0後,表格默認填充空數據,點擊刷新或者查詢纔會更新數據,通常在 聯動表格 使用) |
clickRenderTable |
否 |
|
點擊行渲染的表格id |
點擊表格行,渲染某個table( 聯動表格 使用) |
clickRenderTableInputs |
否 |
|
點擊後傳入參數 |
自定義須要傳入的參數( 聯動表格 使用) |
表格顯示列配置
列配置,必須在table標籤下方定義一個
div 標籤,而且class爲
fsDatagridCols
經過p標籤,定義列的屬性內容,參考layui官方配置:
http://www.layui.com/doc/modules/table.html#cols
<div class="fsDatagridCols">
<p type="numbers" title="#"/>
<p checkbox="true"/>
<p field="id" title="ID" width="100" sort="true"/>
<p field="name" title="名稱" width="30%" sort="true" />
<p field="type" title="類型" width="150" dict="type"/>
<p field="city" title="城市" width="100" dict="city"/>
<p field="sex" title="性別" width="100" />
<p field="state" title="狀態" width="100" templet="#stateTpl"/>
<p field="area1" title="省份" width="100" dict="area1"/>
<p field="createdTime" title="建立時間" width="180"/>
<p field="modifiedTime" title="修改時間" width="180"/>
<p fixed="right" align="center" toolbar="#barDemo" title="操做" width="180"/>
</div>
<script type="text/html" id="stateTpl">
<input type="checkbox" name="state" lay-skin="switch" disabled lay-text="開啓|關閉" {{ d.state == 1 ? 'checked' : '' }}>
</script>
表格按鈕設置
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="top" topUrl="edit.html" topMode="readonly" topWidth="800px" topHeight="600px" topTitle="查看demo" inputs="id:">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="top" topUrl="edit.html" topWidth="800px" topHeight="600px" topTitle="編輯demo" inputs="id:">編輯</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="submit" url="/fsbus/1002" isConfirm="1" confirmMsg="是否肯定刪除當前記錄?" inputs="id:">刪除</a>
</script>
屬性 |
必輸 |
默認值 |
名稱 |
描述 |
lay-event |
是 |
|
事件監聽 |
top:彈出窗口;submit:提交數據 |
topUrl |
否 |
|
彈出窗口地址 |
事件監聽爲top,此屬性必輸 |
topWidth |
否 |
700px |
彈出窗口寬度 |
|
topHeight |
否 |
400px |
彈出窗口高度 |
|
isMaximize |
否 |
0 |
彈出窗口是否最大化 |
1:是, 0:否 |
topTitle |
否 |
|
彈出窗口標題 |
|
topMode |
否 |
|
彈出窗口模型 |
new:新增窗口,edit:編輯窗口,readonly:只讀窗口; 新增、修改、查看共用同一個頁面使用 |
url |
否 |
|
提交請求地址 |
事件監聽爲submit,此屬性必輸 |
isConfirm |
否 |
0 |
是否確認提示 |
1:是,0:否 |
confirmMsg |
否 |
是否肯定操做選中的數據? |
確認提示內容 |
|
inputs |
否 |
|
參數 |
自定義須要傳入的參數 |
inputs參數說明
此屬性主要爲了傳參
- 把當前選中的行id傳入請求,能夠配置 id:
- 傳入固定的指,能夠配置 屬性:值 ,示例: state:1
- 傳入的參數和選中的列參數不同,能夠配置 屬性:$對應值的屬性** ,示例:**uid:$id
- 傳入的參數取某一個輸入框的值,能夠配置 屬性:#輸入框id ,示例:name:#name
- 須要傳多個參數直接經過 逗號 分割,示例: id:,state:1
form表單查詢條件配置
只須要關注form表單id和查詢按鈕配置
<form class="layui-form" id="query_form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-mid">id:</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="tel" name="id" autocomplete="off" class="layui-input"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-mid">名稱:</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="name" autocomplete="off" class="layui-input"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-mid">時間:</label>
<div class="layui-input-inline" style="">
<input type="text" name="createDate" autocomplete="off" class="layui-input fsDate" dateRange="1" placeholder=" - "/>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<button class="layui-btn" type="button" function="query" tableId="fsDatagrid"><i class="layui-icon"></i>查詢</button>
</div>
</div>
</div>
</form>
屬性 |
必輸 |
默認值 |
名稱 |
描述 |
function |
是 |
|
方法名稱 |
查詢寫固定值 query |
tableId |
否 |
fsDatagrid |
datagrid表格id |
須要查詢的datagrid表格id |
表格菜單工具欄配置
經過菜單對datagrid表格增刪改查操做
<button class="layui-btn" function="top" topUrl="add.html" topWidth="500px" topHeight="200px" topTitle="新增demo">
<i class="layui-icon"></i>新增
</button>
<button class="layui-btn layui-btn-danger" function="submit" url="/fsbus/1002" isSelect="1" isConfirm="1" confirmMsg="是否肯定刪除選中的數據?" inputs="id:">
<i class="layui-icon"></i>刪除
</button>
<button class="layui-btn" function="refresh">
<i class="layui-icon">ဂ</i>刷新
</button>
屬性 |
必輸 |
默認值 |
名稱 |
描述 |
function |
是 |
|
方法名稱 |
top:彈出窗口,submit:提交數據,refresh:刷新表格,close:關閉窗口,query:查詢 |
topUrl |
否 |
|
彈出窗口地址 |
事件監聽爲top,此屬性必輸 |
topWidth |
否 |
700px |
彈出窗口寬度 |
|
topHeight |
否 |
400px |
彈出窗口高度 |
|
isMaximize |
否 |
0 |
彈出窗口是否最大化 |
1:是, 0:否 |
topTitle |
否 |
|
彈出窗口標題 |
|
topMode |
否 |
|
彈出窗口模型 |
new:新增窗口,edit:編輯窗口,readonly:只讀窗口; 新增、修改、查看共用同一個頁面使用 |
url |
否 |
|
提交請求地址 |
事件監聽爲submit,此屬性必輸 |
isSelect |
否 |
|
是否單選 |
1:是,0:否 |
isMutiDml |
否 |
|
是否多選 |
1:是,0:否 |
isConfirm |
否 |
0 |
是否確認提示 |
1:是,0:否 |
confirmMsg |
否 |
是否肯定操做選中的數據? |
確認提示內容 |
|
inputs |
否 |
|
參數 |
自定義須要傳入的參數 |
tableId |
否 |
fsDatagrid |
datagrid表格id |
須要查詢的datagrid表格id |
inputs參數說明
此屬性主要爲了傳參
- 把當前選中的行id傳入請求,能夠配置 id:
- 傳入固定的指,能夠配置 屬性:值 ,示例: state:1
- 傳入的參數和選中的列參數不同,能夠配置 屬性:$對應值的屬性** ,示例:**uid:$id
- 傳入的參數取某一個輸入框的值,能夠配置 屬性:#輸入框id ,示例:name:#name
- 須要傳多個參數直接經過 逗號 分割,示例: id:,state:1
本文首發於個人博客:
ITCTO技術博客