var data = {
gridColumns: ['name', 'power'],
gridData: [
{ name: 'Chuck Norris', power: Infinity },
{ name: 'Bruce Lee', power: 9000 },
{ name: 'Jackie Chan', power: 7000 },
{ name: 'Jet Li', power: 8000 }
]
};
DataGrid: {
xml: `<table id='table'>
<Thead id='thead'/>
<Tbody id='tbody'/>
</table>`,
fun: function (sys, items, opts) {
function setValue(data) {
items.thead.val(data.gridColumns);
items.tbody.val(data.gridColumns, data.gridData);
}
function filter(filterKey) {
// 过滤函数
}
return { val: setValue, filter: filter };
}
}
Thead: {
xml: `<thead id='thead'>
<tr id='tr'/>
</thead>`,
fun: function (sys, items, opts) {
function setValue(value) {
sys.tr.children().call("remove");
data.forEach(item => sys.tr.append("Th").value().val(item));
}
return { val: setValue };
}
}
Th: {
css: "#active { color: #fff; } #active #arrow { opacity: 1; } #active #key { color: #fff; }\
#arrow { display: inline-block; vertical-align: middle; width: 0; height: 0; margin-left: 5px; opacity: 0.66; }\
#asc { border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 4px solid #fff;}\
#dsc { border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid #fff; }",
xml: "<th id='th'>\
<span id='key'/><span id='arrow'/>\
</th>",
fun: function (sys, items, opts) {
var order = "#asc";
this.watch("sort", function (e, key, order) {
sys.key.text().toLowerCase() == key || sys.th.removeClass("#active");
});
this.on("click", function (e) {
sys.th.addClass("#active");
sys.arrow.removeClass(order);
order = order == "#asc" ? "#dsc" : "#asc";
sys.arrow.addClass(order).notify("sort", [sys.key.text().toLowerCase(), order]);
});
sys.arrow.addClass("#asc");
return { val: sys.key.text };
}
}
Tbody: {
xml: `<tbody id='tbody'/>`,
fun: function (sys, items, opts) {
function setValue(gridColumns, gridData) {
sys.tbody.children().call("remove");
gridData.forEach(data =>
tr = sys.tbody.append("tr");
gridColumns.forEach(key => tr.append("td").text(data[key]));
));
}
return { val: setValue };
}
}
Sort: {
fun: function (sys, items, opts) {
var sortKey, sortOrder;
this.watch("sort", function (e, key, order) {
sortKey = key, sortOrder = order;
this.trigger("update");
});
return function (data) {
return sortKey ? data.slice().sort(function (a, b) {
a = a[sortKey], b = b[sortKey];
return (a === b ? 0 : a > b ? 1 : -1) * (sortOrder == "#asc" ? 1 : -1);
}) : data;
};
}
}
DataGrid: {
xml: `<table id='table'>
<Thead id='thead'/>
<Tbody id='tbody'/>
<Sort id='sort'/>
</table>`,
fun: function (sys, items, opts) {
var data = {gridColumns: [], gridData: []};
function setValue(value) {
data = value;
items.thead.val(data.gridColumns);
items.tbody.val(data.gridColumns, data.gridData);
}
function filter(filterKey) {
// 过滤函数
}
this.on("update", function() {
items.tbody.val(items.sort(data.gridData));
});
return { val: setValue, filter: filter };
}
}
Filter: {
fun: function (sys, items, opts) {
var filterKey = "";
this.watch("filter", function (e, key) {
filterKey = key.toLowerCase();
this.trigger("update");
});
return function (data) {
return data.filter(function (row) {
return Object.keys(row).some(function (key) {
return String(row[key]).toLowerCase().indexOf(filterKey) > -1;
});
});
};
}
}
DataGrid: {
css: `#table { border: 2px solid #42b983; border-radius: 3px; background-color: #fff; }
#table th { background-color: #42b983; color: rgba(255,255,255,0.66); cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#table td { background-color: #f9f9f9; }
#table th, #table td { min-width: 120px; padding: 10px 20px; }`,
xml: `<table id='table'>
<Thead id='thead'/>
<Tbody id='tbody'/>
<Sort id='sort'/>
<Filter id='filter'/>
</table>`,
map: { msgscope: true },
fun: function (sys, items, opts) {
var data = {gridColumns: [], gridData: []};
function setValue(value) {
data = value;
items.thead.val(data.gridColumns);
items.tbody.val(data.gridColumns, data.gridData);
}
function filter(filterKey) {
sys.table.notify("filter", filterKey);
}
this.on("update", function() {
items.tbody.val(items.filter(items.sort(data.gridData)));
});
return { val: setValue, filter: filter };
}
}
Index: {
css: "#index { font-family: Helvetica Neue, Arial, sans-serif; font-size: 14px; color: #444; }\
#search { margin: 8px 0; }",
xml: "<div id='index'>\
Search <input id='search'/>\
<Table id='table'/>\
</div>",
fun: function (sys, items, opts) {
items.table.val(data);
sys.search.on("input", e => items.table.filter(sys.search.prop("value")));
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有