layui 记录1
目前所做项目很多控件及其数据表格用到layui,整理一下,以后查阅。
首先数据表格:
页面Html代码:
<table id="Table" lay-filter="layfilter" ></table> <script type="text/html" id="toolbarDemo"> 搜索: <div class="layui-inline"> <input class="layui-input" name="id" id="txtSearch" autocomplete="off"> </div> <button class="layui-btn layui-btn-sm" lay-event="btnSearch">搜索</button> <button class="layui-btn layui-btn-sm" lay-event="btnAddNew">添加新</button> <button class="layui-btn layui-btn-sm" lay-event="btnDelCheck">删除选中行</button> </script> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script>
js代码:
layui.use("table", function () {
var table = layui.table;
table.render({
elem: "#Table" //页面中的Id
, id: "ExpertListTableID" //防止重复id
, method: "get"
, url: GetAPIUrl("api/Expert/GetList")
, where: { "参数": 参数 } //json传参格式
, toolbar: "#toolbarDemo" //头部导航编辑栏 Id
, title: "标题"
, page: ListTablePage
, response: {
statusCode: "ok" //重新规定成功的状态码为 ok,table 组件默认为 0
}
/*, request: {
pageName: 'curr' //页码的参数名称,默认:page
, limitName: 'nums' //每页数据量的参数名,默认:limit
}
, width: 1024
, height: 500
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据 这个就是后台返回的数据
return { //返回数据
"code": res.status, //解析接口状态
"msg": res.message, //解析提示文本
"count": res.total, //解析数据长度
"data": res.rows.item //解析数据列表
};
}*/
, cols: [[
{ type: "checkbox", fixed: "left" }
, { type: "numbers", title: "序号"}
, { field: "lieming1", title: "列名1", sort: true }
, { field: "lieming2", title: ""}
, { field: "lieming3", title: ""}
, { field: "lieming4", title: ""}
, { field: "lieming5", title: "" }
, { field: "lieming6", title: ""}
, { field: "lieming7", title: "" }
, { fixed: "right", title: "操作", toolbar: "#barDemo"}
]]
});
//这里以搜索为例 这是重载table
//table.reload({
// where: {"uid":""} //设定异步数据接口的额外参数
// , page: {
// curr: 1 //重新从第 1 页开始
// }
//});
//头工具栏事件
table.on("toolbar(layfilter)", function (obj) {
var checkStatus = table.checkStatus(obj.config.id);//获取本页表格所有数据的Id
switch (obj.event) {
case "getCheckData":
var data = checkStatus.data;
layer.alert(JSON.stringify(data));
break;
case "getCheckLength":
var data = checkStatus.data;
layer.msg("选中了:" + data.length + " 个");
break;
case "btnSearch":
//window.location = "ExpertEdit.html?action=add";
break;
case "btnAddNew":
window.location = "ExpertEdit.html?action=add&uid=" + uid;
break;
case "btnDelCheck":
layer.confirm("确定删除选中行么?", function (index) {
var data = checkStatus.data;
var idStr = "";
for (var i = 0; i < data.length; i++) {
idStr += data[i].Id + "|";
}
if (DelByIds(idStr)) {
obj.del();
layer.close(index);
}
layer.close(index);
});
break;
};
});
//监听行工具事件
table.on("tool(layfilter)", function (obj) {
var data = obj.data;//获取选中的数据
if (obj.event === "del") {
layer.confirm("确定删除么", function (index) {
if (DelById(data.Id)) {
obj.del();//链接后台 删除方法
layer.close(index);
}
});
} else if (obj.event === "edit") {
window.location = "ExpertEdit.html?action=edit&uid=" + uid + "&eid=" + data.Id;
} else if (obj.event === "info") {
window.location = "ExpertInfo.html?action=edit&uid=" + uid + "&eid=" + data.Id;
}
});
});
//按id删除
function DelById(eid) {
var b = false;
$.ajax({
url: GetAPIUrl("api/Expert/Delete"), //地址
type: "Delete",
dataType: "json",
async: false,
data: { "uid": uid, "eid": eid },
success: function (msg) {
if (msg.code == "ok") {
b = true;
}
else {
layerAlert(msg.msg);
}
},
error: function () {
layerErrAlert();
}
});
return b;
}
//id数组删除
function DelByIds(eids) {
var b = false;
$.ajax({
url: GetAPIUrl("api/Expert/BatchDelete"), //地址
type: "Delete",
dataType: "json",
async: false,
data: { "uid": uid, "eid": eids },
success: function (msg) {
if (msg.code == "ok") {
b = true;
}
else {
layerAlert(msg.msg);
}
},
error: function () {
layerErrAlert();
}
});
return b;
}
编辑页面:
首先就是页面赋值
html页面:
<form id="form1" class="layui-form" lay-filter="formFilter">
这里是编辑页面 里面的表单
下面 是上传图片功能
<div class="layui-form-item"> <label class="layui-form-label">照片</label> <div class="layui-input-block"> <button type="button" class="layui-btn" id="expert_photo_up"><i class="layui-icon"></i>上传照片</button> <button type="button" class="layui-btn" id="expert_photo_view">查看照片</button> <label id="demoText"></label> <div class="layui-input-inline"> <input type="hidden" id="expert_photo" name="expert_photo" class="layui-input"> </div> <img class="layui-upload-img" id="photoimg" name="photoimg" style="width:295px;height:413px;display:none"> </div> </div>
</form>
注意 一定要 用form,因为 layui需要form进行渲染
js页面:
layui.use(['form', 'layedit', 'laydate', 'upload'], function () { var form = layui.form , layer = layui.layer , laydate = layui.laydate; var upload = layui.upload; //上传设置 var uploadInst = upload.render({ elem: '#expert_photo_up' //绑定元素 , url: GetAPIUrl("api/FileUpload/ImgUpload") //上传接口 , method: "POST" , before: function (obj) { //预读本地文件示例,不支持ie8 obj.preview(function (index, file, result) { $('#photoimg').attr('src', result); //图片链接(base64) }); } , done: function (msg) { if (msg.code == "ok") { layer.msg(msg.msg); $('#expert_photo').val(msg.url); $('#photoimg').attr('src', GetAPIUrl(msg.url)); //$("#expert_photo_view").click(); } else { layerAlert("上传失败!"); } } , error: function () { //请求异常回调 //演示失败状态,并实现重传 var demoText = $('#demoText'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.find('.demo-reload').on('click', function () { uploadInst.upload(); }); } }); //对于日期的渲染 有多少个Id就渲染多少个 //日期渲染 laydate.render({ elem: '#expert_birthdate' }); //日期渲染 laydate.render({ elem: '#expert_starttime_quantum' }); //日期渲染 laydate.render({ elem: '#expert_endtime_quantum' }); //监听提交 form.on('submit(btnAddNew)', function (data) { var JsonSendData = JSON.stringify(data.field); //这里是获取页面的数据 $.ajax({ cache: true, type: "POST", dataType: "json", url: , add //这里是地址 data: {"data": JSON.stringify(data.field) }, async: false, success: function (msg) { layerAlert(msg.msg); }, error: function (request) { layerErrAlert(); } }); return false; });
//编辑 form.on('submit(btnEdit)', function (data) { var JsonSendData = JSON.stringify(data.field); if (JsonSendData != "" && JsonSendData != undefined) { JsonSendData = "{\"Id\":\"" + getQueryString("eid") + "\"," + JsonSendData.substring(1); } $.ajax({ cache: true, type: "PUT", dataType: "json", url: Update, data: { "uid": uid, "data": JsonSendData }, async: false, success: function (msg) { layerAlert(msg.msg); }, error: function (request) { layerErrAlert(); } }); return false; }); //表单初始赋值 首先要获取数据 if (action == "edit") {//修改 $.ajax({ url: GetEntity, //地址 type: "GET", dataType: "json", async: false, data: {"eid": getQueryString("eid") }, //根据Id success: function (msg) { if (msg.code == "ok") { SetFormEntity(form, msg.data[0]); //表单赋值方法 } else { layerAlert(msg.msg); } }, error: function () { layerErrAlert(); } }); //return jsonEntity; } else if (action == "edits") { //修改 $.ajax({ url: GetAPIUrl("api/Expert/GetEntity"), //地址 type: "GET", dataType: "json", async: false, data: { "uid": uid, "eid": getQueryString("eid") }, success: function (msg) { if (msg.code == "ok") { SetFormEntity(form, msg.data[0]); } else { layerAlert(msg.msg); } }, error: function () { layerErrAlert(); } }); //return jsonEntity; } else if (action == "add") {//添加 //return false; } else { //return false; } //form.render(); //监听指定开关 //form.on('switch(switchTest)', function (data) { // layer.msg('开关checked:' + (this.checked ? 'true' : 'false'), { // offset: '6px' // }); // layer.tips('温馨提示:请注意开关状态的文字可以随意定义,而不仅仅是ON|OFF', data.othis) //}); }); //表单初始赋值 这里要注意的是 下面的 红色是Id,要与 html页面中的表单 Id一致。 function SetFormEntity(form, jsonEntity) { form.val('formFilter', { "expert_name": jsonEntity.Expert_name, "expert_idcard": jsonEntity.Expert_idcard, "expert_sex": jsonEntity.Expert_sex, "expert_birthdate": formatDate(jsonEntity.Expert_birthdate), "expert_photo": jsonEntity.Expert_photo, "expert_native_place": jsonEntity.Expert_native_place, "expert_nation": jsonEntity.Expert_nation, "expert_political": jsonEntity.Expert_political, "expert_work_unti": jsonEntity.Expert_work_unti, "expert_duty": jsonEntity.Expert_duty, "expert_title": jsonEntity.Expert_title, "expert_email": jsonEntity.Expert_email, "expert_phone": jsonEntity.Expert_phone, "expert_mobile": jsonEntity.Expert_mobile, "expert_address": jsonEntity.Expert_address, "expert_school": jsonEntity.Expert_school, "expert_specialty_name": jsonEntity.Expert_specialty_name, "expert_education_degree": jsonEntity.Expert_education_degree, "expert_category_name": jsonEntity.Expert_category_name, "expert_field_name": jsonEntity.Expert_field_name, "expert_from_name": jsonEntity.Expert_from_name, "remarks": jsonEntity.Remarks, "expert_starttime_quantum": jsonEntity.Expert_starttime_quantum, "expert_endtime_quantum": jsonEntity.Expert_endtime_quantum, "expert_avoid_entry": jsonEntity.Expert_avoid_entry //"like[write]": true //复选框选中状态 //"close": true //开关状态 }) //图片赋值 $("#photoimg").attr("src", 图片地址) }

浙公网安备 33010602011771号