添加项目文件。
This commit is contained in:
1066
HT.Cloud.Web/wwwroot/js/lay-module/waterCloud/common.js
Normal file
1066
HT.Cloud.Web/wwwroot/js/lay-module/waterCloud/common.js
Normal file
File diff suppressed because it is too large
Load Diff
423
HT.Cloud.Web/wwwroot/js/lay-module/waterCloud/commonTable.js
Normal file
423
HT.Cloud.Web/wwwroot/js/lay-module/waterCloud/commonTable.js
Normal file
@ -0,0 +1,423 @@
|
||||
/**
|
||||
* date:2020/09/29
|
||||
* author:Mr.Q
|
||||
* version:1.6
|
||||
* description:watercloud 主体框架扩展
|
||||
*/
|
||||
layui.define(["jquery", "layer", 'table', 'soulTable', 'common', 'tabletree'], function (exports) {
|
||||
var $ = layui.jquery,
|
||||
layer = layui.layer,
|
||||
soulTable = layui.soulTable,
|
||||
tabletree = layui.tabletree,
|
||||
common = layui.common,
|
||||
table = layui.table;
|
||||
|
||||
var obj = {
|
||||
//table渲染封装里面有字段权限
|
||||
rendertable: function (options) {
|
||||
var serchHeight = parseInt(60 + ($(".table-search-fieldset").height() || 0));
|
||||
var defaults = {
|
||||
elem: '#currentTableId',//主键
|
||||
toolbar: '#toolbarDemo',//工具栏
|
||||
defaultToolbar: ['filter', 'exports', 'print'],//默认工具栏
|
||||
search: true,//搜索按钮
|
||||
method: 'get',//请求方法
|
||||
cellMinWidth: 100,//最小宽度
|
||||
limit: 10,//每页数据 默认
|
||||
limits: [10, 20, 30, 40, 50],
|
||||
id:'currentTableId',
|
||||
height: 'full-' + serchHeight,
|
||||
loading: false,
|
||||
autoSort: false,
|
||||
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||
layout: ['skip', 'prev', 'page', 'next', 'limit', 'count'] //自定义分页布局
|
||||
,curr: 1 //设定初始在第 1 页
|
||||
, groups: 3 //只显示 1 个连续页码
|
||||
, first: false //不显示首页
|
||||
, last: false //不显示尾页
|
||||
},
|
||||
authorizeFields: true, // 字段权限开关
|
||||
autoColumnWidth: true,
|
||||
overflow: { // 默认所有表格都超出
|
||||
type: 'tips'
|
||||
, hoverTime: 300 // 悬停时间,单位ms, 悬停 hoverTime 后才会显示,默认为 0
|
||||
, color: 'black' // 字体颜色
|
||||
, bgColor: 'white' // 背景色
|
||||
, header: true, // 表头支持 overflow
|
||||
total: true // 合计行支持 overflow
|
||||
},
|
||||
contextmenu: {
|
||||
header: [
|
||||
{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '导出excel',
|
||||
icon: 'layui-icon layui-icon-download-circle',
|
||||
click: function () {
|
||||
soulTable.export(this.id)
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '重载表格',
|
||||
icon: 'layui-icon layui-icon-refresh-1',
|
||||
click: function () {
|
||||
table.reload(this.id)
|
||||
}
|
||||
}
|
||||
],
|
||||
// 表格内容右键菜单配置
|
||||
body: [
|
||||
{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
}
|
||||
],
|
||||
// 合计栏右键菜单配置
|
||||
total: [{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
}]
|
||||
},
|
||||
excel: {
|
||||
filename: '表格信息' + new Date().formatDate() + '.xlsx',
|
||||
},
|
||||
request: {
|
||||
pageName: 'page' //页码的参数名称,默认:page
|
||||
, limitName: 'rows' //每页数据量的参数名,默认:limit
|
||||
},
|
||||
parseData: function (res) { //res 即为原始返回的数据
|
||||
return {
|
||||
"code": res.state, //解析接口状态
|
||||
"msg": res.message, //解析提示文本
|
||||
"count": res.count, //解析数据长度
|
||||
"data": res.data //解析数据列表
|
||||
};
|
||||
}
|
||||
};
|
||||
var doneCallback = options.done;
|
||||
var options = $.extend(defaults, options);
|
||||
if (document.body.clientWidth < 500 && !!options.defaultToolbar) {
|
||||
for (var i = 0; i < options.defaultToolbar.length; i++) {
|
||||
if (options.defaultToolbar[i] == "print") {
|
||||
options.defaultToolbar.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.search) {
|
||||
options.defaultToolbar = !options.defaultToolbar ? [] : options.defaultToolbar;
|
||||
options.defaultToolbar.push({
|
||||
title: '搜索',
|
||||
layEvent: 'TABLE_SEARCH',
|
||||
icon: 'layui-icon-search'
|
||||
});
|
||||
}
|
||||
//ie缓存问题
|
||||
options.url = common.urlAddTime(options.url);
|
||||
//字段权限
|
||||
if (options.authorizeFields) {
|
||||
options.cols = common.tableAuthorizeFields(options.cols);
|
||||
}
|
||||
options.done = function (res, curr, count) {
|
||||
//关闭加载
|
||||
//layer.closeAll('loading');
|
||||
//固定列引发的问题
|
||||
//table.resize(options.id);
|
||||
//obj.tableResize(options.id);
|
||||
if (doneCallback) {
|
||||
doneCallback(res, curr, count);
|
||||
}
|
||||
soulTable.render(this);
|
||||
table.resize();
|
||||
};
|
||||
return table.render(options);
|
||||
},
|
||||
//table刷新
|
||||
reloadtable: function (options) {
|
||||
layer.load(0, { shade: false });
|
||||
var defaults = {
|
||||
elem: 'currentTableId',//主键
|
||||
page: true,//分页参数
|
||||
curr: 1,//当前页
|
||||
where: {}
|
||||
};
|
||||
var options = $.extend(defaults, options);
|
||||
options.where.time = new Date().Format("yyyy-MM-dd hh:mm:ss");
|
||||
if (options.page) {
|
||||
if (options.page == true) {
|
||||
table.reload(options.elem, {
|
||||
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||
layout: ['skip', 'prev', 'page', 'next', 'limit', 'count'] //自定义分页布局
|
||||
, groups: 3 //只显示 1 个连续页码
|
||||
, first: false //不显示首页
|
||||
, last: false, //不显示尾页
|
||||
curr: options.curr
|
||||
}
|
||||
, where: options.where
|
||||
}, 'data');
|
||||
}
|
||||
else {
|
||||
table.reload(options.elem, {
|
||||
page: options.page
|
||||
, where: options.where
|
||||
}, 'data');
|
||||
}
|
||||
}
|
||||
else {
|
||||
//执行搜索重载
|
||||
table.reload(options.elem, {
|
||||
where: options.where
|
||||
}, 'data');
|
||||
}
|
||||
//关闭加载
|
||||
layer.closeAll('loading');
|
||||
},
|
||||
//tabletree渲染封装里面有字段权限
|
||||
rendertreetable: function (options) {
|
||||
//样式不协调,先不加
|
||||
var serchHeight = parseInt(60 + ($(".table-search-fieldset").height() || 0));
|
||||
var defaults = {
|
||||
elem: '#currentTableId',//主键
|
||||
toolbar: '#toolbarDemo',//工具栏
|
||||
defaultToolbar: ['filter', 'exports', 'print'],//默认工具栏
|
||||
search: true,//搜索按钮
|
||||
loading: false,
|
||||
treeIdName: 'F_Id', // id字段名称
|
||||
treePidName: 'F_ParentId', // pid字段名称
|
||||
filter:true,
|
||||
treeColIndex: 1,
|
||||
treeSpid: 0,
|
||||
limit: 99999,//每页数据 默认
|
||||
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||
layout: ['count'] //自定义分页布局
|
||||
, first: false //不显示首页
|
||||
, last: false //不显示尾页
|
||||
},
|
||||
height: 'full-' + serchHeight,
|
||||
method: 'get',//请求方法
|
||||
cellMinWidth: 60,//最小宽度
|
||||
authorizeFields: true, // 字段权限开关
|
||||
overflow: { // 默认所有表格都超出
|
||||
type: 'tips'
|
||||
, hoverTime: 300 // 悬停时间,单位ms, 悬停 hoverTime 后才会显示,默认为 0
|
||||
, color: 'black' // 字体颜色
|
||||
, bgColor: 'white' // 背景色
|
||||
, header: true, // 表头支持 overflow
|
||||
total: true // 合计行支持 overflow
|
||||
},
|
||||
contextmenu: {
|
||||
header: [
|
||||
{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '导出excel',
|
||||
icon: 'layui-icon layui-icon-download-circle',
|
||||
click: function () {
|
||||
soulTable.export(this.id)
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '重载表格',
|
||||
icon: 'layui-icon layui-icon-refresh-1',
|
||||
click: function () {
|
||||
table.reload(this.id)
|
||||
}
|
||||
}
|
||||
],
|
||||
// 表格内容右键菜单配置
|
||||
body: [
|
||||
{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
}
|
||||
],
|
||||
// 合计栏右键菜单配置
|
||||
total: [{
|
||||
name: '复制',
|
||||
icon: 'layui-icon layui-icon-template',
|
||||
click: function (obj) {
|
||||
soulTable.copy(obj.text)
|
||||
layer.msg('复制成功!')
|
||||
}
|
||||
}]
|
||||
},
|
||||
excel: {
|
||||
filename: '表格信息' + new Date().formatDate() + '.xlsx',
|
||||
},
|
||||
parseData: function (res) { //res 即为原始返回的数据
|
||||
return {
|
||||
"code": res.state, //解析接口状态
|
||||
"msg": res.message, //解析提示文本
|
||||
"count": res.count, //解析数据长度
|
||||
"data": res.data //解析数据列表
|
||||
};
|
||||
}
|
||||
};
|
||||
var doneCallback = options.done;
|
||||
var options = $.extend(defaults, options);
|
||||
if (document.body.clientWidth < 500 && !!options.defaultToolbar) {
|
||||
for (var i = 0; i < options.defaultToolbar.length; i++) {
|
||||
if (options.defaultToolbar[i] == "print") {
|
||||
options.defaultToolbar.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
//搜索框按钮
|
||||
if (options.search) {
|
||||
options.defaultToolbar = !options.defaultToolbar ? [] : options.defaultToolbar;
|
||||
options.defaultToolbar.push({
|
||||
title: '搜索',
|
||||
layEvent: 'TABLE_SEARCH',
|
||||
icon: 'layui-icon-search'
|
||||
});
|
||||
}
|
||||
//ie缓存问题
|
||||
options.url = common.urlAddTime(options.url);
|
||||
//字段权限
|
||||
if (options.authorizeFields) {
|
||||
options.cols = common.tableAuthorizeFields(options.cols);
|
||||
}
|
||||
options.done = function (res, curr, count) {
|
||||
//关闭加载
|
||||
//layer.closeAll('loading');
|
||||
if (doneCallback) {
|
||||
doneCallback(res, curr, count);
|
||||
}
|
||||
table.resize();
|
||||
};
|
||||
tabletree.render(options);
|
||||
return options;
|
||||
},
|
||||
//table行点击事件及按钮显示控制
|
||||
tableRowClick: function (type, tableFilter, tableId, oneList, moreList, clickfunction) {
|
||||
var oneList = !!oneList ? oneList : [];
|
||||
var moreList = !!moreList ? moreList : [];
|
||||
//type是checkbox或者radio
|
||||
$(document).on("click", ".layui-table-body table.layui-table tbody tr", function () {
|
||||
var obj = event ? event.target : event.srcElement;
|
||||
// 获取事件名称
|
||||
var tag = obj.tagName;
|
||||
var index = $(this).attr('data-index');
|
||||
var tableBox = $(this).parents('.layui-table-box');
|
||||
//存在固定列
|
||||
if (tableBox.find(".layui-table-fixed.layui-table-fixed-l").length > 0) {
|
||||
tableDiv = tableBox.find(".layui-table-fixed.layui-table-fixed-l");
|
||||
} else {
|
||||
tableDiv = tableBox.find(".layui-table-body.layui-table-main");
|
||||
}
|
||||
var checkCell = tableDiv.find("tr[data-index=" + index + "]").find("td div.laytable-cell-" + type + " div.layui-form-" + type + " I");
|
||||
if (checkCell.length > 0) {
|
||||
//div和td生效
|
||||
if (tag == 'DIV' || tag == "TD") {
|
||||
checkCell.click();
|
||||
}
|
||||
}
|
||||
});
|
||||
//对td的单击事件进行拦截停止,防止事件冒泡再次触发上述的单击事件(Table的单击行事件不会拦截,依然有效)
|
||||
$(document).on("click", "td div.laytable-cell-" + type + " div.layui-form-" + type + "", function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
table.on('row(' + tableFilter+')', function (obj) {
|
||||
obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
|
||||
if (clickfunction) {
|
||||
clickfunction(obj);
|
||||
}
|
||||
})
|
||||
//多选框监听
|
||||
table.on(type+'(' + tableFilter + ')', function (obj) {
|
||||
//控制按钮
|
||||
var data = table.checkStatus(tableId).data;
|
||||
var buttonHumanized = sessionStorage.getItem('watercloudButtonHumanized');
|
||||
if (!buttonHumanized) {
|
||||
if (obj.type == "all") {
|
||||
if (obj.checked && table.cache[tableId].length != 0) {
|
||||
if (table.cache[tableId].length > 1) {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (data.length > 1) {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
}
|
||||
else if (data.length == 1) {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').addClass("layui-hide");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < oneList.length; i++) {
|
||||
$('[name="' + oneList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
for (var i = 0; i < moreList.length; i++) {
|
||||
$('[name="' + moreList[i] + '"]').removeClass("layui-hide");
|
||||
}
|
||||
}
|
||||
table.resize();
|
||||
});
|
||||
},
|
||||
}
|
||||
exports("commonTable", obj);
|
||||
});
|
Reference in New Issue
Block a user