明霞山资源网 Design By www.htccd.com
前言
在项目开发过程中,特别是OA类软件,会针对邮件/待办/公告等模块在主页面进行快捷查看的元件展示要求,类似效果如下
"text-align: center">
"text-align: center">
"text-align: center">
"htmlcode">
<div class="cellheadcontainer">
<span class="celltitletext">{{elementtitle}}</span>
<div class="celltitleop">
<a style="color:white" class="morebtn" onclick="OpenMore('{{elementmoreurl}}')">更多</a>
</div>
</div>
<div class="cellcontentcontainer">
{{#data}}
<div class="notciecell" onclick="OpenDetail('{{title}}')">
<div class="noticeleft">
<span class="noticetitle noticeindex">{{index}}</span>
<span class="noticetitle">{{title}}</span>
</div>
<div class="noticeright">
<span class="noticetip">{{publishuname}}</span>
<span class="noticetip">{{publishdate}}</span>
</div>
</div>
{{/data}}
</div>
<script>
var noticeid = "{{elementid}}";
function OpenMore(url) {
OpenTopDialog( '消息通知列表', url, 600, 800, BindNotcieList)
}
function BindNotcieList() {
CommonRefresh(noticeid);
}
function OpenDetail(title) {
OpenTopDialog('消息详情', "frame/demo/notice/noticeDetail", 600, 800, BindNotcieList, title)
}
</script>
主页面模板渲染
主要是针对当前配置的模板进行分组,渲染每行每列的元件,模板文字内容在后端处理获取完成,前端调用Mustache.render方法进行数据的填充,同时需要注意针对每个元件定义局部刷新的方法,避免操作完毕后针对主页面整体刷新
<body>
<div id="app">
<div id="maincontainer">
<div class="rowcontainer">
<div class="columncontainer">
</div>
</div>
</div>
</div>
<script>
loadcss(getRootPath() + "theme/" + GetSystemTheme() + "/main.css", true)
</script>
<script>
var pageData = {
ElementList: [],
groupCount: 0,
rowElementCount: 2
};
$(function () {
BindElement();
})
function BindElement() {
var param = {};
CloudPost(param, GetRootPath() + "frame/extend/element/findMainPageElementList", function (res) {
if (res.code == 0) {
pageData.ElementList = res.data;
var rowelementcount = pageData.rowElementCount
var groupcount = pageData.ElementList.length % rowelementcount == 0 "";
for (var i = 0; i < groupcount; i++) {
var RowHtml = " <div class='rowcontainer'>";
for (var j = 0; j < rowelementcount && i * groupcount + j < pageData.ElementList.length; j++) {
var id = "row_" + (i + 1) + "column_" + (j + 1);
var ColumnHtml = "<div class='columncontainer' id='" + id + "'>"
ColumnHtml += "</div>"
RowHtml += ColumnHtml;
}
RowHtml += "</div>";
MainHtml += RowHtml;
}
$("#maincontainer").html(MainHtml);
for (var i = 0; i < groupcount; i++) {
for (var j = 0; j < rowelementcount && i * groupcount + j < pageData.ElementList.length; j++) {
var index = i * rowelementcount + j
var element = pageData.ElementList[index];
var id = "row_" + (i + 1) + "column_" + (j + 1);
pageData.ElementList[index]["ElementID"] = id;
var renderdata = {
elementtitle: element.ElementName,
elementmoreurl: element.ElementMoreUrl,
elementid: id
}
//刷新事件存储
pageData.ElementList[index]["RefreshEvent"] = function () {
//请求数据
CloudPost({}, GetRootPath() + element.ElementDataUrl,
function (res) {
if (res.code == 0) {
//合并json
for (var attr in res) {
renderdata[attr] = res[attr];
}
var htmlcontent = Mustache.render(element.TemplatContent, renderdata);
$("#" + id).html(htmlcontent);
}
})
}
//请求数据
CommonRefresh(id);
}
}
} else {
OpenFail(res.data)
}
})
}
function CommonRefresh(id) {
$(pageData.ElementList).each(function () {
if (this.ElementID == id) {
this.RefreshEvent();
}
})
}
</script>
</body>
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。