Browse Source
* commit '4fddd7ddba90c857f3bdf451fc72f82d22f276f4': (24 commits) REPORT-15703 【10.0冒烟】设计器删除模板后,上方路径显示问题 KERNEL-445 防止没有添加jXBrowser的用户启动失败 update KERNEL-445 refactor: 使用FineUI实现报表参数配置和模板Web属性面板 KERNEL-445 调试窗口独立出来+增加重载资源文件的按钮 update CHART-3647 更换url REPORT-15409 数据源连接接口BUG REPORT-15207 远程设计另存到本地 换用ScheduledExecutorService schedule来延时发送 REPORT-15332 有一个国际化调用比较早,需要在这边就设置好locale,由于后台GeneralContext默认是China http://www.finedevelop.com:2016/browse/REPORT-15128 lastTime刷新后,会导致功能点上传不上去 REPORT-14787 远程设计另存过程中频繁进行RPC请求 无JIRA任务 提供内置示例 无JIRA任务 设计器可以使用基于Atom组件做界面开发+示例demo REPORT-15185 设计器打开启动画面修改 添加英文版 误提交了测试代码 无JIRA任务 完善提供的web容器API,简化加载jar包中html/js/css的方式 完善一个示例代码 无JIRA任务 添加一个通用的web组件,其他地方暂时用不到 ...final/10.0
Kara
6 years ago
67 changed files with 5256 additions and 49 deletions
@ -0,0 +1,67 @@ |
|||||||
|
package com.fr.design.actions.help; |
||||||
|
|
||||||
|
import com.fr.design.actions.UpdateAction; |
||||||
|
import com.fr.design.dialog.BasicDialog; |
||||||
|
import com.fr.design.dialog.DialogActionAdapter; |
||||||
|
import com.fr.design.mainframe.DesignerContext; |
||||||
|
import com.fr.design.ui.ModernUIPane; |
||||||
|
import com.fr.locale.InterProviderFactory; |
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.Atom; |
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.impl.FineUI; |
||||||
|
|
||||||
|
import java.awt.event.ActionEvent; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-08 |
||||||
|
*/ |
||||||
|
public class FineUIAction extends UpdateAction { |
||||||
|
|
||||||
|
public FineUIAction() { |
||||||
|
setName("FineUI"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void actionPerformed(final ActionEvent e) { |
||||||
|
ModernUIPane<?> pane = new ModernUIPane.Builder<>() |
||||||
|
// .prepare(new ScriptContextAdapter() {
|
||||||
|
// @Override
|
||||||
|
// public void onScriptContextCreated(ScriptContextEvent event) {
|
||||||
|
// JSValue pool = event.getBrowser().executeJavaScriptAndReturnValue("window.Pool");
|
||||||
|
// pool.asObject().setProperty("i18n", new I18n());
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
.withComponent(new AssembleComponent() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public ScriptPath script(RequestClient req) { |
||||||
|
return ScriptPath.build("/com/fr/design/ui/help/demo.js"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Atom[] refer() { |
||||||
|
return new Atom[] {FineUI.KEY}; |
||||||
|
} |
||||||
|
}) |
||||||
|
.build(); |
||||||
|
BasicDialog dialog = pane.showLargeWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { |
||||||
|
@Override |
||||||
|
public void doOk() { |
||||||
|
|
||||||
|
} |
||||||
|
}); |
||||||
|
dialog.setVisible(true); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public static class I18n { |
||||||
|
|
||||||
|
public String i18nText(String key) { |
||||||
|
return InterProviderFactory.getProvider().getLocText(key); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package com.fr.design.mainframe; |
||||||
|
|
||||||
|
import com.fr.event.Event; |
||||||
|
|
||||||
|
public enum DesignAuthorityEventType implements Event<DesignerFrame> { |
||||||
|
|
||||||
|
// 退出权限编辑
|
||||||
|
StartEdit, |
||||||
|
// 进入权限编辑
|
||||||
|
StopEdit; |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
import com.teamdev.jxbrowser.chromium.Browser; |
||||||
|
import com.teamdev.jxbrowser.chromium.BrowserContext; |
||||||
|
import com.teamdev.jxbrowser.chromium.ProtocolService; |
||||||
|
import com.teamdev.jxbrowser.chromium.URLResponse; |
||||||
|
|
||||||
|
import java.io.DataInputStream; |
||||||
|
import java.io.InputStream; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-07 |
||||||
|
*/ |
||||||
|
public class Assistant { |
||||||
|
|
||||||
|
public static URLResponse inputStream2Response(InputStream inputStream, String filePath) throws Exception { |
||||||
|
URLResponse response = new URLResponse(); |
||||||
|
DataInputStream stream = new DataInputStream(inputStream); |
||||||
|
byte[] data = new byte[stream.available()]; |
||||||
|
stream.readFully(data); |
||||||
|
response.setData(data); |
||||||
|
String mimeType = getMimeType(filePath); |
||||||
|
response.getHeaders().setHeader("Content-Type", mimeType); |
||||||
|
return response; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private static String getMimeType(String path) { |
||||||
|
if (StringUtils.isBlank(path)) { |
||||||
|
return "text/html"; |
||||||
|
} |
||||||
|
if (path.endsWith(".html")) { |
||||||
|
return "text/html"; |
||||||
|
} |
||||||
|
if (path.endsWith(".css")) { |
||||||
|
return "text/css"; |
||||||
|
} |
||||||
|
if (path.endsWith(".js")) { |
||||||
|
return "text/javascript"; |
||||||
|
} |
||||||
|
return "text/html"; |
||||||
|
} |
||||||
|
|
||||||
|
public static void setEmbProtocolHandler(Browser browser, EmbProtocolHandler handler) { |
||||||
|
BrowserContext browserContext = browser.getContext(); |
||||||
|
ProtocolService protocolService = browserContext.getProtocolService(); |
||||||
|
// 支持读取jar包中文件的自定义协议————emb:/com/fr/design/images/bbs.png
|
||||||
|
protocolService.setProtocolHandler("emb", handler); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.general.IOUtils; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.AtomBuilder; |
||||||
|
import com.fr.web.struct.PathGroup; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.category.StylePath; |
||||||
|
import com.teamdev.jxbrowser.chromium.ProtocolHandler; |
||||||
|
import com.teamdev.jxbrowser.chromium.URLRequest; |
||||||
|
import com.teamdev.jxbrowser.chromium.URLResponse; |
||||||
|
|
||||||
|
import java.io.InputStream; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-07 |
||||||
|
*/ |
||||||
|
public class EmbProtocolHandler implements ProtocolHandler { |
||||||
|
|
||||||
|
private AssembleComponent component; |
||||||
|
|
||||||
|
public EmbProtocolHandler() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public EmbProtocolHandler(AssembleComponent component) { |
||||||
|
this.component = component; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public URLResponse onRequest(URLRequest req) { |
||||||
|
try { |
||||||
|
String path = req.getURL(); |
||||||
|
if (path.startsWith("emb:dynamic")) { |
||||||
|
URLResponse response = new URLResponse(); |
||||||
|
response.setData(htmlText().getBytes()); |
||||||
|
response.getHeaders().setHeader("Content-Type", "text/html"); |
||||||
|
return response; |
||||||
|
} else { |
||||||
|
int index = path.indexOf("="); |
||||||
|
if (index > 0) { |
||||||
|
path = path.substring(index + 1); |
||||||
|
} else { |
||||||
|
path = path.substring(4); |
||||||
|
} |
||||||
|
InputStream inputStream = IOUtils.readResource(path); |
||||||
|
return Assistant.inputStream2Response(inputStream, path); |
||||||
|
} |
||||||
|
} catch (Exception ignore) { |
||||||
|
|
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
private String htmlText() { |
||||||
|
PathGroup pathGroup = AtomBuilder.create().buildAssembleFilePath(ModernRequestClient.KEY, component); |
||||||
|
StylePath[] stylePaths = pathGroup.toStylePathGroup(); |
||||||
|
StringBuilder styleText = new StringBuilder(); |
||||||
|
for (StylePath path : stylePaths) { |
||||||
|
if (StringUtils.isNotBlank(path.toFilePath())) { |
||||||
|
styleText.append("<link rel=\"stylesheet\" href=\"emb:"); |
||||||
|
styleText.append(path.toFilePath()); |
||||||
|
styleText.append("\"/>"); |
||||||
|
} |
||||||
|
} |
||||||
|
String result = ModernUIConstants.HTML_TPL.replaceAll("##style##", styleText.toString()); |
||||||
|
ScriptPath[] scriptPaths = pathGroup.toScriptPathGroup(); |
||||||
|
StringBuilder scriptText = new StringBuilder(); |
||||||
|
for (ScriptPath path : scriptPaths) { |
||||||
|
if (StringUtils.isNotBlank(path.toFilePath())) { |
||||||
|
scriptText.append("<script src=\"emb:"); |
||||||
|
scriptText.append(path.toFilePath()); |
||||||
|
scriptText.append("\"></script>"); |
||||||
|
} |
||||||
|
} |
||||||
|
result = result.replaceAll("##script##", scriptText.toString()); |
||||||
|
return result; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-07 |
||||||
|
*/ |
||||||
|
public enum ModernRequestClient implements RequestClient { |
||||||
|
|
||||||
|
KEY; |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isIE() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isLowIEVersion() { |
||||||
|
return false; |
||||||
|
}} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.general.IOUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-05 |
||||||
|
*/ |
||||||
|
class ModernUIConstants { |
||||||
|
|
||||||
|
static final String SCRIPT_INIT_NAME_SPACE = IOUtils.readResourceAsString("/com/fr/design/ui/InitNameSpace.js"); |
||||||
|
|
||||||
|
static final String HTML_TPL = IOUtils.readResourceAsString("/com/fr/design/ui/tpl.html"); |
||||||
|
} |
@ -0,0 +1,212 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
import com.fr.design.dialog.BasicPane; |
||||||
|
import com.fr.design.gui.ibutton.UIButton; |
||||||
|
import com.fr.design.gui.itoolbar.UIToolbar; |
||||||
|
import com.fr.design.i18n.Toolkit; |
||||||
|
import com.fr.design.utils.gui.GUICoreUtils; |
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.teamdev.jxbrowser.chromium.Browser; |
||||||
|
import com.teamdev.jxbrowser.chromium.BrowserPreferences; |
||||||
|
import com.teamdev.jxbrowser.chromium.JSValue; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.LoadAdapter; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.LoadListener; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.ScriptContextEvent; |
||||||
|
import com.teamdev.jxbrowser.chromium.events.ScriptContextListener; |
||||||
|
import com.teamdev.jxbrowser.chromium.swing.BrowserView; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
import java.awt.event.ActionEvent; |
||||||
|
import java.awt.event.ActionListener; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-04 |
||||||
|
* 用于加载html5的Swing容器,可以在设计选项设置中打开调试窗口,示例可查看:com.fr.design.ui.ModernUIPaneTest |
||||||
|
*/ |
||||||
|
public class ModernUIPane<T> extends BasicPane { |
||||||
|
|
||||||
|
private Browser browser; |
||||||
|
private String namespace = "Pool"; |
||||||
|
private String variable = "data"; |
||||||
|
private String expression = "update()"; |
||||||
|
|
||||||
|
private ModernUIPane() { |
||||||
|
initialize(); |
||||||
|
} |
||||||
|
|
||||||
|
private void initialize() { |
||||||
|
if (browser == null) { |
||||||
|
setLayout(new BorderLayout()); |
||||||
|
BrowserPreferences.setChromiumSwitches("--disable-google-traffic"); |
||||||
|
if (DesignerEnvManager.getEnvManager().isOpenDebug()) { |
||||||
|
UIToolbar toolbar = new UIToolbar(); |
||||||
|
add(toolbar, BorderLayout.NORTH); |
||||||
|
UIButton openDebugButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); |
||||||
|
toolbar.add(openDebugButton); |
||||||
|
UIButton reloadButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Reload")); |
||||||
|
toolbar.add(reloadButton); |
||||||
|
|
||||||
|
openDebugButton.addActionListener(new ActionListener() { |
||||||
|
@Override |
||||||
|
public void actionPerformed(ActionEvent e) { |
||||||
|
showDebuggerDialog(); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
reloadButton.addActionListener(new ActionListener() { |
||||||
|
@Override |
||||||
|
public void actionPerformed(ActionEvent e) { |
||||||
|
browser.reloadIgnoringCache(); |
||||||
|
} |
||||||
|
}); |
||||||
|
BrowserPreferences.setChromiumSwitches("--remote-debugging-port=9222"); |
||||||
|
initializeBrowser(); |
||||||
|
add(new BrowserView(browser), BorderLayout.CENTER); |
||||||
|
} else { |
||||||
|
initializeBrowser(); |
||||||
|
add(new BrowserView(browser), BorderLayout.CENTER); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void showDebuggerDialog() { |
||||||
|
JDialog dialog = new JDialog(SwingUtilities.getWindowAncestor(this)); |
||||||
|
Browser debugger = new Browser(); |
||||||
|
BrowserView debuggerView = new BrowserView(debugger); |
||||||
|
dialog.add(debuggerView, BorderLayout.CENTER); |
||||||
|
dialog.setSize(new Dimension(800, 400)); |
||||||
|
GUICoreUtils.centerWindow(dialog); |
||||||
|
dialog.setVisible(true); |
||||||
|
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); |
||||||
|
debugger.loadURL(browser.getRemoteDebuggingURL()); |
||||||
|
} |
||||||
|
|
||||||
|
private void initializeBrowser() { |
||||||
|
browser = new Browser(); |
||||||
|
// 初始化的时候,就把命名空间对象初始化好,确保window.a.b.c("a.b.c"为命名空间)对象都是初始化过的
|
||||||
|
browser.addScriptContextListener(new ScriptContextAdapter() { |
||||||
|
@Override |
||||||
|
public void onScriptContextCreated(ScriptContextEvent event) { |
||||||
|
event.getBrowser().executeJavaScript(String.format(ModernUIConstants.SCRIPT_INIT_NAME_SPACE, namespace)); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String title4PopupWindow() { |
||||||
|
return "Modern"; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void populate(final T t) { |
||||||
|
browser.addLoadListener(new LoadAdapter() { |
||||||
|
@Override |
||||||
|
public void onFinishLoadingFrame(FinishLoadingEvent event) { |
||||||
|
if (event.isMainFrame()) { |
||||||
|
JSValue ns = event.getBrowser().executeJavaScriptAndReturnValue("window." + namespace); |
||||||
|
ns.asObject().setProperty(variable, t); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
public T update() { |
||||||
|
JSValue jsValue = browser.executeJavaScriptAndReturnValue("window." + namespace + "." + expression); |
||||||
|
if (jsValue.isObject()) { |
||||||
|
return (T)jsValue.asJavaObject(); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public static class Builder<T> { |
||||||
|
|
||||||
|
private ModernUIPane<T> pane = new ModernUIPane<>(); |
||||||
|
|
||||||
|
public Builder<T> prepare(ScriptContextListener contextListener) { |
||||||
|
pane.browser.addScriptContextListener(contextListener); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
public Builder<T> prepare(LoadListener loadListener) { |
||||||
|
pane.browser.addLoadListener(loadListener); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 加载jar包中的资源 |
||||||
|
* @param path 资源路径 |
||||||
|
*/ |
||||||
|
public Builder<T> withEMB(final String path) { |
||||||
|
Assistant.setEmbProtocolHandler(pane.browser, new EmbProtocolHandler()); |
||||||
|
pane.browser.loadURL("emb:" + path); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 加载url指向的资源 |
||||||
|
* @param url 文件的地址 |
||||||
|
*/ |
||||||
|
public Builder<T> withURL(final String url) { |
||||||
|
Assistant.setEmbProtocolHandler(pane.browser, new EmbProtocolHandler()); |
||||||
|
pane.browser.loadURL(url); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 加载Atom组件 |
||||||
|
* @param component Atom组件 |
||||||
|
*/ |
||||||
|
public Builder<T> withComponent(AssembleComponent component) { |
||||||
|
Assistant.setEmbProtocolHandler(pane.browser, new EmbProtocolHandler(component)); |
||||||
|
pane.browser.loadURL("emb:dynamic"); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 加载html文本内容 |
||||||
|
* @param html 要加载html文本内容 |
||||||
|
*/ |
||||||
|
public Builder<T> withHTML(String html) { |
||||||
|
Assistant.setEmbProtocolHandler(pane.browser, new EmbProtocolHandler()); |
||||||
|
pane.browser.loadHTML(html); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置该前端页面做数据交换所使用的对象 |
||||||
|
* @param namespace 对象名 |
||||||
|
*/ |
||||||
|
public Builder<T> namespace(String namespace) { |
||||||
|
pane.namespace = namespace; |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* java端往js端传数据时使用的变量名字 |
||||||
|
* @param name 变量的名字 |
||||||
|
*/ |
||||||
|
public Builder<T> variable(String name) { |
||||||
|
pane.variable = name; |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* js端往java端传数据时执行的函数表达式 |
||||||
|
* @param expression 函数表达式 |
||||||
|
*/ |
||||||
|
public Builder<T> expression(String expression) { |
||||||
|
pane.expression = expression; |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
public ModernUIPane<T> build() { |
||||||
|
return pane; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
var arr ="%s".split(".").reverse(); |
||||||
|
var create = function (obj, names) { |
||||||
|
var name = names.pop(); |
||||||
|
if (!name) { |
||||||
|
return; |
||||||
|
} |
||||||
|
if (!obj[name]) { |
||||||
|
obj[name] = {}; |
||||||
|
} |
||||||
|
create(obj[name], names); |
||||||
|
}; |
||||||
|
create(window, arr); |
@ -0,0 +1,8 @@ |
|||||||
|
var arr = "%s".split(","); |
||||||
|
var header = document.getElementsByTagName("head")[0]; |
||||||
|
arr.forEach(function(el) { |
||||||
|
var script = document.createElement("script") |
||||||
|
script.type = "text/javascript"; |
||||||
|
script.src = "emb:" + el; |
||||||
|
header.appendChild(script); |
||||||
|
}); |
@ -0,0 +1,9 @@ |
|||||||
|
var arr = "%s".split(","); |
||||||
|
var header = document.getElementsByTagName("head")[0]; |
||||||
|
arr.forEach(function(el) { |
||||||
|
var css = document.createElement("link"); |
||||||
|
css.type = "text/css"; |
||||||
|
css.rel = "stylesheet"; |
||||||
|
css.href = "emb:" + el; |
||||||
|
header.appendChild(css); |
||||||
|
}); |
@ -0,0 +1,220 @@ |
|||||||
|
window.addEventListener("load", function (ev) { |
||||||
|
window.BI.i18nText = function(key) {return window.Pool.i18n.i18nText(key);} |
||||||
|
var combo1 = BI.createWidget({ |
||||||
|
type: "bi.vertical", |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
type: "bi.text_value_combo", |
||||||
|
text: "选项1", |
||||||
|
width: 300, |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项1", |
||||||
|
value: 1 |
||||||
|
}, |
||||||
|
text: "选项1", |
||||||
|
value: 1, |
||||||
|
lgap: 10 |
||||||
|
}, |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项2", |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
lgap: 10, |
||||||
|
text: "选项2", |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项3", |
||||||
|
value: 3 |
||||||
|
}, |
||||||
|
lgap: 10, |
||||||
|
text: "选项3", |
||||||
|
value: 3 |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
] |
||||||
|
}); |
||||||
|
|
||||||
|
var date = BI.createWidget({ |
||||||
|
type: "bi.left", |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.date_time_combo", |
||||||
|
value: { |
||||||
|
year: 2018, |
||||||
|
month: 9, |
||||||
|
day: 28, |
||||||
|
hour: 13, |
||||||
|
minute: 31, |
||||||
|
second: 1 |
||||||
|
} |
||||||
|
} |
||||||
|
}] |
||||||
|
}); |
||||||
|
|
||||||
|
var comboTree = BI.createWidget({ |
||||||
|
type: "bi.vertical", |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
type: "bi.tree_value_chooser_combo", |
||||||
|
width: 300, |
||||||
|
itemsCreator: function(op, callback) { |
||||||
|
callback([ |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
text: "第1项", |
||||||
|
value: "1" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
text: "第2项", |
||||||
|
value: "2" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
text: "第3项", |
||||||
|
value: "3", |
||||||
|
open: true |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 11, |
||||||
|
pId: 1, |
||||||
|
text: "子项1", |
||||||
|
value: "11" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 12, |
||||||
|
pId: 1, |
||||||
|
text: "子项2", |
||||||
|
value: "12" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 13, |
||||||
|
pId: 1, |
||||||
|
text: "子项3", |
||||||
|
value: "13" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 31, |
||||||
|
pId: 3, |
||||||
|
text: "子项1", |
||||||
|
value: "31" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 32, |
||||||
|
pId: 3, |
||||||
|
text: "子项2", |
||||||
|
value: "32" |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 33, |
||||||
|
pId: 3, |
||||||
|
text: "子项3", |
||||||
|
value: "33" |
||||||
|
} |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
}); |
||||||
|
|
||||||
|
var color = BI.createWidget({ |
||||||
|
type: "bi.left", |
||||||
|
items: [{ |
||||||
|
type: "bi.simple_color_chooser", |
||||||
|
width: 24, |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
type: "bi.color_chooser", |
||||||
|
width: 230, |
||||||
|
height: 24 |
||||||
|
}, |
||||||
|
lgap: 10 |
||||||
|
}] |
||||||
|
}); |
||||||
|
|
||||||
|
var Slider = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
width: 300, |
||||||
|
height: 50, |
||||||
|
min: 0, |
||||||
|
max: 100 |
||||||
|
}, |
||||||
|
|
||||||
|
mounted: function() { |
||||||
|
var o = this.options; |
||||||
|
this.singleSliderInterval.setMinAndMax({ |
||||||
|
min: o.min, |
||||||
|
max: o.max |
||||||
|
}); |
||||||
|
|
||||||
|
this.singleSliderInterval.setValue({ |
||||||
|
min: 10, |
||||||
|
max: 80 |
||||||
|
}); |
||||||
|
this.singleSliderInterval.populate(); |
||||||
|
}, |
||||||
|
|
||||||
|
render: function() { |
||||||
|
var self = this, |
||||||
|
o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical", |
||||||
|
element: this, |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
type: "bi.interval_slider", |
||||||
|
digit: 0, |
||||||
|
width: o.width, |
||||||
|
height: o.height, |
||||||
|
ref: function(_ref) { |
||||||
|
self.singleSliderInterval = _ref; |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("demo.slider_interval", Slider); |
||||||
|
var slider = BI.createWidget({ |
||||||
|
type: "demo.slider_interval" |
||||||
|
}); |
||||||
|
|
||||||
|
BI.createWidget({ |
||||||
|
type:"bi.absolute", |
||||||
|
element: "body", |
||||||
|
items: [{ |
||||||
|
el: combo1, |
||||||
|
left: 100, |
||||||
|
top: 100 |
||||||
|
}, { |
||||||
|
el : date, |
||||||
|
left: 100, |
||||||
|
top : 150 |
||||||
|
}, { |
||||||
|
el : comboTree, |
||||||
|
left : 100, |
||||||
|
top : 200 |
||||||
|
}, { |
||||||
|
el : color, |
||||||
|
left : 100, |
||||||
|
top : 250 |
||||||
|
}, { |
||||||
|
el : slider, |
||||||
|
left : 400, |
||||||
|
top : 100 |
||||||
|
}] |
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,12 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Title</title> |
||||||
|
##style## |
||||||
|
##script## |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
</body> |
||||||
|
|
||||||
|
</html> |
@ -0,0 +1,28 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-07 |
||||||
|
*/ |
||||||
|
public class FineUIDemo { |
||||||
|
|
||||||
|
public static void main(String... args) { |
||||||
|
final JFrame frame = new JFrame(); |
||||||
|
frame.setSize(1200, 800); |
||||||
|
JPanel contentPane = (JPanel) frame.getContentPane(); |
||||||
|
// 是否需要开启调试窗口
|
||||||
|
DesignerEnvManager.getEnvManager().setOpenDebug(true); |
||||||
|
|
||||||
|
final ModernUIPane<ModernUIPaneTest.Model> pane = new ModernUIPane.Builder<ModernUIPaneTest.Model>() |
||||||
|
.withComponent(StartComponent.KEY).build(); |
||||||
|
contentPane.add(pane, BorderLayout.CENTER); |
||||||
|
frame.setVisible(true); |
||||||
|
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
import java.awt.event.ActionEvent; |
||||||
|
import java.awt.event.ActionListener; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-05 |
||||||
|
*/ |
||||||
|
public class ModernUIPaneTest { |
||||||
|
|
||||||
|
public static void main(String... args) { |
||||||
|
final JFrame frame = new JFrame(); |
||||||
|
frame.setSize(1200, 800); |
||||||
|
JPanel contentPane = (JPanel) frame.getContentPane(); |
||||||
|
// 是否需要开启调试窗口
|
||||||
|
DesignerEnvManager.getEnvManager().setOpenDebug(true); |
||||||
|
final ModernUIPane<Model> pane = new ModernUIPane.Builder<Model>() |
||||||
|
.withEMB("/com/fr/design/ui/demo.html").namespace("Pool").build(); |
||||||
|
contentPane.add(pane, BorderLayout.CENTER); |
||||||
|
|
||||||
|
Model model = new Model(); |
||||||
|
model.setAge(20); |
||||||
|
model.setName("Pick"); |
||||||
|
pane.populate(model); |
||||||
|
|
||||||
|
JPanel panel = new JPanel(new FlowLayout()); |
||||||
|
contentPane.add(panel, BorderLayout.SOUTH); |
||||||
|
JButton button = new JButton("点击我可以看到Swing的弹框,输出填写的信息"); |
||||||
|
panel.add(button); |
||||||
|
button.addActionListener(new ActionListener() { |
||||||
|
@Override |
||||||
|
public void actionPerformed(ActionEvent e) { |
||||||
|
Model returnValue = pane.update(); |
||||||
|
if (returnValue != null) { |
||||||
|
JOptionPane.showMessageDialog(frame, String.format("姓名为:%s,年龄为:%d", returnValue.getName(), returnValue.getAge())); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
frame.setVisible(true); |
||||||
|
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
||||||
|
} |
||||||
|
|
||||||
|
public static class Model { |
||||||
|
private String name; |
||||||
|
private int age; |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public int getAge() { |
||||||
|
return age; |
||||||
|
} |
||||||
|
|
||||||
|
public void setAge(int age) { |
||||||
|
this.age = age; |
||||||
|
} |
||||||
|
|
||||||
|
public void print(String message) { |
||||||
|
System.out.println(message); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
package com.fr.design.ui; |
||||||
|
|
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.Atom; |
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.impl.FineUI; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-03-08 |
||||||
|
*/ |
||||||
|
public class StartComponent extends AssembleComponent { |
||||||
|
|
||||||
|
public static final StartComponent KEY = new StartComponent(); |
||||||
|
|
||||||
|
private StartComponent() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ScriptPath script(RequestClient req) { |
||||||
|
return ScriptPath.build("/com/fr/design/ui/script/start.js"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Atom[] refer() { |
||||||
|
return new Atom[] {FineUI.KEY}; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
package com.fr.design.ui.report; |
||||||
|
|
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.Atom; |
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
import com.fr.web.struct.category.ParserType; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.category.StylePath; |
||||||
|
import com.fr.web.struct.impl.FineUI; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by windy on 2019/3/25. |
||||||
|
* 报表服务器参数demo使用 |
||||||
|
*/ |
||||||
|
public class ReportServerParamComponent extends AssembleComponent { |
||||||
|
|
||||||
|
public static final ReportServerParamComponent KEY = new ReportServerParamComponent(); |
||||||
|
|
||||||
|
private ReportServerParamComponent() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Atom[] refer() { |
||||||
|
return new Atom[] { |
||||||
|
FineUI.KEY |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ScriptPath script(RequestClient req) { |
||||||
|
return ScriptPath.build("/com/fr/design/ui/script/report.js"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public StylePath style() { |
||||||
|
|
||||||
|
return StylePath.build("/com/fr/design/ui/script/report.css", ParserType.DYNAMIC); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.fr.design.ui.report; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
import com.fr.design.ui.ModernUIPane; |
||||||
|
import com.fr.design.ui.ModernUIPaneTest; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by windy on 2019/3/25. |
||||||
|
* 报表服务器参数demo |
||||||
|
*/ |
||||||
|
public class ReportServerParamDemo { |
||||||
|
|
||||||
|
public static void main(String... args) { |
||||||
|
final JFrame frame = new JFrame(); |
||||||
|
frame.setSize(660, 600); |
||||||
|
JPanel contentPane = (JPanel) frame.getContentPane(); |
||||||
|
// 是否需要开启调试窗口
|
||||||
|
DesignerEnvManager.getEnvManager().setOpenDebug(true); |
||||||
|
|
||||||
|
final ModernUIPane<ModernUIPaneTest.Model> pane = new ModernUIPane.Builder<ModernUIPaneTest.Model>() |
||||||
|
.withComponent(ReportServerParamComponent.KEY).build(); |
||||||
|
contentPane.add(pane, BorderLayout.CENTER); |
||||||
|
frame.setVisible(true); |
||||||
|
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
package com.fr.design.ui.report; |
||||||
|
|
||||||
|
import com.fr.web.struct.AssembleComponent; |
||||||
|
import com.fr.web.struct.Atom; |
||||||
|
import com.fr.web.struct.browser.RequestClient; |
||||||
|
import com.fr.web.struct.category.ParserType; |
||||||
|
import com.fr.web.struct.category.ScriptPath; |
||||||
|
import com.fr.web.struct.category.StylePath; |
||||||
|
import com.fr.web.struct.impl.FineUI; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by windy on 2019/3/26. |
||||||
|
* 模板Web属性demo使用 |
||||||
|
*/ |
||||||
|
public class TemplateWebSettingComponent extends AssembleComponent { |
||||||
|
|
||||||
|
public static final TemplateWebSettingComponent KEY = new TemplateWebSettingComponent(); |
||||||
|
|
||||||
|
private TemplateWebSettingComponent() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Atom[] refer() { |
||||||
|
return new Atom[] { |
||||||
|
FineUI.KEY |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ScriptPath script(RequestClient req) { |
||||||
|
return ScriptPath.build("/com/fr/design/ui/script/template.js"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public StylePath style() { |
||||||
|
|
||||||
|
return StylePath.build("/com/fr/design/ui/script/template.css", ParserType.DYNAMIC); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.fr.design.ui.report; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
import com.fr.design.ui.ModernUIPane; |
||||||
|
import com.fr.design.ui.ModernUIPaneTest; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by windy on 2019/3/26. |
||||||
|
* 模板Web属性demo |
||||||
|
*/ |
||||||
|
public class TemplateWebSettingDemo { |
||||||
|
public static void main(String... args) { |
||||||
|
final JFrame frame = new JFrame(); |
||||||
|
frame.setSize(660, 600); |
||||||
|
JPanel contentPane = (JPanel) frame.getContentPane(); |
||||||
|
// 是否需要开启调试窗口
|
||||||
|
DesignerEnvManager.getEnvManager().setOpenDebug(true); |
||||||
|
|
||||||
|
final ModernUIPane<ModernUIPaneTest.Model> pane = new ModernUIPane.Builder<ModernUIPaneTest.Model>() |
||||||
|
.withComponent(TemplateWebSettingComponent.KEY).build(); |
||||||
|
contentPane.add(pane, BorderLayout.CENTER); |
||||||
|
frame.setVisible(true); |
||||||
|
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Title</title> |
||||||
|
<script type="text/javascript"> |
||||||
|
Pool.update = function () { |
||||||
|
Pool.data.setAge(parseInt(document.getElementById("age").value)); |
||||||
|
Pool.data.setName(document.getElementById("name").value); |
||||||
|
return Pool.data; |
||||||
|
}; |
||||||
|
</script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div>测试页面,请点击最下面的按钮</div> |
||||||
|
<input id="name" type="text" placeholder="请输入名字"/> |
||||||
|
<input id="age" type="number" placeholder="请输入年龄"/> |
||||||
|
<img src="emb:/com/fr/design/images/splash_10.gif"> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,11 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Title</title> |
||||||
|
<link rel="stylesheet" href="emb:/com/fr/web/ui/fineui.min.css"/> |
||||||
|
<script src="emb:/com/fr/web/ui/fineui.min.js"/> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,12 @@ |
|||||||
|
.bi-setting-tab .tab-group { |
||||||
|
background-color: #F2F4F7; |
||||||
|
font-size: 12px; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item:hover { |
||||||
|
color: #3685f2; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item.active { |
||||||
|
background-color: #ffffff; |
||||||
|
color: #3685f2; |
||||||
|
border-top: 3px solid #3685f2; |
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
!(function(){ |
||||||
|
/** |
||||||
|
* 带确定取消的通用控件 |
||||||
|
*/ |
||||||
|
var Bar = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-settings-bar-container", |
||||||
|
el: { |
||||||
|
|
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
render: function() { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
items: [this.options.el, { |
||||||
|
type: "bi.right_vertical_adapt", |
||||||
|
height: 24, |
||||||
|
rgap: 10, |
||||||
|
vgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.button", |
||||||
|
level: "ignore", |
||||||
|
text: BI.i18nText("Fine-Design_Report_OK"), |
||||||
|
handler: function() { |
||||||
|
|
||||||
|
} |
||||||
|
}, { |
||||||
|
type: "bi.button", |
||||||
|
level: "ignore", |
||||||
|
text: BI.i18nText("Fine-Design_Basic_Engine_Cancel"), |
||||||
|
handler: function() { |
||||||
|
|
||||||
|
} |
||||||
|
}] |
||||||
|
}] |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
BI.shortcut("bi.settings.bar_container", Bar) |
||||||
|
})(); |
@ -0,0 +1,89 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 事件设置 |
||||||
|
*/ |
||||||
|
var List = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-edit-list" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this; |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 5, |
||||||
|
items: [{ |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "text-add-tip-font", |
||||||
|
width: 24, |
||||||
|
height: 24, |
||||||
|
handler: function() { |
||||||
|
self.group.addItems([self._createItem()]) |
||||||
|
} |
||||||
|
}, { |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "close-font", |
||||||
|
width: 24, |
||||||
|
height: 24, |
||||||
|
handler: function() { |
||||||
|
self.group.removeItemAt(); |
||||||
|
} |
||||||
|
}, { |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "close-font", |
||||||
|
width: 24, |
||||||
|
height: 24, |
||||||
|
handler: function() { |
||||||
|
self.removeItemAt(self._getIndexOfItemValue(self.group.getValue())) |
||||||
|
} |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
cls: "bi-border bi-card", |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
}, |
||||||
|
items: [] |
||||||
|
}] |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
_getIndexOfItemValue: function(values) { |
||||||
|
values = BI.isArray(values) ? values : [values]; |
||||||
|
var indexes = []; |
||||||
|
BI.each(this.group.getAllButtons(), function(idx, button){ |
||||||
|
if(BI.contains(values, button.getValue())) { |
||||||
|
indexes.push(idx); |
||||||
|
} |
||||||
|
}); |
||||||
|
return indexes; |
||||||
|
}, |
||||||
|
|
||||||
|
_createItem: function() { |
||||||
|
return { |
||||||
|
type: "bi.text_button", |
||||||
|
textAlign: "left", |
||||||
|
hgap: 10, |
||||||
|
text: "选项" + this.group.getAllButtons().length, |
||||||
|
cls: "bi-list-item-select", |
||||||
|
value: BI.UUID() |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
populate: function(items) { |
||||||
|
this.group.populate(items); |
||||||
|
}, |
||||||
|
|
||||||
|
addItems: function(items) { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
removeItemAt: function(indexes) { |
||||||
|
this.group.removeItemAt(indexes); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.edit_list", List); |
||||||
|
})(); |
@ -0,0 +1,33 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 填报当前编辑行背景设置相关 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-form-background-setting" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
items: [{ |
||||||
|
type: "bi.multi_select_item", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16, |
||||||
|
text: BI.i18nText("Fine-Design_Report_Set_Face_Write_Current_Edit_Row_Background") |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
type: "bi.color_chooser", |
||||||
|
width: 24, |
||||||
|
height: 24 |
||||||
|
}, |
||||||
|
lgap: 10 |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.form_background_setting", Analysis); |
||||||
|
})(); |
@ -0,0 +1,54 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
*
|
||||||
|
* 为模板单独设置的相关项 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-global-or-single-combo", |
||||||
|
value: 1 |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
rgap: 10, |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Blow_Set") |
||||||
|
}, { |
||||||
|
type: "bi.text_value_combo", |
||||||
|
width: 200, |
||||||
|
ref: function(_ref) { |
||||||
|
self.combo = _ref; |
||||||
|
}, |
||||||
|
value: o.value, |
||||||
|
items: [{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_I_Want_To_Set_Single"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Form_Using_Server_Report_View_Settings"), |
||||||
|
value: 2 |
||||||
|
}], |
||||||
|
listerners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function() { |
||||||
|
|
||||||
|
} |
||||||
|
}] |
||||||
|
}] |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.combo.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.combo.setValue(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.global_or_single_combo", Analysis); |
||||||
|
})(); |
@ -0,0 +1,53 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 离开提示/直接显示控件/自动暂存相关 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-leave-setting", |
||||||
|
value: [1] |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.button_group", |
||||||
|
value: o.value, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Unload_Check"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Basic_Engine_Event_Show_Widgets"), |
||||||
|
value: 2 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Write_Auto_Stash"), |
||||||
|
value: 3 |
||||||
|
}], { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
hgap: 5, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16 |
||||||
|
}), |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
rgap: 5 |
||||||
|
}], |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
} |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.group.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.group.setValue(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.leave_setting", Analysis); |
||||||
|
})(); |
@ -0,0 +1,53 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 报表显示位置相关 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-report-show-location" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Show_Location") |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
}, |
||||||
|
value: 2, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Center_Display"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Left_Display"), |
||||||
|
value: 2 |
||||||
|
}], { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
} |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.left", |
||||||
|
lgap: 10 |
||||||
|
}] |
||||||
|
}] |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.group.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.group.setValue(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.report_show_location", Analysis); |
||||||
|
})(); |
@ -0,0 +1,59 @@ |
|||||||
|
!(function () { |
||||||
|
|
||||||
|
var Tab = BI.inherit(BI.Widget, { |
||||||
|
|
||||||
|
props: { |
||||||
|
baseCls: "bi-setting-tab", |
||||||
|
value: "", |
||||||
|
tabItems: [], |
||||||
|
cardCreator: BI.emptyFn |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
items: [{ |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
cls: "tab-group", |
||||||
|
items: [{ |
||||||
|
type: "bi.button_group", |
||||||
|
layouts: [{ |
||||||
|
type: "bi.left" |
||||||
|
}], |
||||||
|
value: o.value, |
||||||
|
items: BI.map(o.tabItems, function(idx, item){ |
||||||
|
return { |
||||||
|
el: BI.extend({ |
||||||
|
type: "bi.text_button", |
||||||
|
hgap: 10, |
||||||
|
height: 24 |
||||||
|
}, item) |
||||||
|
}; |
||||||
|
}), |
||||||
|
listeners: [{ |
||||||
|
eventName: BI.ButtonGroup.EVENT_CHANGE, |
||||||
|
action: function (v) { |
||||||
|
self.tableTab.setSelect(v); |
||||||
|
} |
||||||
|
}], |
||||||
|
ref: function (_ref) { |
||||||
|
// self.buttons = _ref;
|
||||||
|
} |
||||||
|
}], |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.tab", |
||||||
|
cls: "bi-card", |
||||||
|
showIndex: o.value, |
||||||
|
cardCreator: this.options.cardCreator, |
||||||
|
ref: function (ref) { |
||||||
|
self.tableTab = ref; |
||||||
|
} |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
BI.shortcut("bi.setting.tab", Tab); |
||||||
|
})(); |
@ -0,0 +1,17 @@ |
|||||||
|
@import "../../index.less"; |
||||||
|
.bi-setting-tab { |
||||||
|
& .tab-group { |
||||||
|
background-color: @color-bi-background-light-gray; |
||||||
|
font-size: @font-size-12; |
||||||
|
& .tab-item { |
||||||
|
&:hover { |
||||||
|
color: @color-bi-text-highlight; |
||||||
|
} |
||||||
|
&.active { |
||||||
|
background-color: @color-bi-background-default; |
||||||
|
color: @color-bi-text-highlight; |
||||||
|
border-top: 3px solid @color-bi-text-highlight; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* sheet标签页显示位置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-report-show-location" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Sheet_Label_Page_Display_Position") |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
}, |
||||||
|
value: 2, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Form_Base_Top"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Bottom"), |
||||||
|
value: 2 |
||||||
|
}], { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
} |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.left", |
||||||
|
lgap: 10 |
||||||
|
}] |
||||||
|
}] |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.group.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.group.setValue(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.sheet_label_location", Analysis); |
||||||
|
})(); |
@ -0,0 +1,126 @@ |
|||||||
|
!(function(){ |
||||||
|
var ToolBar = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-settings-tool-bar", |
||||||
|
value: [1] |
||||||
|
}, |
||||||
|
|
||||||
|
render: function() { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical", |
||||||
|
items: [{ |
||||||
|
type: "bi.left_right_vertical_adapt", |
||||||
|
height: 24, |
||||||
|
bgap: 15, |
||||||
|
rhgap: 10, |
||||||
|
items: { |
||||||
|
left: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Mobile_ToolBar"), |
||||||
|
width: 70, |
||||||
|
textAlign: "left" |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
value: o.value, |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_ToolBar_Top"), |
||||||
|
value: 1, |
||||||
|
listeners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function() { |
||||||
|
if(this.isSelected()) { |
||||||
|
self._populateDefault(); |
||||||
|
} else { |
||||||
|
self.topRegion.populate(); |
||||||
|
} |
||||||
|
} |
||||||
|
}] |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_ToolBar_Bottom"), |
||||||
|
value: 2 |
||||||
|
}], { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
hgap: 5, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16 |
||||||
|
}), |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
}, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.left" |
||||||
|
}], |
||||||
|
listeners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function() { |
||||||
|
|
||||||
|
} |
||||||
|
}] |
||||||
|
}], |
||||||
|
right: [{ |
||||||
|
el: { |
||||||
|
type: "bi.text_button", |
||||||
|
cls: "bi-border", |
||||||
|
text: BI.i18nText("Fine-Design_Basic_Scale_Custom_Button"), |
||||||
|
handler: function() { |
||||||
|
|
||||||
|
}, |
||||||
|
hgap: 5 |
||||||
|
} |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
type: "bi.text_button", |
||||||
|
cls: "bi-border", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Restore_Default"), |
||||||
|
handler: function() { |
||||||
|
|
||||||
|
}, |
||||||
|
hgap: 5 |
||||||
|
} |
||||||
|
}] |
||||||
|
} |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
type: "bi.settings.tool_bar.region", |
||||||
|
height: 56, |
||||||
|
title: BI.i18nText("Fine-Design_Report_ToolBar_Top"), |
||||||
|
ref: function(_ref) { |
||||||
|
self.topRegion = _ref; |
||||||
|
}, |
||||||
|
items: BI.contains(o.value, 1) ? this._createDefaultItems() : [] |
||||||
|
}, |
||||||
|
bgap: 20 |
||||||
|
}, { |
||||||
|
type: "bi.settings.tool_bar.region", |
||||||
|
height: 56, |
||||||
|
title: BI.i18nText("Fine-Design_Report_ToolBar_Bottom"), |
||||||
|
ref: function(_ref) { |
||||||
|
self.bottomRegion = _ref; |
||||||
|
} |
||||||
|
}] |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
_createDefaultItems: function() { |
||||||
|
return BI.createItems(BI.Constants.getConstant("bi.constant.report.template.web_setting.tools"), { |
||||||
|
type: "bi.icon_text_item", |
||||||
|
height: 24, |
||||||
|
extraCls: "bi-background bi-list-item-select bi-border-radius", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
textHgap: 10, |
||||||
|
value: BI.UUID() |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
_populateDefault: function() { |
||||||
|
this.topRegion.populate(this._createDefaultItems()); |
||||||
|
} |
||||||
|
}) |
||||||
|
BI.shortcut("bi.settings.tool_bar", ToolBar) |
||||||
|
})(); |
@ -0,0 +1,42 @@ |
|||||||
|
!(function(){ |
||||||
|
var Region = BI.inherit(BI.Widget, { |
||||||
|
|
||||||
|
props: { |
||||||
|
baseCls: "bi-settings-tool-bar-region", |
||||||
|
title: "" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function() { |
||||||
|
var self = this, o = this.options; |
||||||
|
return [{ |
||||||
|
type: "bi.button_group", |
||||||
|
cls: "bi-border", |
||||||
|
items: o.items, |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
hgap: 10 |
||||||
|
}], |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
} |
||||||
|
}, { |
||||||
|
type: "bi.absolute", |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.label", |
||||||
|
cls: "bi-background", |
||||||
|
text: o.title |
||||||
|
}, |
||||||
|
top: -10, |
||||||
|
left: 10 |
||||||
|
}] |
||||||
|
}] |
||||||
|
}, |
||||||
|
|
||||||
|
populate: function(items) { |
||||||
|
this.group.populate(items); |
||||||
|
} |
||||||
|
}) |
||||||
|
BI.shortcut("bi.settings.tool_bar.region", Region); |
||||||
|
})(); |
@ -0,0 +1,67 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 工具栏高度相关 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-tool-bar-height-select", |
||||||
|
height: 24, |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this, o = this.options; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Mobile_ToolBar_Height") |
||||||
|
}, |
||||||
|
rgap: 10 |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
value: o.value, |
||||||
|
ref: function(_ref) { |
||||||
|
self.group = _ref; |
||||||
|
}, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Tool_Bar_High"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Tool_Bar_Middle"), |
||||||
|
value: 2 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Tool_Bar_Low"), |
||||||
|
value: 3 |
||||||
|
}], { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
} |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical_adapt" |
||||||
|
}], |
||||||
|
listeners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function() { |
||||||
|
|
||||||
|
} |
||||||
|
}] |
||||||
|
}] |
||||||
|
|
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.group.getValue(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.group.setValue(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.tool_bar_height_select", Analysis); |
||||||
|
})(); |
@ -0,0 +1,47 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 使用工具栏相关 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-use-tool-bar" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
var self = this; |
||||||
|
return { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
ref: function(_ref) { |
||||||
|
self.multiSelect = _ref; |
||||||
|
}, |
||||||
|
hgap: 5, |
||||||
|
selected: true, |
||||||
|
text: BI.i18nText("Fine-Design_Report_Use_ToolBar"), |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16 |
||||||
|
} |
||||||
|
}, { |
||||||
|
type: "bi.text_button", |
||||||
|
cls: "bi-card bi-border", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Edit"), |
||||||
|
hgap: 10 |
||||||
|
}] |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function() { |
||||||
|
return self.multiSelect.getSelected(); |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function(v) { |
||||||
|
this.multiSelect.setSelected(v); |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.use_tool_bar", Analysis); |
||||||
|
})(); |
@ -0,0 +1,30 @@ |
|||||||
|
window.BICst = window.BICst || {}; |
||||||
|
BICst.REPORT_SERVER_PARAM = { |
||||||
|
SPLIT_PAGE_PREVIEW_SETTING: 1, |
||||||
|
FORM_PAGE_SETTING: 2, |
||||||
|
DATA_ANALYSIS_SETTING: 3, |
||||||
|
IMPORT_CSS: 4, |
||||||
|
IMPORT_JS: 5, |
||||||
|
ERROR_TEMPLATE_DEFINE: 6, |
||||||
|
PRINT_SETTING: 7 |
||||||
|
}; |
||||||
|
BICst.REPORT_TEMPLATE_WEB_SETTING = { |
||||||
|
BASE: 1, |
||||||
|
PRINT: 2, |
||||||
|
SPLIT_PAGE_PREVIEW_SETTING: 3, |
||||||
|
FORM_PAGE_SETTING: 4, |
||||||
|
DATA_ANALYSIS_SETTING: 5, |
||||||
|
BROWSER: 6, |
||||||
|
IMPORT_CSS: 7, |
||||||
|
IMPORT_JS: 8 |
||||||
|
}; |
||||||
|
|
||||||
|
BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS = { |
||||||
|
FIRST_PAGE: 1, |
||||||
|
PRE_PAGE: 2, |
||||||
|
NEXT_PAGE: 3, |
||||||
|
LAST_PAGE: 4, |
||||||
|
PRINT: 5, |
||||||
|
EXPORT: 6, |
||||||
|
EMAIL: 7 |
||||||
|
}; |
@ -0,0 +1,53 @@ |
|||||||
|
BI.addI18n({ |
||||||
|
"Fine-Design_Report_WEB_Pagination_Setting": "分页预览设置", |
||||||
|
"Fine-Design_Report_WEB_Write_Setting": "填报页面设置", |
||||||
|
"Fine-Design_Report_Data_Analysis_Settings": "数据分析设置", |
||||||
|
"Fine-Design_Report_ReportServerP_Import_Css": "引用Css", |
||||||
|
"Fine-Design_Report_ReportServerP_Import_JavaScript": "引用JavaScript", |
||||||
|
"Fine-Design_Report_Error_Handler_Template": "出错模板定义", |
||||||
|
"Fine-Design_Report_Print_Setting": "打印设置", |
||||||
|
"Fine-Design_Report_Mobile_ToolBar": "工具栏", |
||||||
|
"Fine-Design_Report_Tool_Bar_High": "高", |
||||||
|
"Fine-Design_Report_Tool_Bar_Middle": "中", |
||||||
|
"Fine-Design_Report_Tool_Bar_Low": "低", |
||||||
|
"Fine-Design_Report_Mobile_ToolBar_Height": "工具栏高度", |
||||||
|
"Fine-Design_Report_Is_Paint_Page": "以图片方式显示", |
||||||
|
"Fine-Design_Report_IS_Auto_Scale": "iframe嵌入时自动缩放", |
||||||
|
"Fine-Design_Report_IS_TD_HEAVY_EXPORT": "重方式输出格子", |
||||||
|
"Fine-Design_Report_Use_ToolBar": "使用工具栏", |
||||||
|
"Fine-Design_Report_Show_Location": "报表显示位置", |
||||||
|
"Fine-Design_Report_Center_Display": "居中展示", |
||||||
|
"Fine-Design_Report_Left_Display": "左展示", |
||||||
|
"Fine-Design_Report_Editing_Listeners": "事件编辑", |
||||||
|
"Fine-Design_Report_Edit": "编辑", |
||||||
|
"Fine-Design_Report_Sheet_Label_Page_Display_Position": "sheet标签页显示位置:", |
||||||
|
"Fine-Design_Form_Base_Top": "上", |
||||||
|
"Fine-Design_Report_Bottom": "下", |
||||||
|
"Fine-Design_Report_Set_Face_Write_Current_Edit_Row_Background": "当前编辑行背景设置", |
||||||
|
"Fine-Design_Report_Unload_Check": "未提交离开提示", |
||||||
|
"Fine-Design_Basic_Engine_Event_Show_Widgets": "直接显示控件", |
||||||
|
"Fine-Design_Report_Write_Auto_Stash": "自动暂存", |
||||||
|
"Fine-Design_Report_Engine_Sort_Sort": "排序", |
||||||
|
"Fine-Design_Report_Engine_Selection_Filter": "条件筛选", |
||||||
|
"Fine-Design_Report_Engine_List_Filter": "列表筛选", |
||||||
|
"Fine-Design_Basic_Engine_Cancel": "取消", |
||||||
|
"Fine-Design_Report_OK": "确定", |
||||||
|
"Fine-Design_Report_Basic": "基本", |
||||||
|
"Fine-Design_Report_Printer(Server)": "打印机(服务器)", |
||||||
|
"Fine-Design_Report_Browser_Background": "浏览器背景", |
||||||
|
"Fine-Design_Report_I_Want_To_Set_Single": "为该模板单独设置", |
||||||
|
"Fine-Design_Form_Using_Server_Report_View_Settings": "采用服务器设置", |
||||||
|
"Fine-Design_Report_Blow_Set": "以下设置:", |
||||||
|
"Fine-Design_Report_PageSetup_Page": "页面", |
||||||
|
"Fine-Design_Report_ToolBar_Top": "顶部工具栏", |
||||||
|
"Fine-Design_Report_ToolBar_Bottom": "底部工具栏", |
||||||
|
"Fine-Design_Basic_Scale_Custom_Button": "自定义", |
||||||
|
"Fine-Design_Report_Restore_Default": "恢复默认", |
||||||
|
"Fine-Design_Report_Engine_ReportServerP_First": "首页", |
||||||
|
"Fine-Design_Report_Engine_ReportServerP_Previous": "上一页", |
||||||
|
"Fine-Design_Report_Engine_ReportServerP_Next": "下一页", |
||||||
|
"Fine-Design_Report_Engine_ReportServerP_Last": "末页", |
||||||
|
"Fine-Design_Report_Engine_Print": "打印", |
||||||
|
"Fine-Design_Report_Engine_Export": "导出", |
||||||
|
"Fine-Design_Report_Engine_Email": "邮件" |
||||||
|
}); |
@ -0,0 +1 @@ |
|||||||
|
@import "../../fineui/src/less/index.less"; |
@ -0,0 +1,59 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 服务器 数据分析设置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-data-analysis" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 10, |
||||||
|
hgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.button_group", |
||||||
|
height: 24, |
||||||
|
value: [1,2,3], |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_Sort_Sort"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_Selection_Filter"), |
||||||
|
value: 2 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_List_Filter"), |
||||||
|
value: 2 |
||||||
|
}], { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16, |
||||||
|
hgap: 5 |
||||||
|
}), |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical_adapt" |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.use_tool_bar", |
||||||
|
height: 24, |
||||||
|
value: true |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.tool_bar_height_select", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.label", |
||||||
|
height: 24, |
||||||
|
textAlign: "left", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Editing_Listeners") + ":", |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.edit_list" |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.data_analysis", Analysis); |
||||||
|
})(); |
@ -0,0 +1,69 @@ |
|||||||
|
!(function () { |
||||||
|
|
||||||
|
/** |
||||||
|
* 服务器 填报预览设置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-form-page" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 10, |
||||||
|
hgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.grid", |
||||||
|
height: 78, |
||||||
|
columns: 2, |
||||||
|
rows: 2, |
||||||
|
items: [{ |
||||||
|
column: 0, |
||||||
|
row: 0, |
||||||
|
el: { |
||||||
|
type: "bi.report.sheet_label_location", |
||||||
|
height: 24 |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 1, |
||||||
|
row: 0, |
||||||
|
el: { |
||||||
|
type: "bi.report.server.param_setting.report_show_location", |
||||||
|
height: 24 |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 0, |
||||||
|
row: 1, |
||||||
|
el: { |
||||||
|
type: "bi.report.form_background_setting", |
||||||
|
height: 24 |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 1, |
||||||
|
row: 1, |
||||||
|
el: { |
||||||
|
type: "bi.report.leave_setting", |
||||||
|
height: 24 |
||||||
|
} |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.use_tool_bar", |
||||||
|
height: 24, |
||||||
|
value: true |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.tool_bar_height_select", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.label", |
||||||
|
height: 24, |
||||||
|
textAlign: "left", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Editing_Listeners") + ":", |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.edit_list" |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.form_page", Analysis); |
||||||
|
})(); |
@ -0,0 +1,66 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 服务器 分页预览设置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-page-preview" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 10, |
||||||
|
hgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.report.server.param_setting.report_show_location", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.button_group", |
||||||
|
height: 92, |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
items: BI.createItems([{ |
||||||
|
el: { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Is_Paint_Page"), |
||||||
|
value: 1 |
||||||
|
}, |
||||||
|
bgap: 10 |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
text: BI.i18nText("Fine-Design_Report_IS_Auto_Scale"), |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
bgap: 10 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_IS_TD_HEAVY_EXPORT"), |
||||||
|
value: 3 |
||||||
|
}], { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
hgap: 5, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16 |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.vertical" |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.use_tool_bar", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.tool_bar_height_select", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.label", |
||||||
|
height: 24, |
||||||
|
textAlign: "left", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Editing_Listeners") + ":", |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.edit_list" |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.server.param_setting.page_preview", Analysis); |
||||||
|
})(); |
@ -0,0 +1,33 @@ |
|||||||
|
!(function () { |
||||||
|
BI.constant("bi.constant.report.server.param_setting", [ |
||||||
|
{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_WEB_Pagination_Setting"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.SPLIT_PAGE_PREVIEW_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_WEB_Write_Setting"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.FORM_PAGE_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Data_Analysis_Settings"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.DATA_ANALYSIS_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_ReportServerP_Import_Css"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.IMPORT_CSS |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_ReportServerP_Import_JavaScript"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.IMPORT_JS |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Error_Handler_Template"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.ERROR_TEMPLATE_DEFINE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Print_Setting"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.PRINT_SETTING |
||||||
|
}] |
||||||
|
); |
||||||
|
})(); |
@ -0,0 +1,50 @@ |
|||||||
|
!(function () { |
||||||
|
|
||||||
|
/** |
||||||
|
* 报表服务器参数面板 |
||||||
|
*/ |
||||||
|
var Tab = BI.inherit(BI.Widget, { |
||||||
|
|
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.setting.tab", |
||||||
|
value: BICst.REPORT_SERVER_PARAM.SPLIT_PAGE_PREVIEW_SETTING, |
||||||
|
tabItems: BI.Constants.getConstant("bi.constant.report.server.param_setting"), |
||||||
|
cardCreator: BI.bind(this._createCard, this) |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
_createCard: function (v) { |
||||||
|
switch (v) { |
||||||
|
case BICst.REPORT_SERVER_PARAM.SPLIT_PAGE_PREVIEW_SETTING: |
||||||
|
return { |
||||||
|
type: "bi.report.server.param_setting.page_preview" |
||||||
|
}; |
||||||
|
case BICst.REPORT_SERVER_PARAM.FORM_PAGE_SETTING: |
||||||
|
return { |
||||||
|
type: "bi.report.server.param_setting.form_page" |
||||||
|
}; |
||||||
|
case BICst.REPORT_SERVER_PARAM.DATA_ANALYSIS_SETTING: |
||||||
|
return { |
||||||
|
type: "bi.report.server.param_setting.data_analysis" |
||||||
|
} |
||||||
|
case BICst.REPORT_SERVER_PARAM.IMPORT_CSS: |
||||||
|
case BICst.REPORT_SERVER_PARAM.IMPORT_JS: |
||||||
|
case BICst.REPORT_SERVER_PARAM.ERROR_TEMPLATE_DEFINE: |
||||||
|
case BICst.REPORT_SERVER_PARAM.PRINT_SETTING: |
||||||
|
default: |
||||||
|
return { |
||||||
|
type: "bi.label", |
||||||
|
text: "1" |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
BI.shortcut("bi.report.server.param_setting", Tab); |
||||||
|
})(); |
@ -0,0 +1,64 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 填报页面设置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-form-page" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 10, |
||||||
|
hgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.report.global_or_single_combo", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.grid", |
||||||
|
height: 78, |
||||||
|
columns: 2, |
||||||
|
rows: 2, |
||||||
|
items: [{ |
||||||
|
column: 0, |
||||||
|
row: 0, |
||||||
|
el: { |
||||||
|
type: "bi.report.sheet_label_location" |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 1, |
||||||
|
row: 0, |
||||||
|
el: { |
||||||
|
type: "bi.report.server.param_setting.report_show_location", |
||||||
|
height: 24 |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 0, |
||||||
|
row: 1, |
||||||
|
el: { |
||||||
|
type: "bi.report.form_background_setting" |
||||||
|
} |
||||||
|
}, { |
||||||
|
column: 1, |
||||||
|
row: 1, |
||||||
|
el: { |
||||||
|
type: "bi.report.leave_setting" |
||||||
|
} |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.settings.tool_bar", |
||||||
|
height: 180 |
||||||
|
}, { |
||||||
|
type: "bi.label", |
||||||
|
height: 24, |
||||||
|
textAlign: "left", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Editing_Listeners") + ":", |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.edit_list" |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.template.web_setting.form_page", Analysis); |
||||||
|
})(); |
@ -0,0 +1,73 @@ |
|||||||
|
!(function () { |
||||||
|
/** |
||||||
|
* 分页预览设置 |
||||||
|
*/ |
||||||
|
var Analysis = BI.inherit(BI.Widget, { |
||||||
|
props: { |
||||||
|
baseCls: "bi-report-server-param-setting-page-preview" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.vtape", |
||||||
|
vgap: 10, |
||||||
|
hgap: 10, |
||||||
|
items: [{ |
||||||
|
type: "bi.report.global_or_single_combo", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.report_show_location", |
||||||
|
height: 24 |
||||||
|
}, { |
||||||
|
type: "bi.vertical_adapt", |
||||||
|
height: 24, |
||||||
|
items: [{ |
||||||
|
type: "bi.label", |
||||||
|
text: BI.i18nText("Fine-Design_Report_PageSetup_Page"), |
||||||
|
textAlign: "right", |
||||||
|
width: 70 |
||||||
|
}, { |
||||||
|
el: { |
||||||
|
type: "bi.button_group", |
||||||
|
height: 24, |
||||||
|
chooseType: BI.Selection.Multi, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Is_Paint_Page"), |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_IS_Auto_Scale"), |
||||||
|
value: 2 |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_IS_TD_HEAVY_EXPORT"), |
||||||
|
value: 3 |
||||||
|
}], { |
||||||
|
type: "bi.multi_select_item", |
||||||
|
hgap: 5, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
iconWrapperWidth: 16 |
||||||
|
}), |
||||||
|
layouts: [{ |
||||||
|
type: "bi.left", |
||||||
|
lgap: 5 |
||||||
|
}] |
||||||
|
}, |
||||||
|
lgap: 10 |
||||||
|
}] |
||||||
|
}, { |
||||||
|
type: "bi.settings.tool_bar", |
||||||
|
height: 180 |
||||||
|
}, { |
||||||
|
type: "bi.label", |
||||||
|
height: 24, |
||||||
|
textAlign: "left", |
||||||
|
text: BI.i18nText("Fine-Design_Report_Editing_Listeners") + ":", |
||||||
|
}, { |
||||||
|
type: "bi.report.server.param_setting.edit_list" |
||||||
|
}] |
||||||
|
}; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.report.template.web_setting.page_preview", Analysis); |
||||||
|
})(); |
@ -0,0 +1,69 @@ |
|||||||
|
!(function () { |
||||||
|
BI.constant("bi.constant.report.template.web_setting", [ |
||||||
|
{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Basic"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.BASE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Printer(Server)"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.PRINT |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_WEB_Pagination_Setting"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.SPLIT_PAGE_PREVIEW_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_WEB_Write_Setting"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.FORM_PAGE_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Data_Analysis_Settings"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.DATA_ANALYSIS_SETTING |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Browser_Background"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.BROWSER |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_ReportServerP_Import_Css"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.IMPORT_CSS |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_ReportServerP_Import_JavaScript"), |
||||||
|
cls: "tab-item", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.IMPORT_JS |
||||||
|
}] |
||||||
|
); |
||||||
|
|
||||||
|
BI.constant("bi.constant.report.template.web_setting.tools", [ |
||||||
|
{ |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_ReportServerP_First"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.FIRST_PAGE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_ReportServerP_Previous"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.PRE_PAGE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_ReportServerP_Next"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.NEXT_PAGE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_ReportServerP_Last"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.LAST_PAGE |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_Print"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.PRINT |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_Export"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.EXPORT |
||||||
|
}, { |
||||||
|
text: BI.i18nText("Fine-Design_Report_Engine_Email"), |
||||||
|
cls: "close-font", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING_TOOLS.EMAIL |
||||||
|
}] |
||||||
|
); |
||||||
|
})(); |
@ -0,0 +1,48 @@ |
|||||||
|
!(function () { |
||||||
|
|
||||||
|
/** |
||||||
|
* 模板Web属性面板 |
||||||
|
*/ |
||||||
|
var Tab = BI.inherit(BI.Widget, { |
||||||
|
|
||||||
|
props: { |
||||||
|
baseCls: "bi-report-template-web-setting" |
||||||
|
}, |
||||||
|
|
||||||
|
render: function () { |
||||||
|
return { |
||||||
|
type: "bi.setting.tab", |
||||||
|
value: BICst.REPORT_TEMPLATE_WEB_SETTING.SPLIT_PAGE_PREVIEW_SETTING, |
||||||
|
tabItems: BI.Constants.getConstant("bi.constant.report.template.web_setting"), |
||||||
|
cardCreator: BI.bind(this._createCard, this) |
||||||
|
}; |
||||||
|
}, |
||||||
|
|
||||||
|
_createCard: function (v) { |
||||||
|
switch (v) { |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.SPLIT_PAGE_PREVIEW_SETTING: |
||||||
|
return { |
||||||
|
type: "bi.report.template.web_setting.page_preview" |
||||||
|
} |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.FORM_PAGE_SETTING: |
||||||
|
return { |
||||||
|
type: "bi.report.template.web_setting.form_page" |
||||||
|
} |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.DATA_ANALYSIS_SETTING: |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.BASE: |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.PRINT: |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.BROWSER: |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.IMPORT_CSS: |
||||||
|
case BICst.REPORT_TEMPLATE_WEB_SETTING.IMPORT_JS: |
||||||
|
default: |
||||||
|
return { |
||||||
|
type: "bi.label", |
||||||
|
text: "1" |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
BI.shortcut("bi.report.template.web_setting", Tab); |
||||||
|
})(); |
@ -0,0 +1,12 @@ |
|||||||
|
.bi-setting-tab .tab-group { |
||||||
|
background-color: #F2F4F7; |
||||||
|
font-size: 12px; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item:hover { |
||||||
|
color: #3685f2; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item.active { |
||||||
|
background-color: #ffffff; |
||||||
|
color: #3685f2; |
||||||
|
border-top: 3px solid #3685f2; |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,57 @@ |
|||||||
|
window.addEventListener("load", function (ev) { |
||||||
|
var combo1 = BI.createWidget({ |
||||||
|
type: "bi.vertical", |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
type: "bi.text_value_combo", |
||||||
|
text: "选项1", |
||||||
|
width: 300, |
||||||
|
items: [ |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项1", |
||||||
|
value: 1 |
||||||
|
}, |
||||||
|
text: "选项1", |
||||||
|
value: 1, |
||||||
|
lgap: 10 |
||||||
|
}, |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项2", |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
lgap: 10, |
||||||
|
text: "选项2", |
||||||
|
value: 2 |
||||||
|
}, |
||||||
|
{ |
||||||
|
el: { |
||||||
|
type: "bi.single_select_radio_item", |
||||||
|
width: 290, |
||||||
|
text: "选项3", |
||||||
|
value: 3 |
||||||
|
}, |
||||||
|
lgap: 10, |
||||||
|
text: "选项3", |
||||||
|
value: 3 |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
] |
||||||
|
}); |
||||||
|
|
||||||
|
BI.createWidget({ |
||||||
|
type:"bi.absolute", |
||||||
|
element: "body", |
||||||
|
items: [{ |
||||||
|
el: combo1, |
||||||
|
left: 100, |
||||||
|
top: 100 |
||||||
|
}] |
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,12 @@ |
|||||||
|
.bi-setting-tab .tab-group { |
||||||
|
background-color: #F2F4F7; |
||||||
|
font-size: 12px; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item:hover { |
||||||
|
color: #3685f2; |
||||||
|
} |
||||||
|
.bi-setting-tab .tab-group .tab-item.active { |
||||||
|
background-color: #ffffff; |
||||||
|
color: #3685f2; |
||||||
|
border-top: 3px solid #3685f2; |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 14 MiB |
Before Width: | Height: | Size: 26 MiB After Width: | Height: | Size: 16 MiB |
Loading…
Reference in new issue