首先我目前用的版本是 layui-v2.5.5 ,後期大家用的版本可能會有所出入,大家可自行去 官網 自行下載最新版,當然大家如有什麼不懂的,請直接留言,我會盡快爲你解答,共勉。
一、目錄結構
- ├─css //css目錄
- │ │─modules //模塊css目錄(一般如果模塊相對較大,我們會單獨提取,比如下面三個:)
- │ │ ├─laydate
- │ │ ├─layer
- │ │ └─layim
- │ └─layui.css //核心樣式文件
- ├─font //字體圖標目錄
- ├─images //圖片資源目錄(目前只有layim和編輯器用到的GIF表情)
- │─lay //模塊核心目錄
- │ └─modules //各模塊組件
- │─layui.js //基礎核心庫
- └─layui.all.js //包含layui.js和所有模塊的合併文
二、簡單介紹
layui分爲兩種包(模塊化、非模塊化),非模塊化引的是 layui.all.js ,裏面包含的所有組件,相當於你去肯德基裏面買的全家桶。
模塊化引的是 layui.js ,相當於你去肯德基裏面按自己的喜好點的單品,吃啥點啥(用到哪個模塊就引入哪個模塊)避免浪費。
同理在實際開發時,如果你一上來就引了個全包會加大與服務器HTTP時的通信壓力,所以我推薦大家使用 layui 時使用模塊化的方式去實現 layui 的功能,按模塊去熟悉 layui 。
三、模塊化使用教程
大家先看下官網給出了哪些模塊,如下圖:
上面紅色框出的部分就是目前版本中所擁有的模塊,而我們一般使用最頻繁的模塊就是layer(彈出層)、table(數據表格)、form(表單),下面我將結合我最近的代碼塊給大家講解。
1、數據表格(table)
首先大家通過
layui.use([模塊名,模塊名]),function(){}
引入所需 模塊,然後結合下圖對 table 模塊進行初步的認識:
var layer = layui.layer
,$ = layui.$
,form = layui.form
,laydate = layui.laydate;
這段代碼的意思是對所引入的模塊起別名,方便後面大家可直接通過 別名 調用模塊中的方法,該模塊中需要注意以下幾點:
① 數據表格的數據接口需返回 JSON 格式的數據
② 分頁需在後臺進行數據的控制,前端只提供了分頁參數,默認爲 page (頁碼) limit (每頁展示數)
③ 列表中展示列數據不需要處理的直接將 fileld 與後臺屬性保持一致即可,對於需要特殊處理的,如常見的 對象 、時間 可通過如下圖中的方式進行控制。
文末附上 js 格式化時間的方法,方便大家參考。
2、表單(form)
引入方式同上,直接上圖:
該模塊需要注意的有以下幾個方面:
① 表格數據的獲取方式一般可直接寫 data.field 但當有附件時,推薦大家用
var formData = new FormData($("#mealRollForm")[0]);
② 表單方法末尾一定要加上 break !!! 別問我爲什麼,你可以不加試試...
3、彈出層(layer)
彈出層沒啥好說的,直接上官網的介紹:
我們提到的基礎參數主要指調用方法時用到的配置項,如:layer.open({content: ''})layer.msg('', {time: 3})等,其中的content和time即是基礎參數,以鍵值形式存在,基礎參數可合理應用於任何層類型中,您不需要所有都去配置,大多數都是可選的。而其中的layer.open、layer.msg就是內置方法。注意,從2.3開始,無需通過layer.config來加載拓展模塊
type - 基本層類型
title - 標題
content - 內容
類型:Number,默認:0
layer提供了5種層類型。可傳入的值有:0(信息框,默認)1(頁面層)2(iframe層)3(加載層)4(tips層)。 若你採用layer.open({type: 1})方式調用,則type爲必填項(信息框除外)
類型:String/Array/Boolean,默認:'信息'
title支持三種類型的值,若你傳入的是普通的字符串,如title :'我是標題',那麼只會改變標題文本;若你還需要自定義標題區域樣式,那麼你可以title: ['文本', 'font-size:18px;'],數組第二項可以寫任意css樣式;如果你不想顯示標題欄,你可以title: false
類型:String/DOM/Array,默認:''
content可傳入的值是靈活多變的,不僅可以傳入普通的html內容,還可以指定DOM,更可以隨着type的不同而不同
這塊建議大家直接看官方文檔,上面介紹的很詳細,這塊也沒啥坑,附上 鏈接
js 時間格式化
//轉換日期格式(時間戳轉換爲datetime格式)
function changeDateFormat(cellval) {
var dateVal = cellval + "";
if (cellval != null) {
var date = new Date(parseInt(dateVal.replace("/Date(", "").replace(")/", ""), 10));
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;
}else{
return "";
}
}