Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

87 lines
3.1 KiB

/**
* Created by Jacky.Gao on 2017-01-25.
*/
import Tool from './Tool.js';
import {tableToXml} from '../Utils.js';
import {alert} from '../MsgBox.js';
import {resetDirty} from "../Utils";
export default class PreviewTool extends Tool{
execute(){
}
buildButton(){
const group=$(`<div class="btn-group"></div>`);
const mainBtn=$(`<button type="button" class="btn btn-default dropdown-toggle" style="border:none;border-radius:0;background: #f8f8f8;padding: 6px 5px;" data-toggle="dropdown" title="${window.i18n.tools.preview.preview}">
<i class="ureport ureport-preview" style="color: #0e90d2;"></i>
<span class="caret"></span>
</button>`);
const ul=$(`<ul class="dropdown-menu" role="menu"></ul>`);
const preview=$(`<li>
<a href="###">
<i class="ureport ureport-preview" style="color: #0e90d2;"></i> ${window.i18n.tools.preview.view}
</a>
</li>`);
ul.append(preview);
const _this=this;
preview.click(function(){
const content=tableToXml(_this.context);
if(window._reportFile){
$.ajax({
url:window._server+"/designer/saveReportFile",
data:{content,file:window._reportFile},
type:'POST',
success:function(){
resetDirty();
_this.doPreview();
},
error:function(response){
if(response && response.responseText){
alert("服务端错误:"+response.responseText+"");
}else{
alert(`${window.i18n.tools.save.failSave}`);
}
}
});
}
});
const pagingPreview=$(`<li>
<a href="###">
<i class="glyphicon glyphicon-search" style="color: #0e90d2;"></i> 预览
</a>
</li>`);
ul.append(pagingPreview);
pagingPreview.click(function(){
// _this.doPreview(true);
_this.doPreview(true);
});
group.append(mainBtn);
group.append(ul);
return group;
}
doPreview(withPaging){
// let targetUrl=window._server+"/preview?_u=p";
let targetUrl=window._server+"/preview?_u="+ withPaging ? "p" : window._reportFile;
// if(withPaging){
// targetUrl+='&_i=1&_r=1';
// }
const content=tableToXml(this.context);
$.ajax({
url:window._server+"/designer/savePreviewData",
type:'POST',
data:{content},
success:function(){
let newWindow=window.open(targetUrl,"_blank");
newWindow.focus();
},
error:function(){
alert(`${window.i18n.tools.preview.previewFail}`);
}
});
}
getTitle(){
return `${window.i18n.tools.preview.preview}`;
}
getIcon(){
return `<i class="ureport ureport-preview" style="color: #0e90d2;"></i>`;
}
}