Browse Source

修复在使用了查询表单及自动刷新功能时查询参数不生效的BUG

master
jacky6024 7 years ago
parent
commit
6923413771
  1. 2
      ureport2-console/src/main/resources/ureport-asserts/js/preview.bundle.js
  2. 4
      ureport2-console/src/main/resources/ureport-html/html-preview.html
  3. 8
      ureport2-core/src/main/java/com/bstek/ureport/definition/searchform/SelectInputComponent.java
  4. 75
      ureport2-js/src/preview.js

2
ureport2-console/src/main/resources/ureport-asserts/js/preview.bundle.js

File diff suppressed because one or more lines are too long

4
ureport2-console/src/main/resources/ureport-html/html-preview.html

@ -109,10 +109,10 @@ window._server="${contextPath}/ureport";
window.formElements=[]; window.formElements=[];
$(document).ready(function(){ $(document).ready(function(){
buildPaging("${file}",${pageIndex},${totalPage},"${customParameters}","${_t}"); buildPaging(${pageIndex},${totalPage});
#if($intervalRefreshValue>0) #if($intervalRefreshValue>0)
_intervalRefresh($intervalRefreshValue,"${file}",$totalPage,"${customParameters}"); _intervalRefresh($intervalRefreshValue,$totalPage);
#end #end
_buildChartDatas($chartDatas); _buildChartDatas($chartDatas);
${searchFormJs} ${searchFormJs}

8
ureport2-core/src/main/java/com/bstek/ureport/definition/searchform/SelectInputComponent.java

@ -50,12 +50,18 @@ public class SelectInputComponent extends InputComponent {
String selected=value.equals(pvalue) ? "selected" : ""; String selected=value.equals(pvalue) ? "selected" : "";
sb.append("<option value='"+value+"' "+selected+">"+label+"</option>"); sb.append("<option value='"+value+"' "+selected+">"+label+"</option>");
} }
if(pvalue.equals("")){
sb.append("<option value='' selected></option>");
}
}else{ }else{
for(Option option:options){ for(Option option:options){
String value=option.getValue(); String value=option.getValue();
String selected=value.equals(pvalue) ? "selected" : ""; String selected=value.equals(pvalue) ? "selected" : "";
sb.append("<option value='"+value+"' "+selected+">"+option.getLabel()+"</option>"); sb.append("<option value='"+value+"' "+selected+">"+option.getLabel()+"</option>");
} }
if(pvalue.equals("")){
sb.append("<option value='' selected></option>");
}
} }
sb.append("</select>"); sb.append("</select>");
return sb.toString(); return sb.toString();

75
ureport2-js/src/preview.js

@ -102,6 +102,9 @@ $(document).ready(function(){
}); });
}); });
window._currentPageIndex=null;
window._totalPage=null;
window.buildLocationSearchParameters=function(exclude){ window.buildLocationSearchParameters=function(exclude){
let urlParameters=window.location.search; let urlParameters=window.location.search;
if(urlParameters.length>0){ if(urlParameters.length>0){
@ -135,7 +138,11 @@ window.buildLocationSearchParameters=function(exclude){
} }
let p='?'; let p='?';
for(let key in parameters){ for(let key in parameters){
p+='&'+key+'='+parameters[key]; if(p==='?'){
p+=key+'='+parameters[key];
}else{
p+='&'+key+'='+parameters[key];
}
} }
return p; return p;
}; };
@ -168,14 +175,21 @@ function buildPrintStyle(paper){
return style; return style;
}; };
window.buildPaging=function(file,pageIndex,totalPage,customParameters,tools){ window.buildPaging=function(pageIndex,totalPage){
if(totalPage===0){ if(totalPage===0){
return; return;
} }
if(!window._currentPageIndex){
window._currentPageIndex=pageIndex;
}
pageIndex=window._currentPageIndex;
if(!window._totalPage){
window._totalPage=totalPage;
}
const pageSelector=$('#pageSelector'); const pageSelector=$('#pageSelector');
pageSelector.change(function(){ pageSelector.change(function(){
const parameters=window.buildLocationSearchParameters('_i'); const parameters=window.buildLocationSearchParameters('_i');
//let url=window._server+`/preview?_u=${file}&_i=${$(this).val()}&_t=${tools}&${customParameters}`;
let url=window._server+`/preview${parameters}&_i=${$(this).val()}`; let url=window._server+`/preview${parameters}&_i=${$(this).val()}`;
window.open(url,'_self'); window.open(url,'_self');
}); });
@ -184,10 +198,11 @@ window.buildPaging=function(file,pageIndex,totalPage,customParameters,tools){
if(totalPage===1){ if(totalPage===1){
return; return;
} }
const parameters=window.buildLocationSearchParameters('_i');
const pagingContainer=$('#pageLinkContainer'); const pagingContainer=$('#pageLinkContainer');
pagingContainer.empty();
if(pageIndex>1){ if(pageIndex>1){
let url=window._server+`/preview?_u=${file}&_t=${tools}`; let url=window._server+`/preview${parameters}&_i=${pageIndex-1}`;
url+=`&_i=${pageIndex-1}&${customParameters}`;
const prevPage=$(`<button type="button" class="btn btn-link btn-sm">上一页</button>`); const prevPage=$(`<button type="button" class="btn btn-link btn-sm">上一页</button>`);
pagingContainer.append(prevPage); pagingContainer.append(prevPage);
prevPage.click(function(){ prevPage.click(function(){
@ -195,8 +210,7 @@ window.buildPaging=function(file,pageIndex,totalPage,customParameters,tools){
}); });
} }
if(pageIndex<totalPage){ if(pageIndex<totalPage){
let url=window._server+`/preview?_u=${file}&_t=${tools}`; let url=window._server+`/preview${parameters}&_i=${pageIndex+1}`;
url+=`&_i=${pageIndex+1}&${customParameters}`;
const nextPage=$(`<button type="button" class="btn btn-link btn-sm">下一页</button>`); const nextPage=$(`<button type="button" class="btn btn-link btn-sm">下一页</button>`);
pagingContainer.append(nextPage); pagingContainer.append(nextPage);
nextPage.click(function(){ nextPage.click(function(){
@ -205,31 +219,27 @@ window.buildPaging=function(file,pageIndex,totalPage,customParameters,tools){
} }
}; };
window._intervalRefresh=function(value,file,totalPage,customParameters){ window._intervalRefresh=function(value,totalPage){
if(!value){ if(!value){
return; return;
} }
window._totalPage=totalPage;
const second=value*1000; const second=value*1000;
setTimeout(function(){ setTimeout(function(){
_refreshData(customParameters,file,totalPage,second); _refreshData(second);
},second); },second);
}; };
function _refreshData(second){
window._currentPageIndex=1; const params=buildLocationSearchParameters('_i');
let url=window._server+`/preview/loadData${params}`;
function _refreshData(customParameters,file,totalPage,second){ const totalPage=window._totalPage;
let url=window._server+"/preview/loadData?_u="+file+"";
if(customParameters){
url+="&"+customParameters;
}
if(totalPage>0){ if(totalPage>0){
if(window._currentPageIndex>totalPage){ if(window._currentPageIndex>totalPage){
window._currentPageIndex=1; window._currentPageIndex=1;
} }
url+="&_i="+window._currentPageIndex+""; url+="&_i="+window._currentPageIndex+"";
$("#pageSelector").val(window._currentPageIndex); $("#pageSelector").val(window._currentPageIndex);
window._currentPageIndex++;
} }
$.ajax({ $.ajax({
url, url,
@ -237,10 +247,13 @@ function _refreshData(customParameters,file,totalPage,second){
success:function(report){ success:function(report){
const tableContainer=$(`#_ureport_table`); const tableContainer=$(`#_ureport_table`);
tableContainer.empty(); tableContainer.empty();
window._totalPage=report.totalPage;
tableContainer.append(report.content); tableContainer.append(report.content);
_buildChartDatas(report.chartDatas); _buildChartDatas(report.chartDatas);
buildPaging(window._currentPageIndex,window._totalPage);
window._currentPageIndex++;
setTimeout(function(){ setTimeout(function(){
_refreshData(customParameters,file,totalPage,second); _refreshData(second);
},second); },second);
}, },
error:function(response){ error:function(response){
@ -313,11 +326,13 @@ window.submitSearchForm=function(file,customParameters){
url, url,
type:'POST', type:'POST',
success:function(report){ success:function(report){
window._currentPageIndex=1;
const tableContainer=$(`#_ureport_table`); const tableContainer=$(`#_ureport_table`);
tableContainer.empty(); tableContainer.empty();
tableContainer.append(report.content); tableContainer.append(report.content);
_buildChartDatas(report.chartDatas); _buildChartDatas(report.chartDatas);
const totalPage=report.totalPage; const totalPage=report.totalPage;
window._totalPage=totalPage;
if(pageSelector.length>0){ if(pageSelector.length>0){
pageSelector.empty(); pageSelector.empty();
for(let i=1;i<=totalPage;i++){ for(let i=1;i<=totalPage;i++){
@ -326,27 +341,7 @@ window.submitSearchForm=function(file,customParameters){
const pageIndex=report.pageIndex || 1; const pageIndex=report.pageIndex || 1;
pageSelector.val(pageIndex); pageSelector.val(pageIndex);
$('#totalPageLabel').html(totalPage); $('#totalPageLabel').html(totalPage);
const urlParameters=window.buildLocationSearchParameters('_i'); buildPaging(pageIndex,totalPage);
const pagingContainer=$('#pageLinkContainer');
pagingContainer.empty();
if(pageIndex>1){
let url=window._server+`/preview`+urlParameters;
url+=`&_i=${pageIndex-1}`;
const prevPage=$(`<button type="button" class="btn btn-link btn-sm">上一页</button>`);
pagingContainer.append(prevPage);
prevPage.click(function(){
window.open(url,'_self');
});
}
if(pageIndex<totalPage){
let url=window._server+`/preview`+urlParameters;
url+=`&_i=${pageIndex+1}`;
const nextPage=$(`<button type="button" class="btn btn-link btn-sm">下一页</button>`);
pagingContainer.append(nextPage);
nextPage.click(function(){
window.open(url,'_self');
});
}
} }
}, },
error:function(response){ error:function(response){

Loading…
Cancel
Save