diff --git a/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue b/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue index 02b2d918..0d0f2e4d 100644 --- a/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue +++ b/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue @@ -117,14 +117,14 @@ { width: 30, name: 'pd', label: $t('io.sc.engine.mv.result.binomial.pd'), align: 'right' }, { width: 30, name: 'count', label: $t('io.sc.engine.mv.result.binomial.count'), align: 'right' }, { width: 50, name: 'defaultCount', label: $t('io.sc.engine.mv.result.binomial.defaultCount'), align: 'right' }, - { width: 50, name: 'ndAvg', label: $t('io.sc.engine.mv.result.binomial.ndAvg'), align: 'right', showIf: false }, - { width: 50, name: 'ndSd', label: $t('io.sc.engine.mv.result.binomial.ndSd'), align: 'right', showIf: false }, - { width: 50, name: 'sl', label: $t('io.sc.engine.mv.result.binomial.sl'), align: 'right', showIf: false }, - { width: 50, name: 'cl', label: $t('io.sc.engine.mv.result.binomial.cl'), align: 'right', showIf: false }, - { width: 50, name: 'zUpper', label: $t('io.sc.engine.mv.result.binomial.zUpper'), align: 'right', showIf: false }, - { width: 50, name: 'zLower', label: $t('io.sc.engine.mv.result.binomial.zLower'), align: 'right', showIf: false }, - { width: 50, name: 'dUpper', label: $t('io.sc.engine.mv.result.binomial.dUpper'), align: 'right', showIf: false }, - { width: 50, name: 'dLower', label: $t('io.sc.engine.mv.result.binomial.dLower'), align: 'right', showIf: false }, + { width: 50, name: 'ndAvg', label: $t('io.sc.engine.mv.result.binomial.ndAvg'), align: 'right', hidden: true }, + { width: 50, name: 'ndSd', label: $t('io.sc.engine.mv.result.binomial.ndSd'), align: 'right', hidden: true }, + { width: 50, name: 'sl', label: $t('io.sc.engine.mv.result.binomial.sl'), align: 'right', hidden: true }, + { width: 50, name: 'cl', label: $t('io.sc.engine.mv.result.binomial.cl'), align: 'right', hidden: true }, + { width: 50, name: 'zUpper', label: $t('io.sc.engine.mv.result.binomial.zUpper'), align: 'right', hidden: true }, + { width: 50, name: 'zLower', label: $t('io.sc.engine.mv.result.binomial.zLower'), align: 'right', hidden: true }, + { width: 50, name: 'dUpper', label: $t('io.sc.engine.mv.result.binomial.dUpper'), align: 'right', hidden: true }, + { width: 50, name: 'dLower', label: $t('io.sc.engine.mv.result.binomial.dLower'), align: 'right', hidden: true }, { width: 50, name: 'leUpper', label: $t('io.sc.engine.mv.result.binomial.leUpper'), align: 'center', format: passOrNotFormater }, { width: 50, name: 'geLower', label: $t('io.sc.engine.mv.result.binomial.geLower'), align: 'center', format: passOrNotFormater }, ]" diff --git a/io.sc.engine.rule.frontend/src/i18n/messages.json b/io.sc.engine.rule.frontend/src/i18n/messages.json index 08d7a55e..99f9e13c 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages.json @@ -105,6 +105,14 @@ "re.resources.designer.processor.grid.entity.rule": "Rule", "re.resources.designer.processor.grid.entity.singleRule": "Single Rule", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "Add Column at Left", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "Add Column at Right", + "re.resources.designer.processor.decisionTable.toolbar.addRow": "Add Row", + "re.resources.designer.processor.decisionTable.toolbar.removeCol": "Remove Column", + "re.resources.designer.processor.decisionTable.toolbar.removeRow": "Remove Row", + "re.resources.designer.processor.decisionTable.action.addConditionRow": "Add Condition Row", + "re.resources.designer.processor.decisionTable.action.addResultRow": "Add Result Row", + "re.resources.designer.processor.dialog.decisionTree.title": "Decision Tree Designer", "re.resources.designer.processor.dialog.executionFlow.title": "Execution Flow Designer", diff --git a/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json b/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json index 4df86608..36774442 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json @@ -105,6 +105,14 @@ "re.resources.designer.processor.grid.entity.rule": "規則", "re.resources.designer.processor.grid.entity.singleRule": "單規則", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "在左邊新增列", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "在右邊新增列", + "re.resources.designer.processor.decisionTable.toolbar.addRow": "新增行", + "re.resources.designer.processor.decisionTable.toolbar.removeCol": "刪除列", + "re.resources.designer.processor.decisionTable.toolbar.removeRow": "刪除行", + "re.resources.designer.processor.decisionTable.action.addConditionRow": "添加條件行", + "re.resources.designer.processor.decisionTable.action.addResultRow": "添加結果行", + "re.resources.designer.processor.dialog.decisionTree.title": "決策樹設計器", "re.resources.designer.processor.dialog.executionFlow.title": "執行流設計器", diff --git a/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json b/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json index 52b991bc..d3b913a4 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json @@ -105,6 +105,14 @@ "re.resources.designer.processor.grid.entity.rule": "规则", "re.resources.designer.processor.grid.entity.singleRule": "单规则", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "在左边新增列", + "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "在右边新增列", + "re.resources.designer.processor.decisionTable.toolbar.addRow": "新增行", + "re.resources.designer.processor.decisionTable.toolbar.removeCol": "删除列", + "re.resources.designer.processor.decisionTable.toolbar.removeRow": "删除行", + "re.resources.designer.processor.decisionTable.action.addConditionRow": "添加条件行", + "re.resources.designer.processor.decisionTable.action.addResultRow": "添加结果行", + "re.resources.designer.processor.dialog.decisionTree.title": "决策树设计器", "re.resources.designer.processor.dialog.executionFlow.title": "执行流设计器", diff --git a/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue b/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue index f8f72ff5..3d86a812 100644 --- a/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue +++ b/io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue @@ -391,7 +391,7 @@ ], primaryKey: 'code', columns: [ - { name: 'code', label: 'code', showIf: false }, + { name: 'code', label: 'code', hidden: true }, { width: 300, name: 'name', @@ -628,7 +628,7 @@ ], primaryKey: 'uuid', columns: [ - { width: 200, name: 'uuid', label: 'uuid', showIf: false }, + { width: 200, name: 'uuid', label: 'uuid', hidden: true }, { width: 60, name: 'minIncluded', @@ -735,7 +735,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { name: 'condition', label: $t('condition'), @@ -902,7 +902,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { width: '50%', name: 'name', @@ -1049,7 +1049,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { width: '50%', name: 'field', diff --git a/io.sc.engine.rule.frontend/src/views/lib/TestCase.vue b/io.sc.engine.rule.frontend/src/views/lib/TestCase.vue index 28f75323..cc3cf821 100644 --- a/io.sc.engine.rule.frontend/src/views/lib/TestCase.vue +++ b/io.sc.engine.rule.frontend/src/views/lib/TestCase.vue @@ -58,8 +58,8 @@ 'export', ]" :columns="[ - { width: 50, name: 'order', label: $t('order'), showIf: false }, - { width: 100, name: 'id', label: $t('id'), showIf: false }, + { width: 50, name: 'order', label: $t('order'), hidden: true }, + { width: 100, name: 'id', label: $t('id'), hidden: true }, { width: 80, name: 'testResult', diff --git a/io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue b/io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue index 92d17869..8229b09e 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue @@ -37,7 +37,7 @@ :fetch-data-url="fetchDataUrl + '?' + foreignKey + '=' + foreignValue" :data-url="dataUrl" :columns="[ - { width: 120, name: 'id', label: $t('id'), showIf: false }, + { width: 120, name: 'id', label: $t('id'), hidden: true }, { width: '100%', name: 'name', diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue index 0c30b2a2..4277975e 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue @@ -402,6 +402,44 @@ return str; } return ''; + } else if ('DECISION_TABLE_2C' === type) { + const objs = Tools.json2Object(row.decisionTable2C); + if (objs) { + let str = `
`; + str += ``; + objs.forEach((obj) => { + str += ''; + Object.keys(obj).forEach((key) => { + if (key !== 'uuid' && typeof obj[key] === 'string') { + str += ' '; + } + }); + str += ''; + }); + str += '
' + PlaceHolder.replace(obj[key]) + '
'; + str += `
`; + return str; + } + return ''; + } else if ('DECISION_TABLE' === type) { + const objs = Tools.json2Object(row.decisionTable); + if (objs) { + let str = `
`; + str += ``; + objs.forEach((obj) => { + str += ''; + Object.keys(obj).forEach((key) => { + if (key !== 'uuid' && typeof obj[key] === 'string') { + str += ' '; + } + }); + str += ''; + }); + str += '
' + PlaceHolder.replace(obj[key]) + '
'; + str += `
`; + return str; + } + return ''; } else if ('PMML' === type) { return transfromContent(row.pmml); } else if ('GROOVY_SCRIPT' === type) { @@ -523,7 +561,7 @@ ], primaryKey: 'code', columns: [ - { name: 'code', label: 'code', showIf: false }, + { name: 'code', label: 'code', hidden: true }, { width: 300, name: 'name', @@ -771,7 +809,7 @@ ], primaryKey: 'uuid', columns: [ - { width: 200, name: 'uuid', label: 'uuid', showIf: false }, + { width: 200, name: 'uuid', label: 'uuid', hidden: true }, { width: 60, name: 'minIncluded', @@ -880,7 +918,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { name: 'condition', label: $t('condition'), @@ -951,21 +989,231 @@ colSpan: 5, name: 'decisionTable2C', label: $t('re.resources.designer.processor.grid.entity.decisionTable2C'), - type: 'w-code-mirror', - rows: 1, showIf: (arg) => { return 'DECISION_TABLE_2C' === arg.form.getFieldValue('type'); }, + type: 'w-grid', + height: 300, + dbClickOperation: 'edit', + autoFetchData: false, + denseBody: true, + draggable: true, + pageable: false, + configButton: false, + toolbarConfigure: { noIcon: false }, + toolbarActions: [ + [ + { + extend: 'add', + click: undefined, + }, + { + name: 'addCol2Left', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addCol2Left'), + enableIf: (args) => { + return true; + }, + click: () => {}, + }, + { + name: 'addCol2Right', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addCol2Right'), + enableIf: (args) => { + return true; + }, + click: () => {}, + }, + 'separator', + { + name: 'addRow', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addRow'), + click: () => {}, + }, + ], + [ + { + extend: 'remove', + click: undefined, + }, + { + name: 'removeCol', + label: $t('re.resources.designer.processor.decisionTable.toolbar.removeCol'), + click: () => {}, + }, + { + name: 'removeRow', + label: $t('re.resources.designer.processor.decisionTable.toolbar.removeRow'), + click: () => {}, + }, + ], + 'separator', + { + name: 'example', + label: $t('example'), + icon: 'bi-balloon', + click: (arg) => { + const grid = gridRef.getEditorForm().getFieldComponent('decisionTable2C'); + const sampleData = [ + { uuid: Tools.uuid(), C0: '', C1: '${客户类型}==\'普通客户\'', C2: '${客户类型}==\'VIP客户\'', C3: '${客户类型}==\'临时客户\'' }, + { uuid: Tools.uuid(), C0: '${评分结果}<60', C1: '1', C2: '3', C3: '5' }, + { uuid: Tools.uuid(), C0: '${评分结果}>=60', C1: '2', C2: '4', C3: '6' }, + ]; + grid.setLocalData(sampleData); + }, + }, + ], + primaryKey: 'uuid', + columns: [ + { name: 'uuid', label: 'uuid', hidden: true }, + { + name: 'C0', + label: $t('C0'), + align: 'left', + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C1', + label: $t('C1'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C2', + label: $t('C2'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C3', + label: $t('C3'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + ], }, { colSpan: 5, name: 'decisionTable', label: $t('re.resources.designer.processor.grid.entity.decisionTable'), - type: 'w-code-mirror', - rows: 1, showIf: (arg) => { return 'DECISION_TABLE' === arg.form.getFieldValue('type'); }, + type: 'w-grid', + height: 300, + dbClickOperation: 'edit', + autoFetchData: false, + denseBody: true, + draggable: true, + pageable: false, + configButton: false, + toolbarConfigure: { noIcon: false }, + toolbarActions: [ + [ + { + extend: 'add', + click: undefined, + }, + { + name: 'addCol2Left', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addCol2Left'), + enableIf: (args) => { + return true; + }, + click: () => {}, + }, + { + name: 'addCol2Right', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addCol2Right'), + enableIf: (args) => { + return true; + }, + click: () => {}, + }, + 'separator', + { + name: 'addRow', + label: $t('re.resources.designer.processor.decisionTable.toolbar.addRow'), + click: () => {}, + }, + ], + [ + { + extend: 'remove', + click: undefined, + }, + { + name: 'removeCol', + label: $t('re.resources.designer.processor.decisionTable.toolbar.removeCol'), + click: () => {}, + }, + { + name: 'removeRow', + label: $t('re.resources.designer.processor.decisionTable.toolbar.removeRow'), + click: () => {}, + }, + ], + 'separator', + { + name: 'example', + label: $t('example'), + icon: 'bi-balloon', + click: (arg) => { + const grid = gridRef.getEditorForm().getFieldComponent('decisionTable2C'); + const sampleData = [ + { uuid: Tools.uuid(), C0: '', C1: '${客户类型}==\'普通客户\'', C2: '${客户类型}==\'VIP客户\'', C3: '${客户类型}==\'临时客户\'' }, + { uuid: Tools.uuid(), C0: '${评分结果}<60', C1: '1', C2: '3', C3: '5' }, + { uuid: Tools.uuid(), C0: '${评分结果}>=60', C1: '2', C2: '4', C3: '6' }, + ]; + grid.setLocalData(sampleData); + }, + }, + ], + primaryKey: 'uuid', + columns: [ + { name: 'uuid', label: 'uuid', hidden: true }, + { + name: 'C0', + label: $t('C0'), + align: 'left', + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C1', + label: $t('C1'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C2', + label: $t('C2'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'C3', + label: $t('C3'), + sortable: false, + format: (value) => { + return PlaceHolder.replace(value); + }, + }, + ], }, { colSpan: 5, @@ -1105,7 +1353,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { width: '50%', name: 'name', @@ -1251,7 +1499,7 @@ ], primaryKey: 'uuid', columns: [ - { name: 'uuid', label: 'uuid', showIf: false }, + { name: 'uuid', label: 'uuid', hidden: true }, { width: '50%', name: 'field', @@ -1389,6 +1637,30 @@ }); }); data.conditionRange = Tools.object2Json(ranges); + } else if ('DECISION_TABLE_2C' === data.type) { + const grid = form.getFieldComponent('decisionTable2C'); + const localData = grid.getLocalData(); + const ranges = []; + localData.forEach((item) => { + ranges.push({ + uuid: item.uuid, + condition: item.condition, + value: item.value, + }); + }); + data.conditionRange = Tools.object2Json(ranges); + } else if ('DECISION_TABLE' === data.type) { + const grid = form.getFieldComponent('decisionTable'); + const localData = grid.getLocalData(); + const ranges = []; + localData.forEach((item) => { + ranges.push({ + uuid: item.uuid, + condition: item.condition, + value: item.value, + }); + }); + data.conditionRange = Tools.object2Json(ranges); } else if ('SQL' === data.type) { const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues'); const sqlParameterValuesLocalData = sqlParameterValuesGrid.getLocalData(); @@ -1485,6 +1757,10 @@ const grid = gridRef.getEditorForm().getFieldComponent('decisionTable2C'); const rows = Tools.json2Object(row.decisionTable2C); grid.setLocalData(rows); + } else if ('DECISION_TABLE' === type) { + const grid = gridRef.getEditorForm().getFieldComponent('decisionTable'); + const rows = Tools.json2Object(row.decisionTable); + grid.setLocalData(rows); } else if ('SQL' === type) { const sqlParameterValuesGrid = gridRef.getEditorForm().getFieldComponent('sqlParameterValues'); const sqlParameterValuesRows = Tools.json2Object(row.sqlParameterValues); diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue index 2c8a078c..7c01620a 100644 --- a/io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue +++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue @@ -82,8 +82,8 @@ 'export', ]" :columns="[ - { width: 60, name: 'order', label: $t('order'), align: 'right', showIf: false }, - { width: 100, name: 'id', label: $t('id'), showIf: false }, + { width: 60, name: 'order', label: $t('order'), align: 'right', hidden: true }, + { width: 100, name: 'id', label: $t('id'), hidden: true }, { width: 60, name: 'testResult', diff --git a/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue b/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue index 90ac9d55..abd82e2d 100644 --- a/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue +++ b/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue @@ -62,8 +62,8 @@ 'export', ]" :columns="[ - { width: 50, name: 'order', label: $t('order'), showIf: false }, - { width: 100, name: 'id', label: $t('id'), showIf: false }, + { width: 50, name: 'order', label: $t('order'), hidden: true }, + { width: 100, name: 'id', label: $t('id'), hidden: true }, { width: 60, name: 'testResult', diff --git a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue index 3efdf0f7..035f26cd 100644 --- a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue +++ b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue @@ -129,7 +129,7 @@ 'export', ]" :columns="[ - { width: 150, name: 'resourceCode', label: $t('code'), showIf: false }, + { width: 150, name: 'resourceCode', label: $t('code'), hidden: true }, { width: '100%', name: 'resourceName', label: $t('name') }, { width: 100, name: 'resourceType', label: $t('type'), format: Formater.enum(Enums.ResourceType) }, { width: 100, name: 'resourceVersion', label: $t('version') }, diff --git a/io.sc.platform.gradle/templates/pgp/setup/gradle.properties b/io.sc.platform.gradle/templates/pgp/setup/gradle.properties index f0b1b210..f706798d 100644 --- a/io.sc.platform.gradle/templates/pgp/setup/gradle.properties +++ b/io.sc.platform.gradle/templates/pgp/setup/gradle.properties @@ -38,7 +38,7 @@ application_version=1.0.0 platform_group=io.sc platform_version=8.1.49 platform_plugin_version=8.1.49 -platform_core_frontend_version=8.1.357 +platform_core_frontend_version=8.1.358 ########################################################### # dependencies version diff --git a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue index 70abb876..18cd43ff 100644 --- a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue +++ b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue @@ -31,7 +31,7 @@ 'export', ]" :columns="[ - { width: 100, name: 'id', label: $t('id'), showIf: false }, + { width: 100, name: 'id', label: $t('id'), hidden: true }, { width: 220, name: 'applicationName', label: $t('lcdp.scheduler.executor.grid.entity.applicationName') }, { width: 150, name: 'name', label: $t('lcdp.scheduler.executor.grid.entity.name') }, { width: 200, name: 'description', label: $t('description') },