//BBQ使用的变量声明
var bbqQueryCondition = {};
//当前页码
var currentPageIndex;
//首次加载列表标记
var firstLoad = true;
//定义全局变量
var termId = "";
//"类型"选择
var parentTermId;
//"认证项目"
var childTermId;
//点击"认证类型"时的flag标示
var flag = true;
/**
* 界面ready时默认操作
* 三个主方法可以再调用具体细分的方法
*/
$(function() {
//页面UI初始化
initUI();
// 添加页面监听
initListener();
});
/**
* 界面布局及样式调整
* <p>
* 界面的大部分样式已经在CSS中定义好,这里主要是添加一些需要JS控制的特殊样式<br>
* 比如表格中底色单行深双行浅等
*/
function initUI() {
//读取参数,优先取BBQ中参数
bbqQueryCondition = NAVI.bbq.getState();
//从BBQ中获取传入到action侧的termId, 如果没有说明是第一次访问"考试大纲"
if(typeof bbqQueryCondition["termId"] == "undefined"){
termId = "defaultAllType";
}else{
termId = bbqQueryCondition["termId"];
}
currentPageIndex = bbqQueryCondition["beginPage"] || 0;
//获取bbq中存取的存入的childTerm和ParentTermId
childTermId = bbqQueryCondition["childTermId"];
parentTermId = bbqQueryCondition["parentTermId"];
if(typeof bbqQueryCondition["parentTermId"] == "undefined"){
parentTermId = "defaultAllType";
}
//给"认证类型"添加样式
$("#"+parentTermId).addClass("selected");
//依据"类型"的termId来动态获取
getexamOutlineChildTerm(parentTermId);
//给"认证项目"添加样式
if(typeof bbqQueryCondition["childTermId"] == "undefined" ){
childTermId = "defaultAll";
}
$("#exam_outline_records").empty('');
//如果用户选择的是"认证项目"中的全部,则需要传递其父termId,作为参数传递到action侧查询数据
if(termId == "defaultAll"){
termId = parentTermId;
}
queryData(termId);
}
//点击页面考试大纲的标题转向到其详细页面。
function loadExamOutlineDetail(nodeId){
NAVI.forward('spte-exam-outline-show',{nodeId:nodeId}, true);
}
/**
* 添加页面监听
* <p>
* 比如选择"类型"或者选择"认证"件,重新刷新页面数据<br>
* 由于页面数据是实时刷新的,很多时候需要对某一类元素添加事件,<br>
* 那么后加入的元素可能未能绑定。<br>
* 所以这里的事件绑定,对于一开始就存在界面上的元素,使用本身的绑定函数<br>
* 对于动态添加的元素,使用$.live绑定事件。
*/
function initListener(){
//监听页面"类型"事件
$("a[name='resourceType']").die().live("click", function() {
//用户切换"类型"时,需要重新改变
$("a[name='resourceType']").removeClass("selected");
$(this).addClass("selected");
termId = $(this).attr("id");
//切换"类型"后加载列表第一页
currentPageIndex=0;
//向BBQ中存放当前用户选择的"类型"对应的termId;
bbqQueryCondition["termId"] = termId;
bbqQueryCondition["beginPage"] = 0;
//记入所选的"类型"
bbqQueryCondition["parentTermId"] = termId;
parentTermId = termId;
//当用户切换"类型"时,默认"认证类型"选择"全部",记入到BBQ。
if(flag){
childTermId = "defaultAll";
}else{
childTermId = getSelectedChildTermId();
}
if(typeof childTermId == "undefined" || childTermId == ""){
childTermId = "defaultAll";
}else if(childTermId != "defaultAll"){
termId = childTermId;
}
bbqQueryCondition["childTermId"] = childTermId;
bbqQueryCondition["isExamOutlineOrSimExam"] = "examOutline";
NAVI.bbq.pushState(bbqQueryCondition);
//根据"类型",动态的加载"认证类型"的显示
getexamOutlineChildTerm(parentTermId);
//加载列表页面。
queryData(termId);
});
//监听页面"认证项目"事件
$("a[name='certiResType']").die().live("click", function() {
$("a[name='certiResType']").removeClass("selected");
$(this).addClass("selected");
termId = $(this).attr("id");
//切换"认证类型"后加载列表第一页
currentPageIndex=0;
//向BBQ中存放当前用户选择的"类型"对应的termId;
bbqQueryCondition["termId"] = termId;
bbqQueryCondition["beginPage"] = 0;
//向BBQ中记入用户选择的"类型"
bbqQueryCondition["parentTermId"] = getSelectedParentTermId();
//向BBQ中记入用户选择的"认证类型"对应的termId, 用于BBQ回退时样式调整用
bbqQueryCondition["childTermId"] = termId;
childTermId = termId;
bbqQueryCondition["isExamOutlineOrSimExam"] = "examOutline";
NAVI.bbq.pushState(bbqQueryCondition);
if(termId == "defaultAll"){
termId = getSelectedParentTermId();
}
queryData(termId);
});
}
//获取用户选取的"类型"对应的termId
function getSelectedParentTermId(){
var id = "";
$("a[name='resourceType']").each(function(){
if($(this).hasClass("selected")){
id = $(this).attr("id");
}
});
return id;
}
//获取用户选取的"类型"对应的termId
function getSelectedChildTermId(){
var id = "";
$("a[name='certiResType']").each(function(){
if($(this).hasClass("selected")){
id = $(this).attr("id");
}
});
return id;
}
/**
* ajax 异步获取下拉框中需要展现的内容 <传入的参数待定>
*/
function getexamOutlineChildTerm(termId){
var param= '{"termId":"'+termId+'"}';
$.ajaxSetup({cache:true});
$.ajax({
cache: true,
type: "POST",
url: "Certificate!getTermChildByTermId.action",
data: $.parseJSON(param),
dataType: "json",
success: function(childTerms){
$("#eo_sel_type").empty();
var str = "";
$.each(childTerms, function(i, n){
str += "<span style='line-height: 22px;float: left;dispaly: inline-block;'>";
str += "<a href='javascript:void(0)' name='certiResType' id='"+childTerms[i].id+"' value='"+childTerms[i].value+"'>"+childTerms[i].value+"</a>";
str += "</span>";
});
$("#eo_sel_type").append(str);
$("#"+childTermId).addClass("selected");
}
});
}
function queryData(param){
var param= '{"termId":"'+termId+'","isExamOutlineOrSimExam":"examOutline"}';
var lock_screen = new sui.cbb.blockUI();
lock_screen.block(true);
$.ajaxSetup({cache:true});
$.ajax({
cache: true,
type: "POST",
url: "Certificate!getResultTotalRow",
data: $.parseJSON(param),
dataType: "json",
success: function(data){
if(data.totalRow <1){
$("#exam_outline_records").empty();
$("#examOutlinePaging").empty();
var inner = "<ul class='re_container'>";
inner+="<li class=re_content style='color:red;width: 100%;padding-top: 10px;'>"+$("#noData").val()+"</li>";
inner+="</ul>";
$("#exam_outline_records").html(inner);
new sui.cbb.initPaginationByIndex($("#examOutlinePaging"), data.totalRow, 10, parseInt(currentPageIndex),doNothing);
}else{
//cbb分页控件
new sui.cbb.initPaginationByIndex($("#examOutlinePaging"), data.totalRow, 10, parseInt(currentPageIndex),examOutlineCallback);
}
new sui.cbb.blockUI().unBlock();
},
error : function() {
var errorEx = $("#queryError").val();
$("#exam_outline_records").html(errorEx);
new sui.cbb.blockUI().unBlock();
}
});
}
function doNothing(){}
//输出类容
function refreshTable(arrayData){
if(!arrayData){
return false;
}
var strTrData = "<table width='100%' border='0' cellspacing='0' cellpadding='0' style='padding-top: 10px;' id='listTable'>";
for(var i=0 ; i<arrayData.length; i++)
{
strTrData += "<tr><td style='font-size:12px; color:#900; line-height:22px;padding-top:5px;'><a href='javascript:loadExamOutlineDetail(\""+arrayData[i].id+"\")';><span style='color:#900;'>" +encodeHtml( arrayData[i]['name']) + "</span></a></td></tr>";
strTrData += "<tr><td class='intro enterprise_td' title='"+encodeHtml(arrayData[i]['abstracts'])+"'>"+ encodeHtml(arrayData[i]['abstracts']) +"</td></tr>";
}
strTrData += "</table>";
$("#exam_outline_records").empty();
$("#exam_outline_records").append(strTrData);
}
//分页控件之回调函数,其中 currentPage 此变量从0开始递增
function examOutlineCallback(currentPage, pageSize)
{
//判断是否是第一次加载内容。
if(firstLoad) {
firstLoad=false;
}else {
//如果不是第一次加载列表,把查询参数写入BBQ
bbqQueryCondition["termId"] = termId;
bbqQueryCondition["beginPage"] = currentPage;
bbqQueryCondition["isExamOutlineOrSimExam"] = "examOutline";
bbqQueryCondition["childTermId"] = childTermId;
bbqQueryCondition["parentTermId"] = parentTermId;
NAVI.bbq.pushState(bbqQueryCondition);
}
var begin = currentPage * pageSize + 1;
var queryParam={};
queryParam["termId"]=termId;
queryParam["beginPage"]=begin;
queryParam["pageSize"]=pageSize;
queryParam["isExamOutlineOrSimExam"] = "examOutline";
//传入的参数需要待确定
var param= '{"termId":"'+termId+'","isExamOutlineOrSimExam":"examOutline","beginPage":"'+begin+'","pageSize":"'+pageSize+'"}';
$.ajax({
cache: false,
type: "POST",
url: "Certificate!getResultList",
data: queryParam,
dataType: 'json',
success: function(data)
{
//刷新数据展现区域数据
refreshTable(data);
new sui.cbb.blockUI().unBlock();
},
error: function(){
var errorEx = $("#queryError").val();
$("#exam_outline_records").html(errorEx);
new sui.cbb.blockUI().unBlock();
}
});
}
分享到:
相关推荐
下面我们将深入探讨`commander`的使用方法和实例。 ### 1. 安装`commander` 在你的项目中安装`commander`非常简单,只需通过npm执行以下命令: ```bash npm install commander ``` 这将在你的项目中添加`...
- 提供示例数据和使用说明,便于其他研究者或开发者复现和扩展工作。 总的来说,EM算法是统计建模中的重要工具,尤其在处理隐藏变量的问题时非常有用。在MATLAB中实现EM算法,能够提供一个直观且灵活的平台,帮助...
总的来说,EM算法在MATLAB中的实现是一个强大的工具,它允许我们处理含有隐变量的概率模型,而"BBQ_Breakfast"项目则提供了一个具体的应用实例,让我们有机会通过实际代码来学习和应用这一算法。
**2. Option解析** 使用`commander`定义选项非常简单,只需调用`.option()`方法。这个方法不仅可以定义选项,还可以作为选项的文档。下面是一个例子: ```javascript #!/usr/bin/env node /** * Module ...
- **解释**:使用HASH分布键和按`bbq_`字段分区,以实现数据的均匀分布和查询优化。 ##### 2. 多副本建表DDL - **语法示例**: ```sql CREATE TABLE dim_test ( id_int int, caption_varchar varchar(255) ) ...
在IT行业中,编程练习和示例常常用于学习和掌握新的技术或框架。在这个"bbq"项目中,我们看到了一个创建烧烤演示的练习,它涉及到了负责人、卖方和客户这三个角色,这很可能是模拟了一个实际的业务场景,用于学习...
积分管理系统java源码bbq-ddd (DDD编码实践) springboot+ddd分层示例工程 代码目录结构 eg.后端Java代码工程为例: ├─com . company . microservice │ │ │ ├─apis API接口层 │ │ ├─model 视图模型,数据...
显然,请确保具有正确的包含-该插件已通过以下版本进行了测试,但也应与较新的版本一起使用。 jquery-1.4.2.min.js或jquery-1.4.4.min.js jquery.form.js jquery.validate.js bbq.js jquery-ui-1.8.5.custom....
这在使用类似于pushState东西来管理历史记录的单页应用程序中最有用,在加载许多不同路径的过程中,可能会建立资源特定和全局状态的“积压”,这可能有助于在不同的实例之间进行保存。 例如,假设您在mynewsapp....
在Web开发中,AJAX(Asynchronous JavaScript and XML...在提供的`cyzshenzhen-jquery_history_demo-master`压缩包中,可能包含了使用jQuery实现的`hash`管理和AJAX前进后退功能的示例代码,可以作为学习和参考的资源。
订单簿 给定一个CSV文件,其中包含来自股票交易所的一天的市场事件,则该程序将构建一个订单簿。 订单簿包含两个价格水平的有序...该项目使用进行构建,并使用进行单元。 没有单元测试 mkdir build && cd build cmake
2. **MATLAB编程**: 提供的MATLAB程序用于实现BB法,包括对不同国家经济数据的处理和结果展示。文件`main_REA_recessions.m`和`main_REA_countries.m`可能分别用于处理Recession和不同国家的经济数据,而`make_...
2. VLC Media Player:其开发库libvlc提供了API,可以用来解析和播放FLV文件,适用于需要在应用程序中嵌入流媒体播放功能的情况。 3. 开源FLV解析库:如Fluent-FFmpeg、pyFLV等,为开发者提供编程语言级别的接口,...
将lita-lunch添加到您的Lita实例的Gemfile中: gem "lita-lunch" 配置 没有其他配置。 用法 首先,您将添加一些您喜欢的午餐场所: You: lita lunch add the taco hut Lita: taco hut has been added You: lita ...
下面是一个完整的示例代码,用于实现在Android应用中安装存储于`assets`目录下的APK文件: ```java private void installAPK() { String path = Environment.getExternalStorageDirectory().getAbsolutePath() + ...
以下是根据标题和描述中提到的一些翻译方法和示例进行的详细解释: 1. **以主料开头的翻译方法**: - 这种方法强调菜肴的主要食材,通常会包含主料的形状和可能的辅料。例如,“杏仁鸡丁”翻译为“chicken cubes ...
【标题】:“烧烤”实际上可能是指一个名为"BBQ-for-Hire"的在线购物系统,它专注于烧烤相关产品的租赁或销售。这个系统包含了高级管理页面,使得后台操作更为高效便捷。 【描述】:该系统已经进行了更新,提升了...
例如,`tcHeader[0].Attributes.Add("rowspan", "2")`使得第一个单元格跨过两行,而`tcHeader[1].Attributes.Add("colspan", "3")`则让第二个单元格横跨三列。 在示例代码中,开发者创建了一个两行的表头。第一行的...
MySQL 5.7 双向实时同步是一种数据库高可用性和数据一致性的重要技术,它使得两个或多个MySQL实例之间能够实时地互相复制数据。在企业级应用中,这种同步策略常用于构建主主复制架构,以确保即使在一台服务器故障时...