From 1f73e90aaf405688574818561196a6a375eafc46 Mon Sep 17 00:00:00 2001 From: zhenggm Date: Wed, 22 Jun 2022 19:29:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E5=A4=9A=E4=BD=99module=EF=BC=8C?= =?UTF-8?q?=E5=8A=A0js=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smtweb-framework/pom.xml | 3 -- .../cc/smtweb/system/bpm/util/CodeGenerator.java | 6 ++++ .../bpm/web/design/form/CodeBuildHandler.java | 35 ++++++++++++++++++++++ .../bpm/web/design/form/ModelFormService.java | 12 +++++++- .../main/resources/static/template/js_event.ftl | 17 +++++++++++ 5 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 smtweb-system/sw-system-bpm/src/main/resources/static/template/js_event.ftl diff --git a/smtweb-framework/pom.xml b/smtweb-framework/pom.xml index f4a9585..7eed8ef 100644 --- a/smtweb-framework/pom.xml +++ b/smtweb-framework/pom.xml @@ -26,9 +26,6 @@ sw-framework-core - sw-framework-auth - sw-framework-file - sw-framework-web ../smtweb-system/sw-system-bpm diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/CodeGenerator.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/CodeGenerator.java index 944e3d2..50a624b 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/CodeGenerator.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/CodeGenerator.java @@ -24,6 +24,7 @@ public class CodeGenerator { private final static String TEMPLATE_JAVA_BEAN = "java_bean"; private final static String TEMPLATE_JAVA_CACHE = "java_cache"; private final static String TEMPLATE_JAVA_SERVICE = "java_service"; + private final static String TEMPLATE_JS_EVENT = "js_event"; private static CodeGenerator instance = null; private Configuration configuration = null; @@ -111,6 +112,11 @@ public class CodeGenerator { generate(model, TEMPLATE_JAVA_SERVICE, fileName); } + public void generateJsEvent(Map model, String fileName) { + generate(model, TEMPLATE_JS_EVENT, fileName); + } + + /** * 获取单实例 * diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/CodeBuildHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/CodeBuildHandler.java index b83b1ab..2649a2f 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/CodeBuildHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/CodeBuildHandler.java @@ -58,6 +58,35 @@ public class CodeBuildHandler extends AbstractHandler { return R.success(); } + public R buildJsCode() { + userName = String.valueOf(us.getUserId()); + //页面id + long pageId = params.readLong("pageId"); + ModelForm form = ModelFormCache.getInstance().get(pageId); + if (form == null) throw new BizException("未找到指定的页面定义(" + pageId + ")!"); + String moduleName = ModelProjectCache.getInstance().getModule(form.getPrjId()); + + if (StringUtils.isEmpty(moduleName) || SwConsts.DEF_DB_NAME.equals(moduleName) || moduleName.equals("bpm")) { + moduleName = "sw-system-bpm"; + } + BpmConfigBean bpmConfigBean = SpringUtil.getBean(BpmConfigBean.class); + Map mapIdeaModules = IdeaUtil.getModules(bpmConfigBean.getCodeJavaPath()); + if (mapIdeaModules == null || mapIdeaModules.isEmpty()) throw new BizException("没有定义idea项目的路径(smtweb.bpm.codeJavaPath)!"); + codeJavaPath = mapIdeaModules.get(moduleName); + if (StringUtils.isEmpty(codeJavaPath)) { + throw new BizException("没有找到对应项目在idea中Module的路径(" + moduleName + ")!"); + } + codeJavaPath += "/src/main/resources/"; + //加上目录 + String cn = ModelCatalogCache.getInstance().getFullName(form.getMcId()); + if (StringUtils.isNotEmpty(cn)) { + codeJavaPath += cn.replaceAll("\\.", "/"); + } + new File(codeJavaPath).mkdirs(); + + return R.success(); + } + /** * 构建java代码路径 * @@ -89,6 +118,12 @@ public class CodeBuildHandler extends AbstractHandler { } codeJavaPath += packageName.replaceAll("\\.", "/"); new File(codeJavaPath).mkdirs(); + + SwMap model = new SwMap(); + model.put("user", userName); + model.put("sysTime", DateUtil.nowDateTime()); + model.put("title", form.getTitle()); + CodeGenerator.getInstance().generateJsEvent(model, codeJavaPath + "/" + form.getName() + ".js"); } /** diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java index 38fe4da..5ebb9b7 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java @@ -145,7 +145,7 @@ public class ModelFormService extends AbstractCompService { return R.success(CodeGenerator.getInstance().getModelTemplates()); } - //加载模板定义 + //生成java代码 public R buildJavaCode(@SwBody SwMap params, UserSession us) { try { CodeBuildHandler handler = (CodeBuildHandler) getHandler(params, us, TYPE_CODE); @@ -154,4 +154,14 @@ public class ModelFormService extends AbstractCompService { return R.error("操作失败!", e); } } + + //生成js代码 + public R buildJsCode(@SwBody SwMap params, UserSession us) { + try { + CodeBuildHandler handler = (CodeBuildHandler) getHandler(params, us, TYPE_CODE); + return handler.buildJsCode(); + } catch (Exception e) { + return R.error("操作失败!", e); + } + } } diff --git a/smtweb-system/sw-system-bpm/src/main/resources/static/template/js_event.ftl b/smtweb-system/sw-system-bpm/src/main/resources/static/template/js_event.ftl new file mode 100644 index 0000000..3ea7c4e --- /dev/null +++ b/smtweb-system/sw-system-bpm/src/main/resources/static/template/js_event.ftl @@ -0,0 +1,17 @@ +/** + * Created by ${user} at ${sysTime} + * 注册事件类【${title}】,参看event.defaultEvent.js +*/ +window.$swEvent.setup("defaultEvent", { + setup(page){ + const { $params,$refs, $widgets, $model, $utils, $tabRouter, $api } = page; + const { $$message, $$http } = $utils; + // 示例 + const demoFunc = () => { + + }; + return { + demoFunc, + } + } +}); \ No newline at end of file