LAPTOP-SB56SG4Q\86185
2 years ago
11 changed files with 4781 additions and 1 deletions
@ -1,3 +1,6 @@
|
||||
# open-JSD-9636 |
||||
|
||||
JSD-9636 决策平台样式调整 |
||||
JSD-9636 决策平台样式调整\ |
||||
免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ |
||||
仅作为开发者学习参考使用!禁止用于任何商业用途!\ |
||||
为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 |
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
<plugin> |
||||
<id>com.eco.plugin.xxxx.custom.header.height</id> |
||||
<name><![CDATA[header高度自定义插件]]></name> |
||||
<active>yes</active> |
||||
<version>1.0.0</version> |
||||
<env-version>10.0</env-version> |
||||
<jartime>2020-03-10</jartime> |
||||
<vendor>fr.open</vendor> |
||||
<description><![CDATA[header高度自定义插件]]></description> |
||||
<function-recorder class="com.fr.plugin.HeaderHeightJSHandler"/> |
||||
|
||||
<lifecycle-monitor class="com.fr.plugin.CULifeCycleMonitor"/> |
||||
<change-notes> |
||||
<![CDATA[ |
||||
<p>[2019-6-19]项目启动</p> |
||||
]]> |
||||
</change-notes> |
||||
<main-package>com.fr.plugin</main-package> |
||||
|
||||
<extra-decision> |
||||
<WebResourceProvider class="com.fr.plugin.HeaderHeightJSHandler"/> |
||||
</extra-decision> |
||||
</plugin> |
@ -0,0 +1,16 @@
|
||||
package com.fr.plugin; |
||||
|
||||
import com.fr.plugin.context.PluginContext; |
||||
import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor; |
||||
|
||||
public class CULifeCycleMonitor extends AbstractPluginLifecycleMonitor { |
||||
@Override |
||||
public void afterRun(PluginContext pluginContext) { |
||||
CustomHeaderHeightConfig.getInstance(); |
||||
} |
||||
|
||||
@Override |
||||
public void beforeStop(PluginContext pluginContext) { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,56 @@
|
||||
package com.fr.plugin; |
||||
|
||||
import com.fr.plugin.context.PluginContexts; |
||||
import com.fr.plugin.transform.ExecuteFunctionRecord; |
||||
import com.fr.plugin.transform.FunctionRecorder; |
||||
import com.fr.web.struct.Component; |
||||
import com.fr.web.struct.Filter; |
||||
import com.fr.web.struct.browser.RequestClient; |
||||
import com.fr.web.struct.category.FileType; |
||||
import com.fr.web.struct.category.ScriptPath; |
||||
import com.fr.web.struct.category.StylePath; |
||||
@FunctionRecorder() |
||||
public class CustomHeaderHeightComponent extends Component { |
||||
public static final CustomHeaderHeightComponent KEY = new CustomHeaderHeightComponent(); |
||||
/** |
||||
* 返回需要引入的JS脚本路径 |
||||
* @param client 请求客户端描述 |
||||
* @return JS脚本路径 |
||||
*/ |
||||
@ExecuteFunctionRecord |
||||
public ScriptPath script( RequestClient client ) { |
||||
if (PluginContexts.currentContext().isAvailable()) { |
||||
// 做认证通过的事情
|
||||
return ScriptPath.build("com.fr.plugin.CustomHeaderHeightJS", FileType.CLASS); |
||||
|
||||
} else { |
||||
// 做认证未通过的事情
|
||||
return ScriptPath.build("com/fr/plugin/web/webnuy.js"); |
||||
} |
||||
|
||||
} |
||||
|
||||
/** |
||||
* 返回需要引入的CSS样式路径 |
||||
* @param client 请求客户端描述 |
||||
* @return CSS样式路径 |
||||
*/ |
||||
public StylePath style( RequestClient client ) { |
||||
//如果不需要就直接返回 StylePath.EMPTY;
|
||||
return StylePath.EMPTY; |
||||
} |
||||
|
||||
/** |
||||
* 通过给定的资源过滤器控制是否加载这个资源 |
||||
* @return 资源过滤器 |
||||
*/ |
||||
public Filter filter() { |
||||
return new Filter(){ |
||||
@Override |
||||
public boolean accept() { |
||||
//任何情况下我们都在平台组件加载时加载我们的组件
|
||||
return true; |
||||
} |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,38 @@
|
||||
package com.fr.plugin; |
||||
|
||||
import com.fr.config.*; |
||||
import com.fr.config.holder.Conf; |
||||
import com.fr.config.holder.factory.Holders; |
||||
|
||||
@Visualization(category = "自定义Header高度配置") |
||||
public class CustomHeaderHeightConfig extends DefaultConfiguration { |
||||
|
||||
private static volatile CustomHeaderHeightConfig config = null; |
||||
|
||||
public static CustomHeaderHeightConfig getInstance() { |
||||
if (config == null) { |
||||
config = ConfigContext.getConfigInstance(CustomHeaderHeightConfig.class); |
||||
} |
||||
return config; |
||||
} |
||||
|
||||
@Identifier(value = "customHeight", name = "高度(px)", description = "直接输入数字,修改后需要清空缓存", status = Status.SHOW) |
||||
private Conf<Integer> customHeight = Holders.simple(60); |
||||
|
||||
|
||||
public Integer getCustomHeight() { |
||||
return customHeight.get(); |
||||
} |
||||
|
||||
public void setCustomHeight(Integer customHeight) { |
||||
this.customHeight.set(customHeight); |
||||
} |
||||
|
||||
@Override |
||||
public Object clone() throws CloneNotSupportedException { |
||||
CustomHeaderHeightConfig cloned = (CustomHeaderHeightConfig) super.clone(); |
||||
cloned.customHeight = (Conf<Integer>) customHeight.clone(); |
||||
return cloned; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,37 @@
|
||||
package com.fr.plugin; |
||||
|
||||
import com.fr.base.TemplateUtils; |
||||
import com.fr.gen.TextGenerator; |
||||
import com.fr.plugin.context.PluginContexts; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
public class CustomHeaderHeightJS implements TextGenerator { |
||||
|
||||
|
||||
public String text(HttpServletRequest req, HttpServletResponse res) throws Exception { |
||||
Map<String, Object> renderMap = new HashMap(); |
||||
CustomHeaderHeightConfig instance = CustomHeaderHeightConfig.getInstance(); |
||||
Integer height = instance.getCustomHeight(); |
||||
renderMap.put("height", height); |
||||
if (PluginContexts.currentContext().isAvailable()) { |
||||
// 做认证通过的事情
|
||||
return TemplateUtils.renderTemplate(this.template(), renderMap); |
||||
} else { |
||||
// 做认证未通过的事情
|
||||
return TemplateUtils.renderTemplate("/com/fr/plugin/scanBuy.tpl", renderMap); |
||||
} |
||||
} |
||||
|
||||
|
||||
public String mimeType() { |
||||
return "text/javascript"; |
||||
} |
||||
|
||||
public String template() { |
||||
return "/com/fr/plugin/web/customHeightweb.js"; |
||||
} |
||||
} |
@ -0,0 +1,34 @@
|
||||
package com.fr.plugin; |
||||
|
||||
import com.fr.decision.fun.impl.AbstractWebResourceProvider; |
||||
import com.fr.decision.web.MainComponent; |
||||
import com.fr.plugin.transform.ExecuteFunctionRecord; |
||||
import com.fr.plugin.transform.FunctionRecorder; |
||||
import com.fr.stable.fun.Authorize; |
||||
import com.fr.web.struct.Atom; |
||||
@Authorize(callSignKey = "com.eco.plugin.zzl.custom.header.height" ) |
||||
@FunctionRecorder |
||||
public class HeaderHeightJSHandler extends AbstractWebResourceProvider { |
||||
|
||||
/** |
||||
* 需要附加到的主组件 |
||||
* |
||||
* @return 主组件 |
||||
*/ |
||||
|
||||
@Override |
||||
@ExecuteFunctionRecord |
||||
public Atom attach() { |
||||
return MainComponent.KEY; |
||||
} |
||||
|
||||
/** |
||||
* 客户端所需的组件 |
||||
* |
||||
* @return 组件 |
||||
*/ |
||||
@Override |
||||
public Atom client() { |
||||
return CustomHeaderHeightComponent.KEY; |
||||
} |
||||
} |
@ -0,0 +1,16 @@
|
||||
;(function ($){ |
||||
BI.config("dec.provider.layout", function (provider) { |
||||
var height=parseInt('${height}') |
||||
debugger |
||||
provider.inject({ |
||||
layoutConfig: { |
||||
north: { |
||||
height: height, |
||||
invisible: false, |
||||
}, |
||||
}, |
||||
}); |
||||
}); |
||||
|
||||
|
||||
})(jQuery) |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue