Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
22
议题
22
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7
提交
7c667f93
提交
7c667f93
编写于
11月 07, 2022
作者:
Mosher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:更新
上级
2088ca49
变更
1
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
138 行增加
和
11 行删除
+138
-11
%APP_DEUILOGIC%-ui-logic-base.ts.ftl
...service/%DE_PKGPATH%/%APP_DEUILOGIC%-ui-logic-base.ts.ftl
+138
-11
未找到文件。
APP/src/uiservice/%DE_PKGPATH%/%APP_DEUILOGIC%-ui-logic-base.ts.ftl
浏览文件 @
7c667f93
...
...
@@ -2,7 +2,28 @@
TARGET=PSAPPDEUILOGIC
</#ibiztemplate>
import { ILogicNode } from "@/interface/logic";
import { UIActionContext } from "@/logic/ui-logic";
import {
UIActionContext,
UILogicAppendParamNode,
UILogicBeginNode,
UILogicBindParamNode,
UILogicCopyParamNode,
UILogicDataSetNode,
UILogicDeActionNode,
UILogicDebugParamNode,
UILogicDeLogicNode,
UILogicDeUIActionNode,
UILogicEndNode,
UILogicMsgboxNode,
UILogicPrepareParamNode,
UILogicRawCodeNode,
UILogicReNewParamNode,
UILogicResetParamNode,
UILogicSortParamNode,
UILogicThrowExceptionNode,
UILogicViewctrlFireEventNode,
UILogicViewctrlInvokeNode
} from "@/logic/ui-logic";
/**
* ${item.name}
...
...
@@ -42,12 +63,23 @@ export default class ${srfclassname('${item.getCodeName()}')}UILogicBase {
{
name: '${logicParam.name}',
codeName: '${logicParam.codeName}',
default: <#if logicParam.isDefault?? && logicParam.isDefault()>true<#else>false</#if>,
navContextParam: <#if logicParam.isNavContextParam?? && logicParam.isNavContextParam()>true<#else>false</#if>,
navViewParamParam: <#if logicParam.isNavViewParamParam?? && logicParam.isNavViewParamParam()>true<#else>false</#if>,
activeContainerParam: <#if logicParam.isActiveContainerParam?? && logicParam.isActiveContainerParam()>true<#else>false</#if>,
activeCtrlParam: <#if logicParam.isActiveCtrlParam?? && logicParam.isActiveCtrlParam()>true<#else>false</#if>,
activeViewParam: <#if logicParam.isActiveViewParam?? && logicParam.isActiveViewParam()>true<#else>false</#if>,
appGlobalParam: <#if logicParam.isAppGlobalParam?? && logicParam.isAppGlobalParam()>true<#else>false</#if>,
applicationParam: <#if logicParam.isApplicationParam?? && logicParam.isApplicationParam()>true<#else>false</#if>,
ctrlParam: <#if logicParam.isCtrlParam?? && logicParam.isCtrlParam()>true<#else>false</#if>,
default: <#if logicParam.isDefault?? && logicParam.isDefault()>true<#else>false</#if>,
entityParam: <#if logicParam.isEntityParam?? && logicParam.isEntityParam()>true<#else>false</#if>,
entityListParam: <#if logicParam.isEntityListParam?? && logicParam.isEntityListParam()>true<#else>false</#if>,
entityPageParam: <#if logicParam.isEntityPageParam?? && logicParam.isEntityPageParam()>true<#else>false</#if>,
filterParam: <#if logicParam.isFilterParam?? && logicParam.isFilterParam()>true<#else>false</#if>,
navContextParam: <#if logicParam.isNavContextParam?? && logicParam.isNavContextParam()>true<#else>false</#if>,
simpleParam: <#if logicParam.isSimpleParam?? && logicParam.isSimpleParam()>true<#else>false</#if>,
simpleListParam: <#if logicParam.isSimpleListParam?? && logicParam.isSimpleListParam()>true<#else>false</#if>,
routeViewSessionParam: <#if logicParam.isRouteViewSessionParam?? && logicParam.isRouteViewSessionParam()>true<#else>false</#if>,
viewNavDataParam: <#if logicParam.isViewNavDataParam?? && logicParam.isViewNavDataParam()>true<#else>false</#if>,
viewSessionParam: <#if logicParam.isViewSessionParam?? && logicParam.isViewSessionParam()>true<#else>false</#if>,
lastReturnParam: <#if logicParam.isLastReturnParam?? && logicParam.isLastReturnParam()>true<#else>false</#if>
},
</#list>
...
...
@@ -148,14 +180,13 @@ export default class ${srfclassname('${item.getCodeName()}')}UILogicBase {
async execute(args: any[], context:any = {} ,params: any = {}, $event?: any, xData?: any, actioncontext?: any, srfParentDeName?: string) {
try {
const actionContext = this.beforeExecute(args, context, params, $event, xData, actioncontext, srfParentDeName);
const startNode = this.logicNodes.find((logicNode: ILogicNode) => logicNode.codeName === this.startLogicNode);
if (!startNode) {
if (!this.startLogicNode) {
throw new Error('没有开始节点');
}
await this.executeNode(
start
Node, actionContext);
await this.executeNode(
this.startLogic
Node, actionContext);
return actionContext.getResult();
} catch (error: any) {
<#noparse>throw new Error(`${error && error.message ? error.message : '发生未知错误!'}`);</#noparse>
throw new Error(`${error && error.message ? error.message : '发生未知错误!'}`);
}
}
...
...
@@ -166,18 +197,114 @@ export default class ${srfclassname('${item.getCodeName()}')}UILogicBase {
* @param {UIActionContext} actionContext
* @memberof ${srfclassname('${item.getCodeName()}')}UILogicBase
*/
executeNode(logicNode: ILogicNode, actionContext: UIActionContext) {
async executeNode(logicNodeName: string, actionContext: UIActionContext) {
const logicNode = this.logicNodes.find((node: ILogicNode) => node.codeName === logicNodeName) as ILogicNode;
if (!logicNode) {
console.log(`未找到 ${logicNodeName} 节点`);
}
let result: any = { actionContext };
try {
switch (logicNode.logicNodeType) {
// 开始节点
case 'BEGIN':
console.log(111, '执行开始节点');
result = await new UILogicBeginNode().executeNode(logicNode, actionContext);
break;
// 准备参数节点
case 'PREPAREJSPARAM':
result = await new UILogicPrepareParamNode().executeNode(logicNode, actionContext);
break;
// 重置参数节点
case 'RESETPARAM':
result = await new UILogicResetParamNode().executeNode(logicNode, actionContext);
break;
// 拷贝参数
case 'COPYPARAM':
result = await new UILogicCopyParamNode().executeNode(logicNode, actionContext);
break;
// 绑定参数
case 'BINDPARAM':
result = await new UILogicBindParamNode().executeNode(logicNode, actionContext);
break;
// 重新建立参数
case 'RENEWPARAM':
result = await new UILogicReNewParamNode().executeNode(logicNode, actionContext);
break;
// 调用实体界面行为
case 'DEUIACTION':
result = await new UILogicDeUIActionNode().executeNode(logicNode, actionContext);
break;
// 行为处理节点
case 'DEACTION':
result = await new UILogicDeActionNode().executeNode(logicNode, actionContext);
break;
// 实体处理逻辑
case 'DELOGIC':
result = await new UILogicDeLogicNode().executeNode(logicNode, actionContext);
break;
// 实体数据集
case 'DEDATASET':
result = await new UILogicDataSetNode().executeNode(logicNode, actionContext);
break;
// 附加到数组参数
case 'APPENDPARAM':
result = await new UILogicAppendParamNode().executeNode(logicNode, actionContext);
break;
// 排序数组参数
case 'SORTPARAM':
result = await new UILogicSortParamNode().executeNode(logicNode, actionContext);
break;
// 视图部件调用
case 'VIEWCTRLINVOKE':
result = await new UILogicViewctrlInvokeNode().executeNode(logicNode, actionContext);
break;
// 视图部件事件触发
case 'VIEWCTRLFIREEVENT':
result = await new UILogicViewctrlFireEventNode().executeNode(logicNode, actionContext);
break;
// 调试逻辑参数
case 'DEBUGPARAM':
result = await new UILogicDebugParamNode().executeNode(logicNode, actionContext);
break;
// 消息弹窗
case 'MSGBOX':
result = await new UILogicMsgboxNode().executeNode(logicNode, actionContext);
break;
// 前端代码
case 'RAWJSCODE':
result = await new UILogicRawCodeNode().executeNode(logicNode, actionContext);
break;
// 异常处理
case 'THROWEXCEPTION':
result = await new UILogicThrowExceptionNode().executeNode(logicNode, actionContext);
break;
// 结束
case 'END':
console.log(111, '执行结束节点'
);
result = await new UILogicEndNode().executeNode(logicNode, actionContext
);
break;
default:
console.log(`${logicNode.logicNodeType}暂未支持`);
}
// 有后续节点时继续递归,反之返回,抛异常无返回值
if (result && result.nextNodes && result.nextNodes.length > 0) {
await this.executeNextNodes(result.nextNodes, actionContext);
}
} catch (error: any) {
throw new Error(`${error && error.message ? error.message : '发生未知错误!'}`);
}
}
/**
* 执行后续节点集合
*
* @param {any[]} nextNodes
* @param {UIActionContext} actionContext
* @memberof ${srfclassname('${item.getCodeName()}')}UILogicBase
*/
public async executeNextNodes(nextNodes: any[], actionContext: UIActionContext) {
if (nextNodes && (nextNodes.length > 0)) {
for (let nextNode of nextNodes) {
await this.executeNode(nextNode, actionContext);
}
}
}
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录