import 'tailwindcss/utilities.css';
import { ref, onMounted } from 'vue';
-import { Environment, Formater } from 'platform-core';
+import { Environment, Formater, CorporationAuditorEntityManager } from 'platform-core';
const props = defineProps({
fetchDataUrl: { type: String, default: '' },
diff --git a/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue b/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue
index e0ccb884..4b96a7b9 100644
--- a/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue
+++ b/io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue
@@ -2,7 +2,7 @@
{
args.grid.getEditorForm().setFieldValue('type', 'CONSTANT');
@@ -40,7 +40,7 @@
{
extend: 'add',
name: 'in',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.in'),
+ label: $t('re.parameter.grid.toolbar.add.in'),
icon: 'bi-terminal',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'IN');
@@ -49,17 +49,16 @@
{
extend: 'add',
name: 'inOption',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.inOption'),
+ label: $t('re.parameter.grid.toolbar.add.inOption'),
icon: 'bi-list-check',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'IN_OPTION');
- args.grid.getEditorForm().setFieldValue('valueType', 'java.lang.String');
+ args.grid.getEditorForm().setFieldValue('valueTypeSelect', 'java.lang.String');
},
},
{
- extend: 'add',
name: 'indicator',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.indicator'),
+ label: $t('re.parameter.grid.toolbar.add.indicator'),
icon: 'bi-link',
click: (args) => {
selectIndicatorDialogRef.open();
@@ -69,7 +68,7 @@
{
extend: 'add',
name: 'intermediate',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.intermediate'),
+ label: $t('re.parameter.grid.toolbar.add.intermediate'),
icon: 'bi-superscript',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'INTERMEDIATE');
@@ -78,7 +77,7 @@
{
extend: 'add',
name: 'out',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.out'),
+ label: $t('re.parameter.grid.toolbar.add.out'),
icon: 'bi-shuffle',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'OUT');
@@ -88,7 +87,7 @@
{
extend: 'add',
name: 'ruleResult',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.ruleResult'),
+ label: $t('re.parameter.grid.toolbar.add.ruleResult'),
icon: 'bi-sliders',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'RULE_RESULT');
@@ -97,7 +96,7 @@
{
extend: 'add',
name: 'singleRuleResult',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.singleRuleResult'),
+ label: $t('re.parameter.grid.toolbar.add.singleRuleResult'),
icon: 'bi-lightning',
afterClick: (args) => {
args.grid.getEditorForm().setFieldValue('type', 'SINGLE_RULE_RESULT');
@@ -106,37 +105,54 @@
'separator',
{
name: 'importPmml',
- label: $t('re.resources.designer.parameter.grid.toolbar.add.importPmml'),
+ label: $t('re.parameter.grid.toolbar.add.importPmml'),
icon: 'bi-file-earmark-text',
},
],
'separator',
- {
- extend: 'clone',
- enableIf: (args) => {
- return !readOnly && args.selected;
+ [
+ {
+ extend: 'clone',
+ enableIf: (args: any) => {
+ return args.selected;
+ },
+ click: undefined,
},
- },
- {
- extend: 'clone',
- name: 'deepClone',
- label: $t('deepClone'),
- icon: 'bi-copy',
- enableIf: (args) => {
- return !readOnly && args.selected;
+ {
+ extend: 'clone',
+ enableIf: (args) => {
+ return !readOnly && args.selected && args.selected.type !== 'INDICATOR';
+ },
},
- click: (args) => {
- DialogManager.confirm($t('re.resources.designer.parameter.grid.toolbar.deepClone.tip'), () => {
- axios.post(Environment.apiContextPath('/api/re/model/parameter/deepClone/' + args.selected.id)).then(() => {
- gridRef.refresh();
+ {
+ extend: 'clone',
+ name: 'deepClone',
+ label: $t('deepClone'),
+ icon: 'bi-copy',
+ enableIf: (args) => {
+ return !readOnly && args.selected && args.selected.type !== 'INDICATOR';
+ },
+ click: (args) => {
+ DialogManager.confirm($t('re.parameter.grid.toolbar.deepClone.tip'), () => {
+ axios.post(Environment.apiContextPath('/api/re/model/parameter/deepClone/' + args.selected.id)).then(() => {
+ gridRef.refresh();
+ });
});
- });
+ },
},
- },
+ ],
{
extend: 'edit',
enableIf: (args) => {
- return !readOnly && args.selected;
+ return !readOnly && args.selected && args.selected.type !== 'INDICATOR';
+ },
+ click: (args: any) => {
+ const row = args.selected;
+ if (row.type === 'INDICATOR') {
+ NotifyManager.warn($t('re.parameter.tip.indicatorParameterCanNotEditable'));
+ return;
+ }
+ args._click(args);
},
},
{
@@ -148,7 +164,7 @@
'separator',
{
name: 'move',
- label: $t('re.resources.designer.parameter.grid.toolbar.move'),
+ label: $t('re.parameter.grid.toolbar.move'),
icon: 'bi-share-fill',
enableIf: (args) => {
return !readOnly && args.selected;
@@ -158,48 +174,23 @@
},
},
'separator',
+ ...templateImportAndExportManager.getToolbarAction(),
+ 'separator',
'view',
'separator',
'export',
]"
:columns="[
- { width: 60, name: 'order', label: $t('order'), sortable: false, align: 'right' },
- { width: '100%', name: 'name', label: $t('name'), sortable: false },
- { width: 150, name: 'code', label: $t('code'), sortable: false },
- { width: 110, name: 'type', label: $t('type'), sortable: false, format: Formater.enum(Enums.ParameterType) },
- {
- width: 180,
- name: 'valueType',
- label: $t('re.resources.designer.parameter.grid.entity.valueType'),
- sortable: false,
- format: (value, row) => {
- if (row.valueTypeVersion) {
- return ValueTypeMap[value] + ' (V' + row.valueTypeVersion + ')';
- }
- if (row.valueType == 'java.math.BigDecimal') {
- if (row.valueRoundingMode == 'HALF_UP') {
- return ValueTypeMap[value] + '(' + row.valueScale + ')';
- } else {
- return ValueTypeMap[value] + '(' + row.valueScale + ',' + Formater.enum(Enums.RoundingMode)(row.valueRoundingMode) + ')';
- }
- }
- var result = ValueTypeMap[value];
- result = result || row.valueType;
- if (result) {
- result = result.replace('<', '<');
- result = result.replace('>', '>');
- }
- return result;
- },
- },
+ { width: '100%', name: 'name', label: $t('name') },
+ { width: 130, name: 'code', label: $t('code'), showIf: false },
+ { width: 100, name: 'type', label: $t('type'), format: EngineEnums.ParameterType.formater },
{
- width: 80,
- name: 'valueTypeIsList',
- label: $t('re.resources.designer.parameter.grid.entity.valueTypeIsList'),
- sortable: false,
- format: Formater.yesNo(),
+ width: 200,
+ name: 'indicatorInfo',
+ label: $t('re.lib.grid.title'),
+ format: LibManager.getFormater(),
},
- { width: 200, name: 'defaultValue', label: $t('defaultValue'), sortable: false },
+ ...valueTypeManager.getColumns(),
]"
:editor="{
dialog: {
@@ -208,165 +199,19 @@
form: {
colsNum: 1,
fields: [
- { name: 'type', label: $t('type'), type: 'w-select', options: Options.enum(Enums.ParameterType), 'onUpdate:modelValue': (value) => {} },
{ name: 'model', label: $t('modelId'), type: 'w-text', defaultValue: model.id, showIf: false },
- { name: 'code', label: $t('code'), type: 'w-text' },
- { name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
- { name: 'description', label: $t('description'), type: 'w-text' },
{
- name: 'libCode',
- label: $t('re.resources.designer.parameter.grid.entity.libCode'),
+ name: 'type',
+ label: $t('type'),
type: 'w-select',
- options: libCodeOptionsRef,
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- return type === 'INDICATOR';
- },
- 'onUpdate:modelValue': (value) => {
- libVersionOptionsRef = IndicatorManager.getLibVersionMap(value);
- },
+ showIf: false,
+ options: EngineEnums.ParameterType.options,
+ 'onUpdate:modelValue': (value) => {},
},
- {
- name: 'libVersion',
- label: $t('re.resources.designer.parameter.grid.entity.libVersion'),
- type: 'w-select',
- options: libVersionOptionsRef,
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- return type === 'INDICATOR';
- },
- 'onUpdate:modelValue': (value) => {
- const libCode = gridRef.getEditorForm().getFieldValue('libCode');
- indicatorCodeOptionsRef = IndicatorManager.getIndicatorMap(libCode, value);
- },
- },
- {
- name: 'indicatorCode',
- label: $t('re.resources.designer.parameter.grid.entity.indicatorCode'),
- type: 'w-select',
- options: indicatorCodeOptionsRef,
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- return type === 'INDICATOR';
- },
- },
- {
- name: 'valueType',
- label: $t('re.resources.designer.parameter.grid.entity.valueType'),
- type: 'w-select',
- options: ValueTypeList,
- defaultValue: 'java.math.BigDecimal',
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- if (type == 'INDICATOR' || type == 'IN_OPTION' || type == 'RULE_RESULT' || type == 'SINGLE_RULE_RESULT') {
- return false;
- }
- return true;
- },
- 'onUpdate:modelValue': (value) => {
- const valueType = gridRef.getEditorForm().getFieldValue('valueType');
- axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
- const versions = response.data;
- const options = [];
- versions.forEach((version) => {
- options.push({ label: version.key, value: version.value });
- });
- valueTypeVersionOptionsRef = options;
- });
- },
- },
- {
- name: 'valueTypeVersion',
- label: $t('re.resources.designer.parameter.grid.entity.valueTypeVersion'),
- type: 'w-select',
- clearable: true,
- options: valueTypeVersionOptionsRef,
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- if (type == 'INDICATOR' || type == 'IN_OPTION' || type == 'RULE_RESULT' || type == 'SINGLE_RULE_RESULT') {
- return false;
- }
- const valueType = args.form.getFieldValue('valueType');
- if (valueType) {
- if (ValueTypeUtil.isBase(valueType)) {
- return false;
- } else if (Tools.isUndefinedOrNull(ValueTypeMap[valueType])) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- },
- },
- {
- name: 'valueScale',
- label: $t('re.resources.designer.parameter.grid.entity.valueScale'),
- type: 'w-number',
- defaultValue: 6,
- showIf: (args) => {
- const valueType = args.form.getFieldValue('valueType');
- const type = args.form.getFieldValue('type');
- if (
- valueType == 'java.math.BigDecimal' &&
- type != 'INDICATOR' &&
- type != 'IN_OPTION' &&
- type != 'RULE_RESULT' &&
- type != 'SINGLE_RULE_RESULT'
- ) {
- return true;
- }
- return false;
- },
- },
- {
- name: 'valueRoundingMode',
- label: $t('re.resources.designer.parameter.grid.entity.valueRoundingMode'),
- type: 'w-select',
- options: Options.enum(Enums.RoundingMode),
- defaultValue: 'HALF_UP',
- showIf: (args) => {
- const valueType = args.form.getFieldValue('valueType');
- const type = args.form.getFieldValue('type');
- if (
- valueType == 'java.math.BigDecimal' &&
- type != 'INDICATOR' &&
- type != 'IN_OPTION' &&
- type != 'RULE_RESULT' &&
- type != 'SINGLE_RULE_RESULT'
- ) {
- return true;
- }
- return false;
- },
- },
- {
- name: 'valueTypeIsList',
- label: $t('re.resources.designer.parameter.grid.entity.valueTypeIsList'),
- type: 'w-checkbox',
- defaultValue: false,
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- if (type == 'IN_OPTION' || type == 'INDICATOR' || type == 'RULE_RESULT' || type == 'SINGLE_RULE_RESULT') {
- return false;
- }
- return true;
- },
- },
- {
- name: 'defaultValue',
- label: $t('defaultValue'),
- type: 'w-text',
- showIf: (args) => {
- const type = args.form.getFieldValue('type');
- const valueTypeIsList = args.form.getFieldValue('valueTypeIsList');
- if (type == 'INDICATOR' || type == 'RULE_RESULT' || type == 'SINGLE_RULE_RESULT' || valueTypeIsList) {
- return false;
- }
- return true;
- },
- },
-
+ { name: 'code', label: $t('code'), type: 'w-text' },
+ { name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
+ { name: 'description', label: $t('description'), type: 'w-text' },
+ ...valueTypeManager.getEditorFields(),
{ name: 'order', label: $t('order'), type: 'w-number' },
],
},
@@ -375,28 +220,18 @@
panel: {
columnNum: 1,
fields: [
- { name: 'order', label: $t('order') },
+ { name: 'model', label: $t('re.parameter.grid.entity.model') },
+ { name: 'type', label: $t('type'), format: Formater.none() },
{ name: 'id', label: $t('id') },
- { name: 'model', label: $t('model') },
{ name: 'code', label: $t('code') },
{ name: 'name', label: $t('name') },
{ name: 'description', label: $t('description') },
- { name: 'type', label: $t('type') },
- { name: 'valueType', label: $t('re.resources.designer.parameter.grid.entity.valueType') },
- { name: 'valueTypeVersion', label: $t('re.resources.designer.parameter.grid.entity.valueTypeVersion') },
- { name: 'valueScale', label: $t('re.resources.designer.parameter.grid.entity.valueScale') },
- { name: 'valueRoundingMode', label: $t('re.resources.designer.parameter.grid.entity.valueRoundingMode') },
- { name: 'valueTypeIsList', label: $t('re.resources.designer.parameter.grid.entity.valueTypeIsList') },
- { name: 'defaultValue', label: $t('defaultValue') },
- { name: 'libCode', label: $t('re.resources.designer.parameter.grid.entity.libCode') },
- { name: 'libVersion', label: $t('re.resources.designer.parameter.grid.entity.libVersion') },
- { name: 'indicatorCode', label: $t('re.resources.designer.parameter.grid.entity.indicatorCode') },
-
- { name: 'dataComeFrom', label: $t('dataComeFrom') },
- { name: 'creator', label: $t('creator') },
- { name: 'createDate', label: $t('createDate') },
- { name: 'lastModifier', label: $t('lastModifier') },
- { name: 'lastModifyDate', label: $t('lastModifyDate'), format: Formater.none() },
+ { name: 'libCode', label: $t('re.parameter.grid.entity.libCode') },
+ { name: 'libVersion', label: $t('re.parameter.grid.entity.libVersion') },
+ { name: 'indicatorCode', label: $t('re.parameter.grid.entity.indicatorCode') },
+ ...valueTypeManager.getViewerFields(),
+ { name: 'order', label: $t('order') },
+ ...CorporationAuditorEntityManager.getViewerFields(),
],
},
}"
@@ -411,44 +246,36 @@
}
"
@after-editor-open="
- (args) => {
- const type = args.grid.getEditorForm().getFieldValue('type');
- if (type === 'INDICATOR') {
- axios.get(Environment.apiContextPath('/api/re/lib/isc/getLibInformationWrapper')).then((response) => {
- IndicatorManager.setWrapper(response.data);
- libCodeOptionsRef = IndicatorManager.getLibMap();
- libVersionOptionsRef = IndicatorManager.getLibVersionMap(row.libCode);
- indicatorCodeOptionsRef = IndicatorManager.getIndicatorMap(row.libCode, row.libVersion);
- });
- }
- const valueType = args.grid.getEditorForm().getFieldValue('valueType');
- if (valueType) {
- if (!ValueTypeUtil.isBase(valueType) && ValueTypeMap[valueType]) {
- axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
- const versions = response.data;
- const options = [];
- versions.forEach((version) => {
- options.push({ label: version.key, value: version.value });
- });
- valueTypeVersionOptionsRef = options;
- });
- }
- }
+ (args: any) => {
+ valueTypeManager.afterEditorOpen(args);
}
"
>
+ {
+ gridRef.refresh();
+ }
+ "
+ >